4.0 KiB
4.0 KiB
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
- Установите Docker и Docker Compose.
- Скопируйте пример конфигурации и при необходимости измените значения:
cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env - Запустите окружение:
docker compose up --build - После запуска будут доступны сервисы:
- API: http://localhost:8000 (документация Swagger —
/docs). - Фронтенд: http://localhost:3000.
- API: http://localhost:8000 (документация Swagger —
Docker Compose автоматически переопределяет ALABUGA_SQLITE_PATH=/data/app.db, чтобы база сохранялась во внешнем volume. Для локального запуска вне Docker оставьте путь ./data/app.db из примера.
Локальная разработка backend
cd backend
python -m venv .venv
source .venv/bin/activate
export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
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
Локальная разработка фронтенда
cd frontend
npm install
cp .env.example .env
npm run dev
Пользовательские учётные записи (сидированные)
| Роль | Пароль | |
|---|---|---|
| Пилот | candidate@alabuga.space |
orbita123 |
| HR | hr@alabuga.space |
orbita123 |
Тестирование
cd backend
pytest
Основные сценарии, реализованные в бэкенде
- Авторизация по email/паролю с JWT.
- Получение профиля пилота со списком компетенций и артефактов.
- Получение миссий, отправка отчётов, модерация HR.
- Начисление опыта, маны и повышение ранга по трём условиям из ТЗ.
- Журнал событий, экспортируемый через API.
- Магазин артефактов с оформлением заказа.
- Админ-панель для HR: создание миссий, очередь модерации, список рангов.
План развития
- Реализовать фронтенд-интерфейс всех экранов.
- Добавить экспорт CSV и агрегаты аналитики в API.
- Настроить CI/CD и автотесты во фреймворках фронтенда.
- Расширить документацию в
docs/(описание лора, сценарии e2e).