AAYMA
RU
Войти

Career Quest

Локальный дашборд развития сотрудников: профиль навыков, карьерная цель, ранжированные рекомендации активностей, отслеживание выполнения.

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

О проекте

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

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

Суть

Локальный дашборд развития сотрудников: профиль навыков, карьерная цель, ранжированные рекомендации активностей, отслеживание выполнения. Для администратора есть HR-метрики, создание мероприятий и импорт данных.

Как устроено

Express-сервер с Vite и React UI читает employees/skills/events.json и activity_history.csv. Детерминированный движок ранжирует активности по требованиям целевой роли, разрывам навыков и истории обучения. Внешний AI не вызывается. Роли admin и employee, подписанные HttpOnly-сессии и CSRF. Изменения сохраняются в runtime-state.json. Судя по компонентам, есть геймификация, радар компетенций, симулятор карьеры и ИПР.

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

  • детерминированное ранжирование по skill gap
  • role-based access
  • CSRF-защита

Стек

TypeScript · React · Vite · Express · Node.js


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

README

README.md

Career Quest

Career Quest is a local employee-development dashboard. It helps employees review their skills and career goals, receive ranked learning recommendations, and track completed activities. Administrators can view HR metrics, create events, and import additional employee data.

The recommendation engine is deterministic: it ranks activities using target-role requirements, skill gaps, and the employee's learning history. The project does not call an external AI service.

Requirements

  • Node.js 20 or newer
  • npm

Run locally

git clone https://github.com/BAITC-Hacks/hack-ee5a3cd4-404-notfound.git
cd hack-ee5a3cd4-404-notfound
npm ci
npm run dev

Open http://127.0.0.1:3000.

Without a .env file, development mode uses this local-only administrator account:

Username: admin
Password: local-development-only

The development server listens on 127.0.0.1, so this fallback account is not exposed on the network. Never use it in production.

Production

Create .env from the example and provide at least one user plus a 32-character-or-longer session secret:

cp .env.example .env
npm run build
NODE_ENV=production npm start

Example configuration:

APP_AUTH_USERS='[{"username":"admin","password":"replace-with-a-long-password","role":"admin"},{"username":"employee-001","password":"replace-with-a-long-password","role":"employee","employeeId":"EMP_001"}]'
AUTH_SESSION_SECRET="replace-with-at-least-32-random-characters"

In production the app will not start without valid APP_AUTH_USERS and AUTH_SESSION_SECRET. Use a secret manager rather than committing production credentials. Set PORT to change the default port (3000).

Roles

  • admin can work with all employee profiles, HR analytics, imports, and custom learning events.
  • employee must be linked to an employeeId and can access only that employee's profile and actions.

Sessions are signed, stored in HttpOnly cookies, and expire after eight hours. State-changing API requests require a CSRF token.

Data and state

The base dataset lives in data/:

  • employees.json
  • skills.json
  • events.json
  • activity_history.csv

Changes made through the app are saved to data/runtime-state.json. That file is ignored by Git. In a deployed environment, set RUNTIME_STATE_PATH to a persistent-volume location, for example:

RUNTIME_STATE_PATH="/var/lib/career-quest/runtime-state.json"

Checks

npm run lint
npm run build
RUNTIME_STATE_PATH=/tmp/career-quest-check.json npx tsx src/scripts/verifyAllRequirements.ts

The last command exercises the included data and recommendation scenarios. It writes temporary state to the provided path; remove that file after the check if desired.

Project layout

  • server.ts - Express API and Vite/production-server setup.
  • src/ - React interface, API client, authorization, validation, and application logic.
  • data/ - bundled sample data.
Звёзды
⭐ 0
Форки
0
Язык
TypeScript
Последний push
в прошлом месяце
Коммиты
11
Авторы
2
Файлы
46
Ветки
1

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

Twinkieser 8not2pizza 3

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

  • 2026-09-23 17:49docs: simplify setup and deployment guidenot2pizza
  • 2026-09-23 17:45chore: modernize Vite config path resolutionnot2pizza
  • 2026-09-23 17:45fix: harden API access and state integritynot2pizza
  • 2026-09-23 17:24Sync latest upstream changesTwinkieser
  • 2026-09-23 16:42Sync project from reference repoTwinkieser
  • 2026-09-23 15:51Update homepageTwinkieser
  • 2026-09-23 15:09chore: merge hackathon history and retain project documentationTwinkieser
  • 2026-09-23 15:08fix: resolve Vite dependency conflict and config compatibilityTwinkieser
Все коммиты (11)
  • 2026-09-23 14:39Add files via uploadTwinkieser
  • 2026-09-23 14:36feat: initialize Career Quest AI platform projectTwinkieser
  • 2026-09-23 14:35Initial commitTwinkieser
Структура репозитория (46 файлов)
.env.example
.gitignore
29-main.zip
README.md
bun.lock
data/activity_history.csv
data/employees.json
data/events.json
data/skills.json
index.html
metadata.json
package-lock.json
package.json
public/test_jury_emp_99.json
server.ts
src/App.tsx
src/components/ActivityHistoryTable.tsx
src/components/BenchmarkNotice.tsx
src/components/CareerSimulatorModal.tsx
src/components/CompetencyRadarModal.tsx
src/components/EmployeeSelector.tsx
src/components/EventsCatalog.tsx
src/components/GamificationTab.tsx
src/components/HRDashboard.tsx
src/components/HREventBuilderModal.tsx
src/components/Header.tsx
src/components/ImportModal.tsx
src/components/IndividualDevelopmentPlanModal.tsx
src/components/LoginScreen.tsx
src/components/ProfileCard.tsx
src/components/RecommendationCard.tsx
src/components/SkillGapsTable.tsx
src/i18n/translations.ts
src/index.css
src/lib/api.ts
src/main.tsx
src/scripts/generateData.ts
src/scripts/testBenchmark.ts
src/scripts/verifyAllRequirements.ts
src/scripts/verifyBonus200Percent.ts
src/server/auth.ts
src/server/dataStore.ts
src/server/validation.ts
src/types/index.ts
tsconfig.json
vite.config.ts

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

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

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