# 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. Скопируйте пример конфигурации и при необходимости измените значения: ```bash cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env ``` 3. Запустите окружение: ```bash docker compose up --build ``` 4. После запуска будут доступны сервисы: - API: http://localhost:8000 (документация Swagger — `/docs`). - Фронтенд: http://localhost:3000. Docker Compose автоматически переопределяет `ALABUGA_SQLITE_PATH=/data/app.db`, чтобы база сохранялась во внешнем volume. Для локального запуска вне Docker оставьте путь `./data/app.db` из примера. ## Локальная разработка backend ```bash cd backend python -m venv .venv source .venv/bin/activate pip install -r requirements-dev.txt # подготовьте переменные окружения (однократно) cp .env.example .env # применяем миграции alembic upgrade head # создаём демо-данные (команда выполняется из корня репозитория) cd .. python -m scripts.seed_data cd backend # Запуск API uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` ## Локальная разработка фронтенда ```bash cd frontend npm install cp .env.example .env 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).