Проект, выполненный в рамках курса "Основы backend-разработки" на 2 курсе НОЦ "Высшая IT-школа"
- ASP.NET Core
- Entity Framework
- PostgreSQL
Целью проекта являлось создание надежной и эффективной системы заказа и доставки еды, которая позволяет пользователям легко и быстро выбирать блюда, добавлять их в корзину и оформлять заказ.
- Категории блюд: Пользователи могут просматривать блюда по категориям (например, пицца, супы, десерты).
- Оценка и отзывы: После получения заказа пользователь может оценить блюдо и оставить свой отзыв.
- Учетные записи пользователей: Регистрация, авторизация и управление профилем для сохранения личной информации и истории заказов.
- Система адресов: Для удобства доставки используется сложная система адресов с возможностью выбора конкретного дома и квартиры.
В рамках данного проекта были реализованы следующие функциональные требования:
-
- Регистрация: Возможность создания аккаунта.
- Аутентификация: Безопасный вход в системe с использованием email и пароля, а также возможность выйти из профиля
- Профили: Возможность просмотра (получения) и редактирования личной информации
-
- Создание заказа: Возможность выбрать блюда из меню, указать адрес доставки и добавить блюда из корзины в заказ.
- Отслеживание заказа: Предоставление актуальной информации о статусе заказа.
- История заказов: Возможность просмотра предыдущих пользовательских заказов с деталями.
-
- Добавление блюд: Возможность добавления новых блюд, описания, цены и фотографий и тд.
- Редактирование блюд: Изменение существующей информации о блюде.
- Оценивание блюд: Возможность со стороны пользователя оценить блюдо.
-
- Добавление адреса доставки: Возможность указать полный адрес доставки для пользователя (получение цепочки адресов, использовался справочник ГАР)
- Address Endpoints:
- [GET] /api/address/search - получить List, состоящий из адресных объектов
- [GET] /api/address/getaddress/chain - получить полную цепочку адресов для данного id
- Basket Endpoints:
- [GET] /api/basket - получить пользовательскую корзину
- [POST] /api/basket/dish/{dishId} - добавить блюдо в корзину
- [DELETE] /api/basket/dish/{dishId} - уменьшить число блюд в корзине
- Dish Endpoints:
- [GET] /api/dish - получить меню (список блюд) по заданным критериям отбора/сортировки
- [GET] /api/dish/{id} - получить информацию об определенном блюде (по id)
- [GET] /api/dish/{id}/rating/check - проверить возможность пользователя выставлять рейтинг на данное блюдо
- [POST] /api/dish/{id}/rating - выставить рейтинг на блюдо
- Order Endpoints:
- [GET] /api/order/{id} - получить информацию о конкретном заказе (по id)
- [GET] /api/order - получить список заказов пользователя
- [POST] /api/order - добавить блюда из коризны в новый заказ
- [POST] /api/order/{id}/status - подтвердить доставку заказа
- User (UserAccount) Endpoints:
- [POST] /api/account/register - зарегестрироваться (с получением токена)
- [POST] /api/account/login - авторизоваться (с получением токена)
- [POST] /api/account/logout - выйти из системы
- [GET] /api/account/profile - получить информацию о пользовательском профиле
- [PUT] /api/account/profile - изменить параметры пользователя