Цель проекта: Разработать удобный и функциональный сайт для заказа суши и ролов с возможностью отслеживания заказов и курьеров, а также с поддержкой многоязычности и геолокационных функций.
2. Функциональные требования
Для клиента:
- Вход и регистрация: Возможность регистрации и входа через электронную почту и пароль.
- Возможность аутентификации через Google\AppleID.
- Возможность создать заказ без регистрации на сайте.
- Профиль пользователя: Личный кабинет с историей заказов.
- Возможность просмотра и редактирования личных данных.
- Оформление заказа: Просмотр меню с возможностью фильтрации блюд по категориям.
- Добавление блюд в корзину и их удаление.
- Подтверждение заказа и оплата через API (etc).
- Отслеживание статуса заказа и местоположения курьера.
- Геолокационные функции: Определение ближайшего пункта выдачи на основе геолокации пользователя.
- Возможность выбора пункта доставки из списка ближайших мест.
- Автоматическое определение города пользователя по IP адресу при запрете доступа к геолокации.
- Изменение контактных данных на странице в зависимости от выбранного города/пункта выдачи.
Для администратора:
- Административная панель: Управление пользователями и ролями.
- Создание, редактирование и удаление продуктов в меню.
- Просмотр истории всех заказов всех пользователей.
- Отслеживание местоположения курьеров и статусов заказов.
- Скидки при самовывозе (процент настраивается)
- При указании скидки на День Рождения (процент настраивается)
3. Технологический стек
- Фронтенд:Next.js
- TypeScript
- DaisyUI (для компонентов UI)
- Zustand (для управления состоянием)
- Бэкенд:Mongoose (ORM для MongoDB)
- Next Auth (для аутентификации)
- Интеграции:Cloudinary (для управления изображениями)
- PayPal (для платежей)
- API для геолокации (например, Google Maps API или аналогичный)
- Деплоймент:Vercel
4. Многоязычность
- Поддержка нескольких языков с автоматическим выбором на основе предпочтений браузера пользователя или явно выбранного пользователем языка.
5. Прочие требования
- Безопасность: Реализация стандартных мер безопасности для защиты данных пользователя и безопасности транзакций.
- Производительность и SEO: Оптимизация производительности сайта и SEO-оптимизация для обеспечения высокой видимости в поисковых системах.
исходный проект:
https://github.com/Franklin361/dev-shop/