Skip to content

About

Fullstack приложение интернет магазина цветов FastAPI + React

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

FlowerShop

Fullstack приложение интернет магазина цветов (FastAPI + React)

Функционал

  • Двухфакторная авторизации, верификация почты, профиль пользователя
  • Ограничитель запросов
  • Каталог товаров
  • Оплата товаров
  • ИИ агент для помощи в выборе товара

Используеться ИИ модель gemeni и по этому стоит включить VPN чтобы не было 400 ошибки. API gemini нестабильно и часто выдаёт ошибку 503 (сервера перегружены)

Технологии

Бэкенд

  • FastAPI (HTTP фреймворк, роутинг)
  • Pydantic (схемы валидации)
  • Dishka (Внедрение зависимостей)
  • PostgreSQL (БД)
  • SQLalchemy (ORM для работы с БД)
  • Alembic (Миграции БД)
  • MinIO (S3 хранилище для храния фото товаров)
  • Taskiq (Асинхронное выполнение задач)
  • RabbitMQ (Брокер задач для Taskiq)
  • Redis (Кеш для ограничителя запроов)
  • Pytest (Тестирование приложения)
  • Black (Форматирование кода)
  • Flake8 (Линтер кода)
  • Isort (Сортировка импортов)

Фронтенд

  • React

Запуск

Предварительные требования

  • Git
  • Docker и Docker Compose
  • Python 3.14+ (для локальной разработки)
  • pip - менеджер пакетов Python (предустановлен)

1) Клонирование репозитория

git clone git@github.com:KnightCode1024/FlowerShop.git
cd FlowerShop

2) Создание сертификатов для jwt

# Перейти в папку бекенда
cd backend

# Создание папки для ключей
mkdir certs

# Переходим в папку для ключей
cd certs

# Генерация RSA приватного ключа
openssl genrsa -out jwt-private.pem 2048

# Генерация публичного ключа
openssl rsa -in jwt-private.pem -outform PEM -pubout -out jwt-public.pem

3) Настройка переменных окружения

Создайте файл .env в дириктории backend.

Вам может понадобится секретный ключ, для этого есть скрипт secuirity.py в папке backend/srcripts/secuirity.py. Запустите скрипт для генерации секретного ключа.

cp .env.example .env

Перейдите в .env и замените заглушки чувствительных данных на свои (api ключи, доступ к smtp серверу, настройки оплаты и т д). Возможен запуск приложения без некоторых чувствительных данных, но соттветственно будут ошибки при вызове модулей связаных работающих с этими данными

4) Сборка и запуск через Docker

# Запуск и сборка
docker compose up --build -d
# docker-compose up --build -d для старой версии докера

# Запуск стидии тестирования
docker compose -f docker-compose.tests.yml -p flowers_tests up -d --build

5) Создание пользователей

Для создания пользователей через консоль используйте скрипт (доступны все роли):

# Переход в docker контейнер бекенда
docker-compose exec backend sh
# Интерактивный режим
python src/create_user.py
# Режим с аргументами
python src/create_user.py --email admin@example.com --username admin --role admin --password MySecurePass123!
# Показать справку
python src/create_user.py --help

6) Линтинг и форматирование кода

cd backend
# Убедитесь, что установлены dev зависимости
pip install -r requirements/dev.txt
# Форматирование кода (black)
black src/
# Проверка стиля кода (flake8)
flake8 src/
# Сортировка импортов (isort)
isort src/
# Создание новой миграции (автоматически отформатируется)
alembic revision --autogenerate -m "Add feature"

7) Тестирование приложения

cd backend

# Убедитесь, что установлены test зависимости
pip install -r requirements/test.txt

# Запуск тестов
pytest

Ресурсы

About

Fullstack приложение интернет магазина цветов FastAPI + React

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages