Проект представляет собой full-stack приложение с бэкендом на FastAPI и фронтендом на React.js с использованием Next.js.
- FastAPI — высокопроизводительный фреймворк для построения API
- SQLAlchemy — ORM для работы с базами данных
- Alembic — инструмент для миграций базы данных
- JWT-аутентификация (python-jose, passlib, argon2_cffi)
- GigaChat API — интеграция с нейросетевыми моделями
- Pydantic — валидация данных
- Pytest — тестирование
- Next.js 15 — фреймворк для React с SSR/SSG
- React 19 — последняя версия React
- Axios — HTTP-клиент для взаимодействия с API
- JWT-декодер — работа с токенами авторизации
- QRCode генератор (qrcode.react) — генерация QR-кодов
- Node.js ≥ 18.x
- Python ≥ 3.10
- PostgreSQL (или другая СУБД)
git clone [https://github.com/your-project-link.git](https://github.com/LeoCristt/Digital-Queue.git)
cd Digital-Queuecd backend
python -m venv venv
venv/scripts/activate
pip install -r req.txt
alembic upgrade head
cd ..cd frontend
npm installuvicorn app.main:app --reloadФронтенд сервер будет доступен по адресу: http://localhost:3000
Документация Swagger: http://127.0.0.1:8000/docs
npm run devГлавная папка проекта, содержащая два основных субпроекта:
backend/— серверная часть на FastAPIfrontend/— клиентская часть на Next.js
| Элемент | Назначение |
|---|---|
alembic/ |
Миграции базы данных (Alembic) |
app/ |
Основная логика приложения (роутеры, модели, сервисы) |
static/ |
Статические файлы (изображения, CSS, JS для шаблонов) |
tests/ |
Юнит-тесты и интеграционные тесты |
venv/ |
Виртуальное окружение Python (не коммитится) |
sql_app.db |
SQLite-база данных (для разработки) |
| Файл | Описание |
|---|---|
.gitignore |
Игнорируемые файлы для Git |
alembic.ini |
Настройки миграций Alembic |
req.txt |
Зависимости Python (аналог requirements.txt) |
| Элемент | Назначение |
|---|---|
.next/ |
Сгенерированные файлы Next.js (не коммитится) |
node_modules/ |
Установленные зависимости NPM (не коммитится) |
src/ |
Исходный код приложения (компоненты, страницы, стили) |
| Файл | Описание |
|---|---|
next.config.ts |
Конфигурация Next.js (TypeScript) |
tailwind.config.ts |
Настройки Tailwind CSS |
postcss.config.mjs |
Конфигурация PostCSS |
eslint.config.mjs |
Правила линтинга ESLint |
tsconfig.json |
Настройки TypeScript |