AAYMA
RU
Войти

AEVIX

Платформа карьерного развития сотрудников: рекомендует карьерные квесты по skill gaps и целевому грейду, объясняет выбор через AI и генерирует шаги…

Рабочий MVP
Команда «Aevix» 7💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: Aevix
Кейс HackAlem.ai: Менеджмент — Halyk Bank · кейс 1
Стадия: Рабочий MVP

Задача кейса: «Career Quest»: AI-навигатор, связывающий навыки сотрудника с шагами развития

Суть

Платформа карьерного развития сотрудников: рекомендует карьерные квесты по skill gaps и целевому грейду, объясняет выбор через AI и генерирует шаги, с геймификацией (Growth Coins, «карьерный город»), парным обучением, ESG-целями и HR-аналитикой.

Как устроено

Датасет кейса (employees.json, events.json, skills.json, activity_history.csv) загружается в SQLite через API импорта. Детерминированный движок считает score квеста по skill gaps, целевому грейду, impact, prerequisites и истории активностей. OpenAI Responses API формулирует объяснение рекомендации и план из 3–5 шагов; без ключа используются шаблонные ответы. Отдельные сервисы отвечают за кошелёк Growth Coins, ESG-взносы, пары и команды, HR-дашборд и аутентификацию сотрудников и HR.

Ключевые решения

  • детерминированный scoring по skill gaps
  • explainability
  • LLM-генерация шагов квеста
  • геймификация
  • парное обучение

Особенности

Рекомендацию считает прозрачная формула, а LLM только объясняет её и расписывает шаги. Широкая геймификация: эволюция «карьерного города», Growth Coins с вкладом в ESG-цели, парное прохождение квестов.

Стек

Python · FastAPI · SQLAlchemy · SQLite · React · Vite · TypeScript · Docker Compose · nginx · pytest

Модели

OpenAI Responses API (gpt-6-sol / gpt-6-astra в конфиге)


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-fe3472cb-aevix.

README

README.md

AEVIX - AI Career Quest Platform

AEVIX - платформа персонального развития сотрудников. Система анализирует профиль сотрудника, историю активностей и skill gaps, рекомендует карьерные квесты, объясняет логику рекомендаций через AI и помогает проходить активности по шагам.

Архитектура

+-----------------+       HTTP        +-----------------+       HTTPS       +--------------+
|    Frontend     | <---------------> |     Backend     | <--------------> |    OpenAI    |
|  React + Vite   |      :3000        |     FastAPI     |  Responses API   |     LLM      |
+-----------------+                   +-----------------+                  +--------------+
                                              |
                                              v
                                      +-----------------+
                                      |     SQLite      |
                                      | career_quest.db |
                                      +-----------------+
                                              |
                                              v
                                      +-----------------+
                                      | Career Dataset  |
                                      | employees/events|
                                      +-----------------+

Возможности

  • Персональные рекомендации: deterministic engine считает score по skill gaps, целевому грейду, impact, prerequisites и истории активностей.
  • AI-объяснения: OpenAI Responses API формулирует понятное объяснение, почему выбран конкретный квест.
  • AI-шаги квеста: модель генерирует практический план из 3-5 шагов для выбранной активности.
  • Прогресс-бары ожидания: frontend показывает индикатор, пока модель думает.
  • Парное обучение: сотрудник может найти коллегу и пройти квест вместе.
  • Growth Coins: кошелек, транзакции и награды за завершение активностей.
  • ESG goals: вклад Growth Coins в инициативы компании.
  • HR analytics: агрегированная аналитика по skill gaps, активности сотрудников и ESG engagement.
  • Импорт данных: загрузка employees, events, skills и activity history через API.

Презентация

Быстрый запуск через Docker Compose

Требования

  • Docker
  • Docker Compose
  • Git
  • OpenAI API key, если нужны AI-объяснения и AI-шаги

1. Настрой .env

Файл .env лежит в папке backend:

cd hack-fe3472cb-aevix

Пример:

OPENAI_API_KEY=your-openai-api-key
OPENAI_MODEL=gpt-6-sol

# Optional dataset override
# DATASET_DIR=C:\path\to\career_quest_dataset\case_1\career_quest_dataset

Если OPENAI_API_KEY не задан, приложение продолжит работать через локальные template-ответы.

2. Настрой логины и пароли

Скрипты генерации паролей запускаются из backend-папки. Если зависимости еще не установлены локально, подготовь окружение:

python -m venv env
env\Scripts\activate
pip install -r requirements.txt

HR-аккаунт создается локально. По умолчанию логин HR: hr, пароль генерируется автоматически:

python -m app.setup_hr

Скрипт добавит HR_USERNAME и HR_PASSWORD_HASH в .env, а реальный пароль сохранит только локально:

.local/hr-access.txt

Пароли сотрудников тоже генерируются локально. Логин сотрудника совпадает с employee_id, например E0002. Запускай команду после первого старта backend или после импорта dataset, чтобы в базе уже были сотрудники:

python -m app.setup_employees

Список employee-логинов и паролей будет сохранен в приватный файл:

.local/employee-access.csv

Чтобы пересоздать пароли и сбросить активные сессии:

python -m app.setup_hr --rotate
python -m app.setup_employees --rotate

Файлы .env и .local/ уже находятся в .gitignore, поэтому пароли и хэши не должны попадать в Git.

3. Запусти сервисы

docker compose up --build -d

4. Открой приложение

5. Остановить сервисы

docker compose down

Чтобы удалить volume с SQLite-базой:

docker compose down -v

Ручной запуск без Docker

Backend

cd hack-fe3472cb-aevix
python -m venv env
env\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

Проверка:

curl http://127.0.0.1:8000/health

Frontend

Frontend находится рядом с backend-папкой:

cd ../career-quest-frontend
npm install
npm run dev

По умолчанию Vite откроется на:

http://127.0.0.1:5173

Сервисы

СервисПортОписание
Frontend3000React/Vite SPA, собранный в Nginx container
Backend8000FastAPI API для рекомендаций, квестов, HR и ESG
SQLitevolumeЛокальная база career_quest.db внутри Docker volume
OpenAIexternalAI-объяснения и генерация шагов квеста

Docker-файлы

aevix/
├── hack-fe3472cb-aevix/
│   ├── Dockerfile
│   ├── docker-compose.yml
│   └── .dockerignore
└── career-quest-frontend/
    ├── Dockerfile
    ├── nginx.conf
    └── .dockerignore

Переменные окружения

Backend

ПеременнаяОбязательнаяЗначение по умолчаниюОписание
OPENAI_API_KEYНетNoneAPI key для OpenAI
OPENAI_MODELНетgpt-6-astraМодель для AI-объяснений и шагов
DATABASE_URLНетsqlite:///./career_quest.dbSQLAlchemy URL базы данных
DATASET_DIRНетbundled datasetПуть к dataset
ALLOWED_ORIGINSНетlocalhost originsCORS origins для frontend
HR_USERNAMEНетhrЛогин HR-аккаунта
HR_PASSWORD_HASHДа для HR-loginNoneХэш HR-пароля, генерируется через python -m app.setup_hr
HR_SESSION_HOURSНет8Время жизни auth-сессии в часах
HR_COOKIE_SECUREНетfalsetrue для HTTPS-cookie в production

Frontend

ПеременнаяОбязательнаяЗначение по умолчаниюОписание
VITE_API_URLНетhttp://127.0.0.1:8000URL backend API
VITE_EMPLOYEE_IDНетE0002ID сотрудника для demo UI

В Docker Compose frontend собирается с:

VITE_API_URL=http://localhost:8000
VITE_EMPLOYEE_ID=E0002

Структура проекта

aevix/
├── hack-fe3472cb-aevix/              # Backend FastAPI
│   ├── app/
│   │   ├── core/                     # Конфигурация
│   │   ├── db/                       # SQLAlchemy модели и база
│   │   ├── routers/                  # API роуты
│   │   ├── schemas/                  # Pydantic схемы
│   │   ├── services/                 # Бизнес-логика
│   │   ├── tests/                    # Pytest тесты
│   │   └── main.py                   # FastAPI приложение
│   ├── career_quest_dataset/         # Demo dataset
│   ├── Dockerfile
│   ├── docker-compose.yml
│   ├── requirements.txt
│   └── .env
└── career-quest-frontend/            # Frontend React/Vite
    ├── src/
    │   ├── api.js                    # API client
    │   ├── SiteApp.jsx               # Основной UI
    │   ├── AdminPages.jsx            # HR и import страницы
    │   └── site.css                  # Стили
    ├── Dockerfile
    ├── nginx.conf
    └── package.json

API endpoints

Health

  • GET /health - проверка backend

Auth

  • POST /api/auth/login - вход сотрудника или HR
  • POST /api/auth/hr/login - вход только для HR
  • GET /api/auth/session - текущая auth-сессия
  • POST /api/auth/logout - выход

Employees

  • GET /api/employees - список сотрудников
  • POST /api/employees/register - регистрация сотрудника
  • GET /api/employees/{employee_id} - данные сотрудника
  • GET /api/employees/{employee_id}/profile - профиль сотрудника
  • GET /api/employees/{employee_id}/trajectory - траектория развития
  • GET /api/employees/{employee_id}/recommendations - рекомендации с AI-объяснениями

Quests

  • POST /api/employees/{employee_id}/quests/{event_id}/select - выбрать квест
  • GET /api/employees/{employee_id}/quests/{event_id}/steps - получить шаги квеста
  • POST /api/employees/{employee_id}/quests/{event_id}/steps/{step_number}/complete - завершить шаг
  • POST /api/employees/{employee_id}/quests/{event_id}/complete - завершить квест

Game / Wallet / ESG

  • GET /api/game/{employee_id}/map - карта развития
  • GET /api/game/{employee_id}/progress - игровой прогресс
  • GET /api/game/{employee_id}/quests - игровые квесты
  • GET /api/wallet/{employee_id} - Growth Coins wallet
  • GET /api/esg-goals - ESG goals
  • POST /api/esg-goals/{goal_id}/contribute - отправить coins на ESG goal

Pair learning / Teams

  • GET /api/pairs/invitations?employee_id={employee_id} - список приглашений
  • POST /api/pairs/invitations - опубликовать приглашение
  • GET /api/pairs/invitations/{invitation_id}/preview?employee_id={employee_id} - проверить совместимость
  • POST /api/pairs/invitations/{invitation_id}/respond - принять или отклонить приглашение
  • POST /api/teams - создать команду
  • GET /api/teams/{team_id} - получить команду
  • POST /api/teams/{team_id}/join - вступить в команду

HR / Import

  • GET /api/hr/dashboard - HR dashboard
  • GET /api/hr/esg-engagement - ESG engagement analytics
  • POST /api/import/dataset - импорт dataset
  • POST /api/import/check-profiles - импорт employees JSON
  • POST /api/import/check-history - импорт activity history CSV
  • POST /api/import/events - импорт events JSON
  • POST /api/import/skills - импорт skills JSON

Тестирование

Backend:

cd hack-fe3472cb-aevix
pytest

Frontend:

cd ../career-quest-frontend
npm run build

Docker Compose config:

cd hack-fe3472cb-aevix
docker compose config

Troubleshooting

Backend не запускается

  • Проверь .env
  • Проверь, что порт 8000 свободен
  • Посмотри логи:
docker compose logs backend

Frontend не видит backend

  • Проверь, что backend отвечает: http://localhost:8000/health
  • В Docker Compose frontend собирается с VITE_API_URL=http://localhost:8000
  • Пересобери frontend после изменения env:
docker compose build frontend
docker compose up -d frontend

AI отвечает медленно

  • Используй более быструю модель:
OPENAI_MODEL=gpt-6-sol
  • Пока модель думает, frontend показывает progress bar.
  • Без OPENAI_API_KEY backend использует template fallback.

Рекомендации пустые

  • Проверь, что demo dataset импортировался при старте backend
  • Проверь employee ID, например E0002
  • Перезапусти backend или выполни import endpoint

AEVIX v1.0 - AI Career Quest Platform

Звёзды
⭐ 0
Форки
0
Язык
JavaScript
Последний push
в прошлом месяце
Коммиты
46
Авторы
4
Файлы
165
Ветки
4

Авторы коммитов

Arsen Shanaqbai 23sakenzi 12yenllik 6Arsen Shanaqbai 5

История коммитов

  • 2026-09-23 17:59final commitsakenzi
  • 2026-09-23 17:57final commitsakenzi
  • 2026-09-23 17:47final commitsakenzi
  • 2026-09-23 17:41NewArsen Shanaqbai
  • 2026-09-23 17:41New ReadyArsen Shanaqbai
  • 2026-09-23 17:34Merge branch 'main' of https://github.com/BAITC-Hacks/hack-fe3472cb-aevixsakenzi
  • 2026-09-23 17:34final commitsakenzi
  • 2026-09-23 17:28presayenllik
Все коммиты (46)
  • 2026-09-23 17:27UpDate ReadyArsen Shanaqbai
  • 2026-09-23 17:24presayenllik
  • 2026-09-23 17:23presayenllik
  • 2026-09-23 17:22UpDate ReadyArsen Shanaqbai
  • 2026-09-23 17:16StartArsen Shanaqbai
  • 2026-09-23 17:14Update collaboration pairs hints and quest preview handlingArsen Shanaqbai
  • 2026-09-23 17:11New UpArsen Shanaqbai
  • 2026-09-23 17:02New updateArsen Shanaqbai
  • 2026-09-23 16:42New update testingArsen Shanaqbai
  • 2026-09-23 16:312 Copy all files from backendArsen Shanaqbai
  • 2026-09-23 16:312 Save frontend workArsen Shanaqbai
  • 2026-09-23 16:31update backendsakenzi
  • 2026-09-23 16:20New TestArsen Shanaqbai
  • 2026-09-23 16:16New Beta testArsen Shanaqbai
  • 2026-09-23 16:13Проверка обновленияArsen Shanaqbai
  • 2026-09-23 16:08TestingArsen Shanaqbai
  • 2026-09-23 16:05UpDate newArsen Shanaqbai
  • 2026-09-23 15:552 Copy all files from backendArsen Shanaqbai
  • 2026-09-23 15:552 Save frontend workArsen Shanaqbai
  • 2026-09-23 15:523 nd update backendsakenzi
  • 2026-09-23 15:493ndyenllik
  • 2026-09-23 15:41New UpdateArsen Shanaqbai
  • 2026-09-23 15:32Copy all files from backendArsen Shanaqbai
  • 2026-09-23 15:32Save frontend workArsen Shanaqbai
  • 2026-09-23 15:29Frontend updateArsen Shanaqbai
  • 2026-09-23 15:22update backendsakenzi
  • 2026-09-23 15:09New commit to meArsen Shanaqbai
  • 2026-09-23 15:07Update designArsen Shanaqbai
  • 2026-09-23 14:492ndyenllik
  • 2026-09-23 14:42Design new 2Arsen Shanaqbai
  • 2026-09-23 14:39update backendsakenzi
  • 2026-09-23 14:17api verificationsakenzi
  • 2026-09-23 14:16New DesignArsen Shanaqbai
  • 2026-09-23 13:48Backend UpDateArsen Shanaqbai
  • 2026-09-23 13:40add career quest datasetsakenzi
  • 2026-09-23 13:28first commityenllik
  • 2026-09-23 13:16first commitsakenzi
  • 2026-09-23 13:16case 1Arsen Shanaqbai
Структура репозитория (165 файлов)
.dockerignore
.gitignore
Dockerfile
README.md
app/__init__.py
app/core/config.py
app/db/auth_models.py
app/db/database.py
app/db/models.py
app/main.py
app/routers/auth_router.py
app/routers/employee_router.py
app/routers/esg_router.py
app/routers/game_router.py
app/routers/hr_router.py
app/routers/import_router.py
app/routers/pair_router.py
app/routers/recommendation_router.py
app/routers/team_router.py
app/routers/wallet_router.py
app/schemas/collaboration.py
app/schemas/employee.py
app/schemas/event.py
app/schemas/game.py
app/schemas/history.py
app/schemas/hr.py
app/schemas/recommendation.py
app/schemas/skill.py
app/services/auth_service.py
app/services/esg_service.py
app/services/game_service.py
app/services/hr_service.py
app/services/import_service.py
app/services/llm_service.py
app/services/pair_service.py
app/services/progress_service.py
app/services/quest_service.py
app/services/recommendation_service.py
app/services/team_service.py
app/setup_employees.py
app/setup_hr.py
app/tests/conftest.py
app/tests/test_agent_esg_hr.py
app/tests/test_api_contracts.py
app/tests/test_auth.py
app/tests/test_backend_regressions.py
app/tests/test_city_levels.py
app/tests/test_collaboration_api.py
app/tests/test_collaboration_auth.py
app/tests/test_employee_auth.py
app/tests/test_employee_provisioning.py
app/tests/test_login_limits.py
app/tests/test_pair_dismissals.py
app/tests/test_quest_step_generation.py
app/tests/test_quest_steps.py
app/tests/test_recommendation.py
app/tests/test_workspace.py
app/utils/explainability.py
app/utils/grade.py
app/utils/scoring.py
career_quest.db
career_quest_dataset/__MACOSX/._case_1
career_quest_dataset/__MACOSX/case_1/._.DS_Store
career_quest_dataset/__MACOSX/case_1/._career_quest_dataset
career_quest_dataset/__MACOSX/case_1/career_quest_dataset/._README.kz.md
career_quest_dataset/__MACOSX/case_1/career_quest_dataset/._README.md
career_quest_dataset/__MACOSX/case_1/career_quest_dataset/._README.ru.md
career_quest_dataset/__MACOSX/case_1/career_quest_dataset/._activity_history.csv
career_quest_dataset/__MACOSX/case_1/career_quest_dataset/._employees.json
career_quest_dataset/__MACOSX/case_1/career_quest_dataset/._events.json
career_quest_dataset/__MACOSX/case_1/career_quest_dataset/._skills.json
career_quest_dataset/case_1/career_quest_dataset/README.kz.md
career_quest_dataset/case_1/career_quest_dataset/README.md
career_quest_dataset/case_1/career_quest_dataset/README.ru.md
career_quest_dataset/case_1/career_quest_dataset/activity_history.csv
career_quest_dataset/case_1/career_quest_dataset/employees.json
career_quest_dataset/case_1/career_quest_dataset/events.json
career_quest_dataset/case_1/career_quest_dataset/skills.json
case_1/.DS_Store
case_1/career_quest_dataset/README.kz.md
case_1/career_quest_dataset/README.md
case_1/career_quest_dataset/README.ru.md
case_1/career_quest_dataset/activity_history.csv
case_1/career_quest_dataset/employees.json
case_1/career_quest_dataset/events.json
case_1/career_quest_dataset/skills.json
docker-compose.yml
frontend/.dockerignore
frontend/.env.example
frontend/.gitignore
frontend/.npm-cache/_update-notifier-last-checked
frontend/.vite/deps/_metadata.json
frontend/.vite/deps/chunk-EZWSRKYN.js
frontend/.vite/deps/chunk-EZWSRKYN.js.map
frontend/.vite/deps/chunk-GFWMZNU4.js
frontend/.vite/deps/chunk-GFWMZNU4.js.map
frontend/.vite/deps/package.json
frontend/.vite/deps/react-dom.js
frontend/.vite/deps/react-dom.js.map
frontend/.vite/deps/react-dom_client.js
frontend/.vite/deps/react-dom_client.js.map
frontend/.vite/deps/react.js
frontend/.vite/deps/react.js.map
frontend/.vite/deps/react_jsx-dev-runtime.js
frontend/.vite/deps/react_jsx-dev-runtime.js.map
frontend/Dockerfile
frontend/index.html
frontend/nginx.conf
frontend/package-lock.json
frontend/package.json
frontend/public/brand/career-city-4k.png
frontend/public/brand/career-city-logo.png
frontend/public/brand/career-city-mark-4k.png
frontend/public/brand/career-city-mark.svg
frontend/public/brand/career-city.svg
frontend/public/brand/halyk-career-city-mark.svg
frontend/public/brand/halyk-career-city.png
frontend/public/images/career-city.png
frontend/public/images/city-levels/city-levels-light.png
frontend/public/images/city-levels/city-levels-sheet.png
frontend/public/images/city-panorama.png
frontend/public/images/developer-welcome.png
frontend/public/images/developer-welcome.prompt.txt
frontend/public/images/halyk-bank-logo.png
frontend/src/App.tsx
frontend/src/PreviewContext.ts
frontend/src/api.ts
frontend/src/authApi.ts
frontend/src/catalog.ts
frontend/src/cityCopy.ts
frontend/src/collaborationApi.ts
frontend/src/components/BrandLogo.tsx
frontend/src/components/CareerAssistant.tsx
frontend/src/components/CareerMap.tsx
frontend/src/components/CityEvolution.tsx
frontend/src/components/EmployeePicker.tsx
frontend/src/components/History.tsx
frontend/src/components/Icon.tsx
frontend/src/components/LoginPage.tsx
frontend/src/components/ProgressRing.tsx
frontend/src/components/QuestCard.tsx
frontend/src/components/QuestStepsPanel.tsx
frontend/src/components/SkillGap.tsx
frontend/src/components/WalletPanel.tsx
frontend/src/components/assistant.css
frontend/src/components/collaboration.css
frontend/src/components/login.css
frontend/src/components/questSteps.css
frontend/src/components/wallet.css
frontend/src/i18n.tsx
frontend/src/main.tsx
frontend/src/pages/CityPage.tsx
frontend/src/pages/CollaborationPage.tsx
frontend/src/pages/EmployeePage.tsx
frontend/src/pages/EmployeeSection.tsx
frontend/src/pages/HrPage.tsx
frontend/src/routes.ts
frontend/src/sessionTransport.ts
frontend/src/styles.css
frontend/src/workspaceShell.css
frontend/tsconfig.json
frontend/vite.config.ts
package-lock.json
package.json
requirements.txt
Ветки (4)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.