An open API service indexing awesome lists of open source software.

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-школа"

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 - изменить параметры пользователя