https://github.com/shumlesha/delivery-backend-app
Проект, выполненный в рамках курса "Основы backend-разработки" на 2 курсе НОЦ "Высшая IT-школа"
https://github.com/shumlesha/delivery-backend-app
csharp dotnet entity-framework jwt-authentication monolith-architecture mvc-architecture postgres
Last synced: 3 months ago
JSON representation
Проект, выполненный в рамках курса "Основы backend-разработки" на 2 курсе НОЦ "Высшая IT-школа"
- Host: GitHub
- URL: https://github.com/shumlesha/delivery-backend-app
- Owner: shumlesha
- Created: 2023-11-22T11:24:53.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-22T11:46:42.000Z (over 2 years ago)
- Last Synced: 2025-01-15T07:54:09.754Z (over 1 year ago)
- Topics: csharp, dotnet, entity-framework, jwt-authentication, monolith-architecture, mvc-architecture, postgres
- Language: C#
- Homepage:
- Size: 8.04 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Delivery-Backend-App
Проект, выполненный в рамках курса "Основы backend-разработки" на 2 курсе НОЦ "Высшая IT-школа"
## Технологии
- ASP.NET Core
- Entity Framework
- PostgreSQL
## Концепция
Целью проекта являлось создание надежной и эффективной системы заказа и доставки еды, которая позволяет пользователям легко и быстро выбирать блюда, добавлять их в корзину и оформлять заказ.
## Особенности проекта
- **Категории блюд:** Пользователи могут просматривать блюда по категориям (например, пицца, супы, десерты).
- **Оценка и отзывы:** После получения заказа пользователь может оценить блюдо и оставить свой отзыв.
- **Учетные записи пользователей:** Регистрация, авторизация и управление профилем для сохранения личной информации и истории заказов.
- **Система адресов:** Для удобства доставки используется сложная система адресов с возможностью выбора конкретного дома и квартиры.
## Функциональность
В рамках данного проекта были реализованы следующие функциональные требования:
* ### Управление пользователями
- **Регистрация:** Возможность создания аккаунта.
- **Аутентификация:** Безопасный вход в системe с использованием email и пароля, а также возможность выйти из профиля
- **Профили:** Возможность просмотра (получения) и редактирования личной информации
* ### Управление заказами
- **Создание заказа:** Возможность выбрать блюда из меню, указать адрес доставки и добавить блюда из корзины в заказ.
- **Отслеживание заказа:** Предоставление актуальной информации о статусе заказа.
- **История заказов:** Возможность просмотра предыдущих пользовательских заказов с деталями.
* ### Управление меню
- **Добавление блюд:** Возможность добавления новых блюд, описания, цены и фотографий и тд.
- **Редактирование блюд:** Изменение существующей информации о блюде.
- **Оценивание блюд:** Возможность со стороны пользователя оценить блюдо.
* ### Работа с адресами
- **Добавление адреса доставки:** Возможность указать полный адрес доставки для пользователя (получение цепочки адресов, __использовался справочник ГАР__)
## API
### Доступны следующие эндпоинты:
* 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 - изменить параметры пользователя