Современное веб-приложение на FastAPI с полным набором компонентов для демонстрации возможностей фреймворка.
Проект представляет собой полнофункциональное веб-приложение с системой аутентификации, профилями пользователей, медиа-галереей, интернет-магазином и другими компонентами. Идеально подходит для изучения FastAPI и создания прототипов.
- Регистрация и вход пользователей
- JWT токены для безопасной аутентификации
- OAuth2 интеграция (VK, Google)
- Восстановление пароля через email
- Email верификация
- Редактирование личных данных
- Загрузка и изменение аватара
- Управление настройками аккаунта
- История активности
- Галерея изображений с фильтрацией и поиском
- Видео плеер с полным набором контролов
- Аудио плеер с управлением воспроизведением
- Слайдер контента с автоматическим переключением
- Lightbox для просмотра изображений
- Загрузка файлов (изображения, видео, аудио, документы, архивы)
- Поддержка drag & drop
- Переименование, скачивание и удаление файлов
- Валидация типов и размеров (макс. 50 MB)
- Категоризация по типам
- Отображение метаданных (размер, дата загрузки)
- Каталог товаров с фильтрами
- Корзина покупок
- Система категорий
- Поиск по товарам
- Адаптивный дизайн
- Темная/светлая тема
- Модальные окна
- Уведомления (toast)
- Аккордеоны (FAQ)
- Формы с валидацией
- SVG иконки
- FastAPI 0.104+ - современный асинхронный фреймворк
- SQLAlchemy 2.0 - ORM для работы с базой данных
- SQLite - легковесная БД (aiosqlite для async)
- Pydantic 2.0 - валидация данных
- Uvicorn - ASGI сервер
- Python 3.13 - последняя версия Python
- HTML5 - современная разметка
- CSS3 - стили с переменными и градиентами
- JavaScript ES6+ - интерактивность
- Jinja2 - шаблонизация
- JWT (python-jose) - токены аутентификации
- Bcrypt (passlib) - хеширование паролей
- Email validation - проверка email адресов
- OAuth2 - авторизация через соцсети
- Pillow - обработка изображений
- aiosmtplib - отправка email
- httpx - HTTP клиент для API запросов
- python-multipart - загрузка файлов
- Python 3.13+
- pip
# Установка зависимостей
pip install -r requirements.txt# Перейдите в директорию backend
cd backend
# Запуск сервера
python -m uvicorn main:app --host 127.0.0.1 --port 8000Приложение будет доступно по адресу: http://127.0.0.1:8000
При первом запуске автоматически создается тестовый пользователь:
Email: test@demo.com
Пароль: Test1234!
demo/
├── backend/
│ ├── main.py # Главный файл приложения
│ ├── config.py # Конфигурация
│ ├── database.py # Настройка БД
│ ├── modules/ # Модули приложения
│ │ ├── auth/ # Аутентификация
│ │ │ ├── routes.py
│ │ │ ├── security.py
│ │ │ └── email_service.py
│ │ ├── profile/ # Профили
│ │ ├── media/ # Медиа файлы
│ │ ├── shop/ # Магазин
│ │ ├── components/ # UI компоненты
│ │ └── common/ # Общие компоненты
│ └── frontend/
│ ├── static/ # Статические файлы
│ │ ├── css/
│ │ ├── js/
│ │ ├── images/
│ │ └── uploads/
│ └── templates/ # HTML шаблоны
├── requirements.txt # Зависимости
└── README.md # Документация
POST /register- РегистрацияPOST /login- ВходPOST /logout- ВыходPOST /forgot-password- Восстановление пароляGET /verify-email/{token}- Верификация email
GET /me- Получить профильPUT /update- Обновить профильPOST /avatar- Загрузить аватарDELETE /avatar- Удалить аватар
GET /gallery- Список изображенийPOST /upload- Загрузить файлGET /files- Список файловGET /files/{id}- Получить файлDELETE /files/{id}- Удалить файлPOST /files/{id}/rename- ПереименоватьGET /download/{id}- Скачать файлGET /storage-info- Статистика хранилища
GET /products- Список товаровGET /products/{id}- Товар по IDGET /categories- КатегорииPOST /cart/add- Добавить в корзинуGET /cart- Получить корзину