Хостинг: https://dev-vexyzy.ru
Добро пожаловать в "Kurabye Bisquits" – восхитительный мир свежей выпечки и сладостей! Это FastAPI приложение представляет собой бэкенд для онлайн-магазина кондитерских изделий, с каталогом продукции, управлением корзиной, оформлением заказов и аутентификацией пользователей.
kurabye-bisquits-main/
├── app/
│ ├── api/ # API эндпоинты
│ │ └── v1/ # v1 версия эндпоитнов
│ │ └── endpoints/ # Роутеры для auth, cart, product, admin
│ ├── core/ # Основная конфигурация, настройки БД, логирование
│ ├── domain/ # Бизнес-логика: сущности, перечисления, исключения
│ ├── models/ # SQLAlchemy модели
│ ├── repository/ # Слой доступа к данным (реальные и fake репозитории)
│ │ └── sql/ # SQL запросы
│ ├── schemas/ # Pydantic схемы для валидации данных API
│ ├── services/ # Сервисный слой (бизнес-логика)
│ ├── static/ # Статические файлы (CSS, JS, изображения)
│ ├── templates/ # HTML шаблоны (Jinja2)
│ ├── utils/ # Вспомогательные утилиты (аутентификация, работа с корзиной)
│ └── app.py # Главный файл приложения FastAPI
├── logs/ # Директория для лог-файлов
├── tests/ # Юнит и интеграционные тесты
├── .env.example # Пример файла переменных окружения (создайте свой .env)
├── pyproject.toml # Описание проекта и его зависимостей для PEP 517/PEP 621
├── uv.lock # Lock-файл для зависимостей (генерируется uv)
└── README.md # Этот файл
- Бэкенд:
- Python 3.13+
- FastAPI
- SQLAlchemy (асинхронный режим с AsyncPG)
- PostgreSQL
- Uvicorn (ASGI сервер)
- Pydantic (валидация данных)
- Passlib[bcrypt] (хеширование паролей)
- PyJWT (работа с JSON Web Tokens)
- Sentry-SDK (мониторинг ошибок)
- UV (менеджер пакетов и установщик)
- Фронтенд (примеры):
- HTML5, CSS3
- JavaScript (Vanilla JS для взаимодействия с API)
- Jinja2 (шаблонизация)
- База Данных:
- PostgreSQL
- Инструменты:
- Docker, Docker Compose
- Nginx / Apache (для reverse proxy в production)
- Ruff (линтер и форматер)
- Pyright (проверка типов)
- Python 3.13+
- PostgreSQL (если не используется Docker для БД)
uv
(официальная документация)
git clone https://github.com/algorithm-ssau/kurabye-bisquits
cd kurabye-bisquits
Создайте файл .env в корневой директории проекта (kurabye-bisquits) на основе примера .env_example.
cd app/
uv run app.py &
Приложение будет доступно по адресу http://localhost:8000.
Веб-интерфейс: http://localhost:8000 Документация API (ReDoc): http://localhost:8000/redoc
Основные эндпоинты находятся по префиксу /api/v1/.
Аутентификация (/api/v1/auth):
POST /token: Получение JWT токена (логин).
POST /registration: Регистрация нового пользователя.
GET /protected: Пример защищенного эндпоинта.
Каталог (/api/v1/product):
GET /all: Получение списка продуктов с пагинацией и сортировкой.
GET /: Получение детальной информации о продукте по ID.
Корзина (/api/v1/cart):
GET /: Получение содержимого корзины пользователя.
PATCH /{product_id}: Добавление/обновление количества товара в корзине.
DELETE /{product_id}: Удаление товара из корзины.
POST /create_order: Создание заказа из корзины.
GET /get_user_orders: Получение списка заказов пользователя.
GET /get_order: Получение деталей конкретного заказа.
Детальное описание эндпоинтов доступно в Swagger документации по адресу /redoc после запуска приложения.
Аватар | Имя | Должность |
---|---|---|
![]() |
Никулин Иван | TeamLead |
![]() |
Алёна Соколова | Дизайнер интерфейсов, frontend разработчик |
![]() |
Денис Мотяков | Backend разработчик, разработчик баз данных |
![]() |
Телегин Андрей | Fullstack разработчик |