# Документация бэкенда интернет-магазина одежды ## Содержание 1. [API документация](api_documentation.md) - Подробное описание всех API эндпоинтов 2. [Структура базы данных](database_structure.md) - Описание таблиц и связей в базе данных ## Технологический стек - **Язык программирования**: Python 3.10+ - **Фреймворк**: FastAPI - **ORM**: SQLAlchemy 2.0 - **База данных**: PostgreSQL - **Аутентификация**: JWT (JSON Web Tokens) ## Архитектура приложения Приложение построено по принципу многослойной архитектуры: 1. **Роутеры (Routers)** - Обрабатывают HTTP-запросы и ответы 2. **Сервисы (Services)** - Содержат бизнес-логику приложения 3. **Репозитории (Repositories)** - Отвечают за взаимодействие с базой данных 4. **Модели (Models)** - Описывают структуру таблиц базы данных 5. **Схемы (Schemas)** - Описывают структуру данных для API (Pydantic модели) ## Структура проекта ``` backend/ ├── app/ │ ├── __init__.py │ ├── main.py # Точка входа в приложение │ ├── config.py # Конфигурация приложения │ ├── core.py # Основные функции и зависимости │ ├── models/ # SQLAlchemy модели │ │ ├── __init__.py │ │ ├── user_models.py │ │ ├── catalog_models.py │ │ ├── order_models.py │ │ ├── review_models.py │ │ └── content_models.py │ ├── schemas/ # Pydantic схемы │ │ ├── __init__.py │ │ ├── user_schemas.py │ │ ├── catalog_schemas.py │ │ ├── order_schemas.py │ │ ├── review_schemas.py │ │ └── content_schemas.py │ ├── repositories/ # Репозитории для работы с БД │ │ ├── __init__.py │ │ ├── user_repo.py │ │ ├── catalog_repo.py │ │ ├── order_repo.py │ │ ├── review_repo.py │ │ └── content_repo.py │ ├── services/ # Бизнес-логика │ │ ├── __init__.py │ │ ├── user_service.py │ │ ├── catalog_service.py │ │ ├── order_service.py │ │ ├── review_service.py │ │ └── content_service.py │ └── routers/ # API эндпоинты │ ├── __init__.py │ ├── auth_router.py │ ├── user_router.py │ ├── catalog_router.py │ ├── cart_router.py │ ├── order_router.py │ ├── review_router.py │ ├── content_router.py │ └── analytics_router.py ├── alembic/ # Миграции базы данных ├── tests/ # Тесты └── docs/ # Документация ├── README.md ├── api_documentation.md └── database_structure.md ``` ## Запуск приложения ### Установка зависимостей ```bash pip install -r requirements.txt ``` ### Настройка переменных окружения Создайте файл `.env` в корне проекта со следующими переменными: ``` DATABASE_URL=postgresql://user:password@localhost:5432/db_name SECRET_KEY=your_secret_key ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=30 ``` ### Запуск сервера разработки ```bash uvicorn app.main:app --reload ``` ### Запуск миграций ```bash alembic upgrade head ``` ## Документация API После запуска приложения, документация API доступна по адресу: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc