Career Quest
Внутренняя платформа развития сотрудников: профили с навыками и skill gaps, каталог развивающих активностей и сессий, evidence с проверкой…
О проекте
Команда: 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.mdCareer Quest
Career Quest — MVP внутренней платформы развития сотрудников. Она помогает сотруднику связать карьерную цель и дефициты навыков с подходящей развивающей активностью, а руководителю и HR — сопровождать подтверждение результата.
Проект рассчитан на команды, которым нужно сделать развитие сотрудников наблюдаемым и практическим: от выбора активности до проверки evidence и обновления прогресса. Это не ATS, не сервис найма и не инструмент автоматических кадровых решений.
Что реализовано
- Ролевой контур для Employee, Manager, HR и Admin с локальной demo-аутентификацией.
- Профили сотрудников, целевые грейды, навыки, skill gaps и показатель readiness.
- Каталог развивающих активностей, сессии с расписанием, вместимостью и листом ожидания.
- Запись на сессию, отмена до дедлайна, продвижение из листа ожидания и экспорт события в формате
.icsдля активной записи. - Отправка evidence сотрудником и проверка результата руководителем, HR или администратором.
- Неизменяемые progress events и пересчёт прогресса после подтверждения результата.
- Telegram-напоминания: одноразовая ссылка подключения со строгим сроком действия, синхронизацией с актуальной сессией, подтверждением/отменой участия и напоминаниями.
- Отдельные интерфейсы: публичная landing-страница, вход, рабочее пространство и страница подключения Telegram.
Как это работает
- Сотрудник входит в demo-контур и открывает персональный маршрут: профиль, навыки и доступные активности.
- Он выбирает подходящую сессию. Сервер проверяет права, eligibility, дедлайны и наличие мест.
- После записи сотрудник отдельно и явно соглашается на Telegram-напоминания, выпускает одноразовую ссылку подключения и получает напоминания о сессии.
- После прохождения активности сотрудник добавляет evidence.
- Руководитель, 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.
Локальный запуск
-
Перейдите в каталог проекта:
cd career-quest -
Создайте локальную конфигурацию:
Copy-Item .env.example .env -
Для demo API укажите в
.env:CAREER_QUEST_DEV_AUTH=true TELEGRAM_TRANSPORT=polling -
Если Telegram пока не нужен, задайте
TELEGRAM_TRANSPORT=disabled. Для polling укажите настоящийTELEGRAM_BOT_TOKENиTELEGRAM_BOT_USERNAME; не добавляйте.envв Git. -
Запустите сервер:
node server.js -
Откройте
http://localhost:4173/. Доступны также:/sign-in— вход в demo-контур;/app/home— пространство сотрудника;/manager/team— пространство руководителя;/hr/overview— пространство HR;/admin/overview— пространство администратора;/telegram.html— подключение Telegram.
-
Для polling-напоминаний запустите второй процесс:
node CareerQuestRemindBot.js
Не запускайте polling-процесс одновременно с webhook-режимом сервера.
Как проверить решение
-
Запустите сервер в development-режиме из инструкции выше.
-
Откройте
/sign-inи выберите демо-сотрудника. -
Откройте доступную activity, выберите сессию и выполните запись.
-
В личных записях проверьте календарный файл или выпустите одноразовую ссылку Telegram.
-
Добавьте evidence к записи, затем переключитесь на роль Manager или HR и подтвердите либо верните evidence на доработку.
-
Убедитесь, что статус записи, skill и readiness изменились после подтверждения.
-
Запустите автоматические проверки:
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), однако подтверждённая публичная ссылка на развёрнутую версию в текущих файлах не указана.
Авторы коммитов
История коммитов
- 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 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.