# Alabuga Gamification Platform Проект реализует прототип геймифицированного модуля для кадровой системы «Алабуги». Мы создаём космический лор, ранги, миссии, журнал событий и магазин артефактов. Репозиторий содержит backend на FastAPI (Python 3.13) и фронтенд на Next.js (TypeScript). ## Содержимое репозитория - `backend/` — FastAPI, SQLAlchemy, Alembic, бизнес-логика геймификации. - `frontend/` — Next.js с SSR, дизайн в космической стилистике. - `scripts/` — служебные скрипты (сидирование демо-данных). - `docs/` — документация, дополнительный лор. - `docker-compose.yaml` — инфраструктура проекта. ## Быстрый старт в Docker 1. Установите Docker и Docker Compose. 2. Скопируйте `.env.example` в `.env` (файл появится после сборки) и при необходимости поменяйте настройки. 3. Запустите окружение: ```bash docker compose up --build ``` 4. После запуска будут доступны сервисы: - API: http://localhost:8000 (документация Swagger — `/docs`). - Фронтенд: http://localhost:3000. ## Локальная разработка backend ```bash cd backend python -m venv .venv source .venv/bin/activate pip install -r requirements-dev.txt # применяем миграции и создаём демо-данные alembic upgrade head python -m scripts.seed_data # Запуск API uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` ## Локальная разработка фронтенда ```bash cd frontend npm install npm run dev ``` ## Пользовательские учётные записи (сидированные) | Роль | Email | Пароль | | --- | --- | --- | | Пилот | `candidate@alabuga.space` | `orbita123` | | HR | `hr@alabuga.space` | `orbita123` | ## Тестирование ```bash cd backend pytest ``` ## Основные сценарии, реализованные в бэкенде - Авторизация по email/паролю с JWT. - Получение профиля пилота со списком компетенций и артефактов. - Получение миссий, отправка отчётов, модерация HR. - Начисление опыта, маны и повышение ранга по трём условиям из ТЗ. - Журнал событий, экспортируемый через API. - Магазин артефактов с оформлением заказа. - Админ-панель для HR: создание миссий, очередь модерации, список рангов. ## План развития - Реализовать фронтенд-интерфейс всех экранов. - Добавить экспорт CSV и агрегаты аналитики в API. - Настроить CI/CD и автотесты во фреймворках фронтенда. - Расширить документацию в `docs/` (описание лора, сценарии e2e).