Skip to content

Latest commit

 

History

History
96 lines (79 loc) · 6.03 KB

README.md

File metadata and controls

96 lines (79 loc) · 6.03 KB

Build Status

Delibasket

Электронная продуктовая корзина.

Проект Delibasket, «Электронная продуктовая корзина». На этом сервисе пользователи смогут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.

Что могут делать неавторизованные пользователи

  • Создать аккаунт.
  • Просматривать рецепты на главной.
  • Просматривать отдельные страницы рецептов.
  • Просматривать страницы пользователей.
  • Фильтровать рецепты по тегам.

Что могут делать авторизованные пользователи

  • Входить в систему под своим логином и паролем.
  • Выходить из системы (разлогиниваться).
  • Менять свой пароль.
  • Создавать/редактировать/удалять собственные рецепты
  • Просматривать рецепты на главной.
  • Просматривать страницы пользователей.
  • Просматривать отдельные страницы рецептов.
  • Фильтровать рецепты по тегам.
  • Работать с персональным списком избранного: добавлять в него рецепты или удалять их, просматривать свою страницу избранных рецептов.
  • Работать с персональным списком покупок: добавлять/удалять любые рецепты, выгружать файл со количеством необходимых ингридиентов для рецептов из списка покупок.
  • Подписываться на публикации авторов рецептов и отменять подписку, просматривать свою страницу подписок.

Что может делать администратор

Администратор обладает всеми правами авторизованного пользователя. Плюс к этому он может:

  • изменять пароль любого пользователя,
  • создавать/блокировать/удалять аккаунты пользователей,
  • редактировать/удалять любые рецепты,
  • добавлять/удалять/редактировать ингредиенты.
  • добавлять/удалять/редактировать теги.

Стек:

Python3.11 FastAPI0.100 PostgreSQL13.0 Redis

Pydantic SQLAlchemy Alembic

Docker Docker-compose Nginx GitHub

Запуск проекта

Клонируем репозиторий и переходим в него:

git clone https://github.com/PivnoyFei/delibasket.git
cd delibasket

Перед запуском сервера, в папке infra необходимо создать .env на основе .env.template файл со своими данными.

Переходим в папку с файлом docker-compose.yaml:

cd infra

Запуск проекта

docker-compose up -d --build

Миграции базы данных:

# docker-compose exec delibasket-backend alembic revision --message="Initial" --autogenerate
docker-compose exec delibasket-backend alembic upgrade head

# docker-compose exec delibasket-backend-ingredients alembic revision --message="Initial" --autogenerate
docker-compose exec delibasket-backend-ingredients alembic upgrade head

Создание суперпользователя:

docker-compose exec delibasket-backend python application/commands/createsuperuser.py

Загрузка тегов и ингредиентов в бд после запуска контейнера:

docker-compose exec delibasket-backend python application/commands/load_json.py
docker-compose exec delibasket-backend-ingredients python application/commands/load_json.py

Останавливаем контейнеры:

docker-compose down -v

Автор

Смелов Илья