Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lofienjoyerr/cafeproject
Backend часть веб-приложения для управления заказами в кафе
https://github.com/lofienjoyerr/cafeproject
django django-rest-framework drf-spectacular jwt-authentication openapi posgresql restful-api
Last synced: 15 days ago
JSON representation
Backend часть веб-приложения для управления заказами в кафе
- Host: GitHub
- URL: https://github.com/lofienjoyerr/cafeproject
- Owner: Lofienjoyerr
- License: mit
- Created: 2025-01-19T21:46:05.000Z (26 days ago)
- Default Branch: main
- Last Pushed: 2025-01-29T12:42:24.000Z (17 days ago)
- Last Synced: 2025-01-29T13:34:31.753Z (17 days ago)
- Topics: django, django-rest-framework, drf-spectacular, jwt-authentication, openapi, posgresql, restful-api
- Language: Python
- Homepage:
- Size: 46.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
- [CafeProject](#cafe-project)
* [Установка](#installation)
* [Краткое описание функционала](#description)
* [Лицензия](#license)
# CafeProject
Backend часть веб-приложения на Django для управления заказами в кафе.\
Код написан на Python фреймворках
__[Django](https://docs.djangoproject.com/en/5.1/)__ и __[Django REST Framework](https://www.djangoproject.com/)__. В качестве основной базы данных использует __[PostgreSQL](https://www.postgresql.org/)__,
для кеширования использует __[Redis](https://github.com/redis/redis)__.
Полнофункциональная пользовательская система основывается на JWT,
реализованных с помощью библиотеки __[djangorestframework_simplejwt](https://django-rest-framework-simplejwt.readthedocs.io/en/latest/)__. Тестирование проведено с помощью фреймворка
__[pytest](https://github.com/pytest-dev/pytest)__. В дополнение, у проекта имеется OpenAPI схема,
сгенерированная при помощи __[drf-spectacular](https://github.com/tfranzel/drf-spectacular/)__, и __Swagger UI__ для визуализации и тестирования API.
## Установка
Перед установкой убедитесь, что у вас установлен __Python__, менеджер пакетов __pip__ и
средство создания виртуальных окружений __venv__.
Данная инструкция будет использовать именно эти инструменты. Также инструкция направлена на пользователей Windows.
Для пользователей Unix-систем алгоритм в общем будет такой же, но небольшие отличия приводить не будем.
1. Клонируем репозиторий
```commandline
git clone https://github.com/Lofienjoyerr/CafeProject.git
cd CafeProject/
```
2. Создаём виртуальное окружение и активируем его
```commandline
python -m venv .venv
.venv/Scripts/activate
```
3. Скачиваем и устанавливаем все зависимости
```commandline
pip install -r requirements.txt
```
5. (Optional) Если вы хотите запустить сервер в режиме debug, то также установите
```commandline
pip install django-debug-toolbar
pip install ipython
pip install django-extensions
```
6. Создаём базу данных (СУБД можете выбирать на ваше предусмотрение. Инструкции для установки выбранной СУБД и создания БД
найдите самостоятельно)
7. Создаём файл окружения `.env` и настраиваем его по примеру файла `.env.template`
8. Применяем миграции
```commandline
python manage.py migrate
```
9. Запускаем сервер
```commandline
python manage.py runserver
```
10. Готово. API будет доступно по адресу `http://127.0.0.1:8000/api/v1/`, документация к нему -
`http://127.0.0.1:8000/api/v1/schema/`, а Swagger UI - `http://127.0.0.1:8000/api/v1/swagger/`.
## Краткое описание функционала
1. Пользовательская система
- Получение списка всех пользователей (с пагинацией).
- Получение информации о конкретном пользователе. Возможность изменения его информации.
- Возможность авторизации через JWT. Получение информации о пользователе через токен.
- Возможность изменять и восстанавливать пароль через электронную почту.
- Регистрация пользователя с подтверждением электронной почты.
- Изменение адреса электронной почты с последующим подтверждением нового.
2. Управление кафе
- Вычисление суммарного дохода с оплаченных заказов за определённый день.
- Добавление заказа с автоматически рассчитанной стоимостью и статусом "в ожидании".
- Удаление заказа по выбранному ID.
- Отображение всех заказов (с пагинацией).
- Возможность фильтрации списка заказов по нескольким параметрам.
- Изменение информации заказа по его ID.
## Лицензия
У этого проекта [MIT лицензия](https://github.com/Lofienjoyerr/CafeProject/blob/main/LICENSE).