AAYMA
RU
Войти

CareerUp

Веб-платформа развития сотрудника на кейс Career Quest.

Доведённый продукт
Команда «BizAI» 8💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: BizAI
Кейс HackAlem.ai: Менеджмент — Halyk Bank · кейс 1
Стадия: Доведённый продукт

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

Суть

Веб-платформа развития сотрудника на кейс Career Quest. Сотрудник ведёт цели, планы и каталог обучения и отправляет доказательства на ревью. HR и руководитель одобряют или возвращают; AI-советник объясняет варианты, но не выставляет оценки.

Как устроено

Next.js/React читает датасет Career Quest в SQLite. Эффективные навыки считаются как базовая оценка плюс приросты от завершённых активностей с учётом потолков и дат оценки. Формальные модули закрываются только навыками, одобренными человеком. AI-ассистент через OpenAI работает на сервере, со стримингом и tools. Есть консультации, брифы для HR, импорт JSON/CSV и локализация ENG/РУС/ҚАЗ.

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

  • rule-based skill progression
  • human-in-the-loop review approval
  • streaming chat
  • tool calling

Особенности

Строгое разделение плана, эффективных навыков и формальных модулей: обучение само по себе не закрывает модуль, AI никого не повышает. Есть отдельные тест-наборы на HTTP, AI, ревью и identity, а также деплой в k3s через CI/CD.

Стек

TypeScript · Next.js · React · SQLite · Tailwind · Docker · Kubernetes (k3s) · GitHub Actions

Модели

OpenAI


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

README

README.md

CareerUp

Demo website: http://92.38.48.67

CareerUp is an employee development prototype built with Next.js, React and SQLite. Employees own their goals and plans, explore learning activities, and submit evidence for human review. Managers and HR can approve or return reviews; AI helps explain options but never sets ratings or promotes employees.

The supplied synthetic dataset contains 200 employees, 40 activities, 60 skills and 2,743 participation records. Its business date is 2026-10-01, independent of the server clock.

Demo identity only: anyone can select any employee or HR account on the public entry page. Server-side role checks do not establish a person's identity. Use synthetic data only.

Quick start

Requires Node.js 22.13+ and npm. Run from the repository root:

npm ci
npm run dev

Open localhost:3000, select an employee or HR, and enter the workspace. No external database or AI key is required for the core workflows.

For a production-mode synthetic demo, one command installs, builds and starts:

npm run demo

Or build and start separately:

npm run build
npm start

On first repository access, the app loads fixtures from case_source/case_1/career_quest_dataset/ into .data/career-quest.sqlite. Existing databases are reused; changing fixture files does not reseed them automatically.

Optional configuration:

# Only for a new local setup; preserve an existing .env.local.
cp -n .env.example .env.local

Set OPENAI_API_KEY for live assistance. The key stays on the server; never use a NEXT_PUBLIC_* variable. Set COOKIE_SECURE=true when serving over HTTPS. See setup and operations for every setting, isolated demo data, troubleshooting and validation.

Workspaces

RouteWhat works
/Public employee/HR account picker and language selector
/employee/dashboardOverview, goals/milestones, advisor, skill evidence and learning history through ?view=
/employee/learningSearch/filter catalog, activity detail, add to plan and demo completion
/employee/reviewsSelf-assessment drafts/submission; direct-report reviews for managers
/hr/dashboardProfile search, target-gap prevalence and participation aggregates
/hr/employees/[id]Read-only employee plans, AI discussion briefs, review approval/return
/hr/dataPreview/apply employee JSON and history CSV imports; fixture reset

English, Russian and Kazakh are available through ENG / РУС / ҚАЗ. Switching language reloads the current URL; save edits first. Supplied catalog text is translated, while unknown imported free text stays verbatim.

What progress means

  • Plan: employee intentions, milestones and claimed evidence. Changing a milestone does not increase skills.
  • Effective skills: assessed baseline plus eligible completed-activity gains, respecting caps and per-skill assessment cutoffs.
  • Formal modules: target requirements met by human-approved skill baselines, or imported assessments when no approval exists. Learning alone cannot close a module.
  • Grade: recorded employment data. No workflow automatically promotes an employee.

A missing goal remains unset. An optional next-grade preview becomes a target only after the employee saves a role-linked focus. Free-form goals work for planning; catalog-based recommendations and quarterly reviews need a supported role/grade target.

Docker

docker build -t career-quest:local .
docker volume create career-quest-data
docker run -d --name career-quest \
  --restart unless-stopped \
  -p 3000:3000 \
  --mount type=volume,source=career-quest-data,target=/app/.data \
  career-quest:local

The image includes fixtures and runs Next.js standalone as UID/GID 1000. Persist the entire writable /app/.data directory, including SQLite WAL files. Use one application replica with its own volume. PostgreSQL and MinIO are not integrated. For Kubernetes use Recreate; an image rollback does not roll back database contents.

# Builds the application and executes the checked-in validation suites.
docker build --target test -t career-quest:test .

For an AMD64 server when building on Apple Silicon, use docker buildx build --platform linux/amd64 --load -t career-quest:local .. Deployment manifests, CI behavior and recovery commands are in the deployment runbook; its recorded live state is not a fresh deployment verification.

Validate

npm run typecheck
npm run lint
npm test
npm run build
npm run test:http
npm run test:ai
npm run test:reviews
npm run test:identity

Build before the HTTP suites: they run next start against temporary SQLite databases. The AI suite explicitly disables the provider and does not establish live model quality. Ports and overrides are in the validation guide.

Documentation

GuideContents
Documentation indexCurrent guides versus historical plans/reviews
Setup and operationsConfiguration, validation, persistence, imports and troubleshooting
ArchitectureComponents, storage, authorization, API surface and consistency rules
UXNavigation, progress semantics, empty/error states and localization
User flowsEmployee, manager and HR walkthroughs with expected outcomes
AI assistanceEvidence, consultation, streaming, adoption and provider boundaries
Implementation statusCurrent capability summary and historical delivery evidence

Still pending: production SSO, AI review calibration, arbitrary natural-language constraint filtering, a unified action timeline, HR-authored tasks/resources and full dataset replacement. Demo completions, review approval/return, structured duration/format preferences and Docker packaging are implemented.

Versions and scripts are maintained in package.json. The Next.js PostCSS override is deliberate; review it when upgrading the framework rather than removing it incidentally.

Звёзды
⭐ 0
Форки
0
Язык
TypeScript
Последний push
в прошлом месяце
Коммиты
24
Авторы
3
Файлы
159
Ветки
1

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

Aidynbek Tussipzhan 21Nuraly Kituyev 2KIT-DS 1

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

  • 2026-09-23 17:54Rename project and platform to CareerUpAidynbek Tussipzhan
  • 2026-09-23 17:41Make advisor timeout optional and environment-configuredAidynbek Tussipzhan
  • 2026-09-23 17:35Add demo website link to READMEAidynbek Tussipzhan
  • 2026-09-23 17:34Make career assistant conversational and aware of complete employee contextAidynbek Tussipzhan
  • 2026-09-23 17:17Document setup, architecture, UX and user flowsAidynbek Tussipzhan
  • 2026-09-23 17:10Fix client UUID generation on HTTP demo deploymentAidynbek Tussipzhan
  • 2026-09-23 17:09Simplify advisor chat and floating widget presentationAidynbek Tussipzhan
  • 2026-09-23 17:06Complete app translations and add locale coverage checksAidynbek Tussipzhan
Все коммиты (24)
  • 2026-09-23 17:04Preserve development map context and prioritize milestone evidenceAidynbek Tussipzhan
  • 2026-09-23 17:03Remove access-token login and use account pickerAidynbek Tussipzhan
  • 2026-09-23 16:58Merge workflow redesign and interactive development mapAidynbek Tussipzhan
  • 2026-09-23 16:57Build connected development map and activity planning journeyAidynbek Tussipzhan
  • 2026-09-23 16:51Fix case compliance gaps in recommendations, completion and accessAidynbek Tussipzhan
  • 2026-09-23 16:45Add HR and manager review approval with audited skill assessmentsAidynbek Tussipzhan
  • 2026-09-23 16:28Fix chat stop button resubmission and document verificationAidynbek Tussipzhan
  • 2026-09-23 16:26Merge remote-tracking branch 'origin/main'Aidynbek Tussipzhan
  • 2026-09-23 16:24Add development workflows, AI advisor, and workspace redesignAidynbek Tussipzhan
  • 2026-09-23 16:21Update .env.exampleKIT-DS
  • 2026-09-23 16:19Add k3s deployment and GitHub Actions CI/CDNuraly Kituyev
  • 2026-09-23 16:04Add Docker packaging for Next.js applicationNuraly Kituyev
  • 2026-09-23 15:01Document quarterly development review flowAidynbek Tussipzhan
  • 2026-09-23 14:56Remove obsolete planning documentAidynbek Tussipzhan
  • 2026-09-23 14:52Add localized Career Quest interfaceAidynbek Tussipzhan
  • 2026-09-23 14:38Add Career Quest application foundationAidynbek Tussipzhan
Структура репозитория (159 файлов)
.dockerignore
.env.example
.github/workflows/deploy.yml
.gitignore
Dockerfile
README.md
app/api/assistant/consultation/route.ts
app/api/assistant/goal/route.ts
app/api/assistant/route.ts
app/api/completions/route.ts
app/api/data/route.ts
app/api/employees/[id]/route.ts
app/api/planning/route.ts
app/api/reviews/route.ts
app/api/session/route.ts
app/employee/dashboard/page.tsx
app/employee/layout.tsx
app/employee/learning/page.tsx
app/employee/reviews/page.tsx
app/error.tsx
app/globals.css
app/hr/dashboard/page.tsx
app/hr/data/page.tsx
app/hr/employees/[id]/page.tsx
app/hr/layout.tsx
app/layout.tsx
app/not-found.tsx
app/page.tsx
case_source/HackAlem AI_ Career Quest - платформа геймификации жизненного цикла сотрудника..docx
case_source/case_1/career_quest_dataset/README.kz.md
case_source/case_1/career_quest_dataset/README.md
case_source/case_1/career_quest_dataset/README.ru.md
case_source/case_1/career_quest_dataset/activity_history.csv
case_source/case_1/career_quest_dataset/employees.json
case_source/case_1/career_quest_dataset/events.json
case_source/case_1/career_quest_dataset/skills.json
components/career/activity-card.tsx
components/career/adopt-activity.tsx
components/career/advisor-widget.tsx
components/career/assistant-panel.tsx
components/career/completion-button.tsx
components/career/consultation-form.tsx
components/career/development-flow.tsx
components/career/development-map.tsx
components/career/development-panel.tsx
components/career/development-workspace.tsx
components/career/entry-card.tsx
components/career/import-form.tsx
components/career/planning-editor.tsx
components/career/preference-proposal.tsx
components/career/review-panel.tsx
components/career/skill-cards.tsx
components/charts/donut.tsx
components/providers/locale.tsx
components/shell/app-shell.tsx
components/shell/language-switcher.tsx
components/shell/workspace-shell.tsx
components/ui/badge.tsx
components/ui/button.tsx
components/ui/card.tsx
components/ui/input.tsx
deploy/README.md
deploy/k8s/site.yaml
deploy/known_hosts
deploy/server/deploy-image.py
deploy/server/install.sh
docs/README.md
docs/ai-assistance.md
docs/architecture.md
docs/corporate-development-questions.md
docs/design-reference/previous-ui/README.md
docs/design-reference/previous-ui/committed/app/employee/dashboard/page.tsx
docs/design-reference/previous-ui/committed/app/employee/learning/page.tsx
docs/design-reference/previous-ui/committed/app/globals.css
docs/design-reference/previous-ui/committed/app/hr/dashboard/page.tsx
docs/design-reference/previous-ui/committed/app/hr/employees/[id]/page.tsx
docs/design-reference/previous-ui/committed/app/page.tsx
docs/design-reference/previous-ui/committed/components/career/activity-card.tsx
docs/design-reference/previous-ui/committed/components/career/development-flow.tsx
docs/design-reference/previous-ui/committed/components/career/development-panel.tsx
docs/design-reference/previous-ui/committed/components/career/entry-card.tsx
docs/design-reference/previous-ui/committed/components/charts/donut.tsx
docs/design-reference/previous-ui/committed/components/shell/workspace-shell.tsx
docs/design-reference/previous-ui/committed/components/ui/badge.tsx
docs/design-reference/previous-ui/committed/components/ui/button.tsx
docs/design-reference/previous-ui/committed/components/ui/card.tsx
docs/design-reference/previous-ui/committed/tailwind.config.ts
docs/design-reference/previous-ui/manifest.json
docs/design-reference/previous-ui/working-copy/components/career/development-flow.tsx
docs/explainability-design.md
docs/getting-started.md
docs/implementation-status.md
docs/next-stage-plan.md
docs/product-memo.ru.md
docs/prototype-product-direction.md
docs/quarterly-review-requirements.md
docs/repo-context.md
docs/reviews/case-source-compliance-2026-09-23.md
docs/reviews/development-map-ux-2026-09-23.md
docs/reviews/hr-approval-implementation.md
docs/reviews/project-state-2026-09-23.md
docs/reviews/redesign-preview.md
docs/reviews/ux-review-2026-09-23.md
docs/reviews/workflow-redesign-2026-09-23.md
docs/user-flows.md
docs/ux.md
eslint.config.mjs
lib/ai/consultation.ts
lib/ai/context.ts
lib/ai/contracts.ts
lib/ai/copy.ts
lib/ai/presentation.ts
lib/ai/provider.ts
lib/ai/stream.ts
lib/ai/tools.ts
lib/career/eligibility.ts
lib/career/import.ts
lib/career/navigation.ts
lib/career/planning.ts
lib/career/review-copy.ts
lib/career/reviews.ts
lib/career/skills.ts
lib/career/types.ts
lib/client-id.ts
lib/i18n/index.ts
lib/i18n/messages.json
lib/i18n/server.ts
lib/server/access.ts
lib/server/assistant-store.ts
lib/server/database.ts
lib/server/http.ts
lib/server/identity.ts
lib/server/repository.ts
lib/server/session.ts
lib/utils.ts
next-env.d.ts
next.config.mjs
package-lock.json
package.json
postcss.config.mjs
tailwind.config.ts
tests/approval.test.ts
tests/assistant-http.mjs
tests/assistant-tools.test.ts
tests/assistant.test.ts
tests/case-compliance.test.ts
tests/chat-stream.test.ts
tests/client-id.test.ts
tests/completion.test.ts
tests/consultation.test.ts
tests/domain.test.ts
tests/http.mjs
tests/i18n.test.ts
tests/identity-http.mjs
tests/navigation.test.ts
tests/planning.test.ts
tests/reviews-http.mjs
tests/reviews.test.ts
tsconfig.json

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

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

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