AAYMA
RU
Войти

Career Quest

Внутренняя платформа развития сотрудников: профили с навыками и skill gaps, каталог развивающих активностей и сессий, evidence с проверкой…

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

О проекте

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

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

Суть

Внутренняя платформа развития сотрудников: профили с навыками и skill gaps, каталог развивающих активностей и сессий, evidence с проверкой руководителем или HR, пересчёт readiness, Telegram-напоминания.

Как устроено

Node.js-сервер на встроенных модулях без npm-зависимостей. Данные о сотрудниках, активностях, записях, evidence и progress events хранятся в JSON (career-store.js). Для ролей Employee, Manager, HR и Admin сделан dev-RBAC. После подтверждения evidence создаётся неизменяемый progress event и пересчитываются навык и readiness. Есть Telegram-бот (polling или webhook) с одноразовыми ссылками подключения и экспорт .ics.

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

  • RBAC
  • event-sourced progress events
  • Telegram Bot API
  • iCalendar .ics
  • лист ожидания

Особенности

AI в проекте прямо заявлен как отсутствующий: рекомендации сделаны на локальных правилах. Цикл развития доведён до конца: запись на сессию, evidence, проверка руководителем, обновление навыка. Проект без npm-зависимостей.

Стек

JavaScript · Node.js · HTML/CSS · JSON storage · Telegram Bot API


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

README

README.md

Career Quest

Career Quest — MVP внутренней платформы развития сотрудников. Она помогает сотруднику связать карьерную цель и дефициты навыков с подходящей развивающей активностью, а руководителю и HR — сопровождать подтверждение результата.

Проект рассчитан на команды, которым нужно сделать развитие сотрудников наблюдаемым и практическим: от выбора активности до проверки evidence и обновления прогресса. Это не ATS, не сервис найма и не инструмент автоматических кадровых решений.

Что реализовано

  • Ролевой контур для Employee, Manager, HR и Admin с локальной demo-аутентификацией.
  • Профили сотрудников, целевые грейды, навыки, skill gaps и показатель readiness.
  • Каталог развивающих активностей, сессии с расписанием, вместимостью и листом ожидания.
  • Запись на сессию, отмена до дедлайна, продвижение из листа ожидания и экспорт события в формате .ics для активной записи.
  • Отправка evidence сотрудником и проверка результата руководителем, HR или администратором.
  • Неизменяемые progress events и пересчёт прогресса после подтверждения результата.
  • Telegram-напоминания: одноразовая ссылка подключения со строгим сроком действия, синхронизацией с актуальной сессией, подтверждением/отменой участия и напоминаниями.
  • Отдельные интерфейсы: публичная landing-страница, вход, рабочее пространство и страница подключения Telegram.

Как это работает

  1. Сотрудник входит в demo-контур и открывает персональный маршрут: профиль, навыки и доступные активности.
  2. Он выбирает подходящую сессию. Сервер проверяет права, eligibility, дедлайны и наличие мест.
  3. После записи сотрудник отдельно и явно соглашается на Telegram-напоминания, выпускает одноразовую ссылку подключения и получает напоминания о сессии.
  4. После прохождения активности сотрудник добавляет evidence.
  5. Руководитель, HR или администратор проверяет evidence. При подтверждении сервис сохраняет progress event и обновляет связанный навык и readiness в рамках MVP-логики.

Технологии

  • JavaScript и Node.js.
  • Встроенные модули Node.js: http, fs, path, crypto — без npm-зависимостей.
  • Статический HTML/CSS/JavaScript-интерфейс в dist/.
  • JSON-файлы как локальное persisted-хранилище MVP.
  • Telegram Bot API через HTTPS; поддерживаются режимы polling и webhook.
  • Формат iCalendar (.ics) для добавления записей в календарь.

В репозитории нет подключённых AI-моделей или внешнего recommendation API: рекомендации и данные MVP реализованы локально и объяснимо.

Архитектура

Browser UI (dist/)
       │ HTTP + JSON
       ▼
Node.js server (server.js)
       ├── Career store (lib/career-store.js) ── data/career-store.json
       ├── Telegram links (lib/telegram-links.js) ── data/reminder-store.json
       └── Telegram reminder bot (lib/telegram-reminder-bot.js)
                         │ HTTPS
                         ▼
                   Telegram Bot API
  • server.js раздаёт интерфейс, API и календарные файлы, применяет development RBAC и связывает домен Career Quest с напоминаниями.
  • lib/career-store.js хранит сотрудников, активности, сессии, записи, evidence и progress events.
  • lib/telegram-links.js выпускает и валидирует одноразовые ссылки подключения.
  • lib/telegram-reminder-bot.js обрабатывает команды и callback-кнопки Telegram.
  • CareerQuestRemindBot.js — отдельный процесс для локального polling-режима.

Установка и запуск

Требования

  • Node.js с поддержкой встроенного node:test.
  • Для Telegram-уведомлений — токен, созданный через BotFather.

Локальный запуск

  1. Перейдите в каталог проекта:

    cd career-quest
    
  2. Создайте локальную конфигурацию:

    Copy-Item .env.example .env
    
  3. Для demo API укажите в .env:

    CAREER_QUEST_DEV_AUTH=true
    TELEGRAM_TRANSPORT=polling
    
  4. Если Telegram пока не нужен, задайте TELEGRAM_TRANSPORT=disabled. Для polling укажите настоящий TELEGRAM_BOT_TOKEN и TELEGRAM_BOT_USERNAME; не добавляйте .env в Git.

  5. Запустите сервер:

    node server.js
    
  6. Откройте http://localhost:4173/. Доступны также:

    • /sign-in — вход в demo-контур;
    • /app/home — пространство сотрудника;
    • /manager/team — пространство руководителя;
    • /hr/overview — пространство HR;
    • /admin/overview — пространство администратора;
    • /telegram.html — подключение Telegram.
  7. Для polling-напоминаний запустите второй процесс:

    node CareerQuestRemindBot.js
    

Не запускайте polling-процесс одновременно с webhook-режимом сервера.

Как проверить решение

  1. Запустите сервер в development-режиме из инструкции выше.

  2. Откройте /sign-in и выберите демо-сотрудника.

  3. Откройте доступную activity, выберите сессию и выполните запись.

  4. В личных записях проверьте календарный файл или выпустите одноразовую ссылку Telegram.

  5. Добавьте evidence к записи, затем переключитесь на роль Manager или HR и подтвердите либо верните evidence на доработку.

  6. Убедитесь, что статус записи, skill и readiness изменились после подтверждения.

  7. Запустите автоматические проверки:

    node --test test\*.test.js
    

Данные и интеграции

  • В демо используются синтетические сотрудники, роли, навыки, активности и сессии, которые создаются в локальном JSON-хранилище.
  • Telegram Bot API используется только при настройке токена и выбранном transport.
  • Для календаря сервис создаёт файл .ics; внешние календарные API не требуются.
  • В production предполагаются корпоративный SSO и постоянная база данных, но они не реализованы в этом MVP.

Ограничения

  • Аутентификация — development-механизм через заголовок x-career-quest-actor, а не корпоративный SSO.
  • JSON-хранилище подходит только для локального MVP; конкурентный production-доступ и миграции БД не реализованы.
  • Рекомендации, пересчёт readiness и данные являются MVP-логикой, а не полноценной корпоративной моделью компетенций.
  • Telegram требует ручной настройки токенов; для production webhook нужны дополнительные секреты и инфраструктура.
  • Нет ATS, вакансий, откликов, публичных рейтингов, платежей и автоматических кадровых решений.

Deployed-версия

В репозитории есть конфигурация статического хостинга (.openai/hosting.json), однако подтверждённая публичная ссылка на развёрнутую версию в текущих файлах не указана.

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

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

arist0 14Codex 1

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

  • 2026-09-23 17:58Prevent horizontal overflow on public pagesarist0
  • 2026-09-23 17:38Synchronize Telegram reminder linksarist0
  • 2026-09-23 17:36Document complete Career Quest design and Figma handoffarist0
  • 2026-09-23 17:34Require opt-in for Telegram remindersarist0
  • 2026-09-23 17:28Add UI design coveragearist0
  • 2026-09-23 17:25Document platform and refine career workflowarist0
  • 2026-09-23 17:15Add session enrollment and review workflowarist0
  • 2026-09-23 17:05Add secure Telegram connection linksarist0
Все коммиты (15)
  • 2026-09-23 16:55Polish product UI and Telegram reminder flowarist0
  • 2026-09-23 16:23Add role-based career management and bot processarist0
  • 2026-09-23 16:09Merge remote-tracking branch 'origin/main'arist0
  • 2026-09-23 16:09Add career activities APIarist0
  • 2026-09-23 16:04Add reminder bot integration and deployment docsarist0
  • 2026-09-23 14:59Build Career Quest hackathon MVParist0
  • 2026-09-23 14:30Build Career Quest MVPCodex
Структура репозитория (25 файлов)
.env.example
.gitignore
.openai/hosting.json
CareerQuestRemindBot.README.md
CareerQuestRemindBot.js
README.md
REMINDERS.md
docs/API_V1.md
docs/AUDIT_2026-09-23.md
docs/DESIGN_HANDOFF.md
docs/DEVELOPMENT.md
docs/MASTER_PRODUCT_PROMPT.md
docs/PRODUCT_SCOPE.md
docs/figma-design-state.json
index.html
lib/career-store.js
lib/telegram-links.js
lib/telegram-reminder-bot.js
sample-profile.json
server.js
test/career-store.test.js
test/design-ui.test.js
test/session-api.test.js
test/telegram-links.test.js
test/telegram-reminder-bot.test.js

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

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

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