FastAPI-Online-Shop

0

Описание

Полнофункциональный онлайн-магазин на FastAPI. Проект поддерживает регистрацию пользователей, управление товарами и категориями, корзину, оформление заказов и отправку email-уведомлений. Реализована полноценная аутентификация, асинхронные API, отправка писем через Celery и Redis, а также покрытие Unit тестами!

Языки

  • Python97,5%
  • Dockerfile1,3%
  • Mako1,2%
8 месяцев назад
10 месяцев назад
10 месяцев назад
10 месяцев назад
8 месяцев назад
8 месяцев назад
10 месяцев назад
10 месяцев назад
README.md

Python FastAPI PostgreSQL Docker Redis Celery SQLAlchemy Pydantic Alembic Pytest

🛍️ FastAPI Online Shop

FastAPI Online Shop — это полнофункциональное e-commerce API-приложение, построенное с использованием FastAPI, SQLAlchemy, PostgreSQL и Celery с Redis.

Technology stack

🚀 Возможности

  • 📦 Управление продуктами и категориями
  • 🛒 Добавление и удаление товаров из корзины
  • 🧾 Оформление заказов
  • ✅ Аутентификация через JWT
  • 📧 Уведомление по email при оформлении заказа
  • 🧵 Асинхронные задачи через Celery и Redis
  • 🧪 Unit тесты с использованием Pytest и httpx

📸 Примеры работы

🔐 Аутентификация

Login screen

🔍 Общий вид

Overview Overview

📦 Создание товара

Create product Create product

🧰 Технологический стек

  • Язык: Python 3.11+
  • Фреймворк: FastAPI
  • Асинхронность: asyncio, httpx
  • База данных: PostgreSQL (через SQLAlchemy ORM)
  • Миграции базы данных: Alembic
  • Схемы данных и валидация: Pydantic v2
  • Аутентификация: OAuth2, JWT
  • Хеширование паролей: Passlib + Bcrypt
  • Очереди фоновых задач: Celery + Redis
  • Тестирование: Pytest + pytest-asyncio
  • Работа с email: SMTP (используется Yandex)
  • Документация: OpenAPI (автоматически через Swagger UI)

📂 Структура проекта

FastAPI-Online-Shop/ ├── Dockerfile # Конфигурация Docker для контейнеризации приложения ├── docker-compose.yml # Оркестрация сервисов (БД, кеш, воркеры) ├── README.md # Документация проекта ├── requirements.txt # Список зависимостей Python ├── main.py # Точка входа FastAPI приложения ├── conf_test_db.py # Настройки тестовой БД ├── Vladelo Online Shop.png # Схематичное изображение проекта │ ├── alembic/ # Миграции базы данных │ ├── env.py │ ├── script.py.mako │ └── versions/ # Файлы версий миграций │ ├── ecommerce/ # Основной пакет приложения │ ├── __init__.py │ ├── config.py # Настройки проекта │ ├── db.py # Инициализация SQLAlchemy и подключение к БД │ │ │ ├── auth/ # Аутентификация и авторизация │ │ ├── jwt.py # JWT-токены │ │ ├── router.py # Эндпоинты auth │ │ └── shema.py # Pydantic-схемы для auth │ │ │ ├── user/ # Работа с пользователями │ │ ├── models.py │ │ ├── router.py │ │ ├── services.py # Логика работы с пользователями │ │ ├── hashing.py │ │ ├── validator.py │ │ └── shema.py │ │ │ ├── products/ # Каталог товаров │ │ ├── models.py │ │ ├── router.py │ │ ├── services.py │ │ ├── validator.py │ │ └── shema.py │ │ │ ├── cart/ # Корзина покупок │ │ ├── models.py │ │ ├── router.py │ │ ├── services.py │ │ └── shema.py │ │ │ └── orders/ # Заказы │ ├── models.py │ ├── router.py │ ├── services.py │ ├── tasks.py # Асинхронные задачи (Celery) │ ├── worker.py # Воркеры для задач │ ├── mail.py # Отправка уведомлений │ └── shema.py │ ├── docs/ # Скриншоты и документация проекта │ └── tests/ # Тесты приложения ├── conftest.py # Общие фикстуры ├── user/ # Тесты для пользователей ├── products/ # Тесты для товаров ├── cart/ # Тесты для корзины ├── orders/ # Тесты для заказов ├── login/ # Тесты логина ├── registration/ # Тесты регистрации

⚙️ Установка и запуск

⚙️ Переменные окружения

Файл

.env.template
для всех необходимых переменных.

📬 Контакты

Автор: Владислав Лахтионов
GitHub: vladelo-code
Gitverse: vladelo
Telegram: @vladelo

💌 Не забудьте поставить звезду ⭐ на GitHub, если вам понравился проект! 😉