AAYMA
RU
Войти

Career Quest

Корпоративная платформа развития сотрудника: профиль навыков, выбор целевой роли/грейда, расчёт разрывов и до 3 объяснимых рекомендаций обучения…

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

О проекте

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

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

Суть

Корпоративная платформа развития сотрудника: профиль навыков, выбор целевой роли/грейда, расчёт разрывов и до 3 объяснимых рекомендаций обучения, планы 30/90/180 дней, HR-аналитика и ИИ-помощник по базе знаний.

Как устроено

Профили, оценки навыков, требования ролей и каталог обучения загружаются в PostgreSQL; алгоритм сравнивает требования цели с расчётными навыками, отсекает неподходящие мероприятия и ранжирует остальные по закрытию разрывов, критичности, истории и длительности, возвращая 1–3 рекомендации. После прохождения навыки пересчитываются с сохранением связи с активностью. ИИ-помощник отвечает только по разрешённым фактам профиля и опубликованным статьям с проверкой источников; LLM — Qwen3-4B через vLLM на NVIDIA Brev (SSH-туннель) или OpenAI Responses API, есть резервный режим без LLM.

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

  • ранжирование по разрывам навыков
  • grounded-ответы со ссылками на источники
  • vLLM self-hosting
  • OpenAI embeddings semantic search
  • SQL-поиск
  • RBAC
  • OIDC
  • outbox worker

Особенности

Самостоятельный хостинг Qwen3-4B на vLLM (A10G) через приватный SSH-туннель с fallback на OpenAI и режимом без ИИ; строгая серверная проверка идентификаторов источников в ответах помощника; ролевая модель сотрудник/руководитель/HR/админ, CSRF/идемпотентность, PWA и RU/KK/EN.

Стек

TypeScript · React 19 · Vite · Tailwind CSS · Radix UI · Node.js · PostgreSQL 17 · Docker Compose · Nginx · Playwright · NVIDIA Brev

Модели

Qwen3-4B-Instruct-2507 · OpenAI Responses API · OpenAI Embeddings


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

README

README.md

Career Quest

AI-навигатор развития сотрудника — проект команды Smart IT Solution для HackAlem.ai, трек 03 — «Управление», кейс Halyk Bank.

Career Quest связывает карьерную цель, навыки и корпоративное обучение в один маршрут: сотрудник видит, чего ему не хватает для выбранной роли, получает объяснимые рекомендации и отслеживает результат. Путеводитель и помощник помогают находить рабочие инструкции и нужные контакты, а руководитель и HR видят развитие команды.

Роль в командеУчастник
КапитанБолат Қуаныш Болатұлы
УчастникЕлеуов Ернар

Быстрый старт: запуск в Docker → сценарий для жюри.

Какую проблему решаем

Разрозненные курсы и HR-уведомления не объясняют сотруднику, какой следующий шаг приблизит его к профессиональной цели. HR при этом сложно увидеть, какие навыки требуют внимания и как сотрудники проходят путь от рекомендации до завершения обучения.

Платформа предназначена для сотрудников, руководителей, HR и администраторов организации. Она объединяет профиль компетенций, каталог активностей, индивидуальные планы, рабочие инструкции и аналитику участия.

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

Frontend подключён к API и PostgreSQL. Ниже перечислены возможности текущего кода; условия работы внешних сервисов описаны в разделе интеграций.

РазделВозможности
Карьера и навыкиПрофиль, текущая роль и грейд, выбор карьерной цели, история целей, требуемые и расчётные уровни навыков, разрывы и прогресс.
РекомендацииДо трёх подходящих активностей с объяснением выбора и ожидаемым приростом навыков; учёт требований цели, истории, предварительных условий, длительности и доступности.
ОбучениеПоиск и фильтры каталога, карточки мероприятий, сессии и вместимость, запись и очередь, начало и завершение, отказ и перенос, история участия.
Планы развитияПланы на 30/90/180 дней, предпочтения и бюджет времени, сравнение целей, моделирование развития, подбор наставников и согласование.
Задания и достиженияЛичные задания, достижения, благодарности с модерацией, командные активности, баллы и награды по настроенной политике.
Путеводитель сотрудникаПоиск рабочих ситуаций, статьи и контекстные подсказки, контакты и маршруты эскалации, обратная связь. Для редакторов — версии, переводы, публикация и срок актуальности.
ИИ-помощникЛичные диалоги на русском, казахском и английском, история и удаление; ответы по доступным фактам профиля и опубликованным инструкциям со ссылками на источники.
HR-аналитикаРазрывы навыков, сотрудники без следующего шага, участие и воронка обучения, сравнение программ, история оценок, сигналы участия, моделирование команды; ROI при наличии подтверждённых финансовых данных.
АдминистрированиеУправление мероприятиями, базой знаний, программами развития и аккаунтами; импорт с предпросмотром и историей, аудит, расходы ИИ, настройки интеграций и семантического поиска.
Уведомления и интерфейсЛичные уведомления, напоминания, экспорт календаря .ics, адаптивная навигация, интерфейс RU/KK/EN, установка PWA и публичный офлайн-экран.

Вход и права доступа

Доступны демо-вход, обычный логин/пароль и подключаемый OIDC. Права проверяются сервером для каждого запроса.

РольОбласть доступа
СотрудникСобственный профиль, обучение, цели, планы и личные диалоги.
РуководительСобственный профиль и прямые подчинённые; обзор команды и её участия.
HRПрофили организации, аналитика, управление мероприятиями, базой знаний и программами развития.
АдминистраторДополнительно аккаунты, импорт, аудит, интеграции и настройки ИИ.

Сессии хранятся в HttpOnly cookie. Изменяющие запросы защищены проверкой Origin и CSRF; поддерживаемые операции используют ключи идемпотентности. Пароли хешируются через scrypt, секреты провайдеров остаются на сервере.

Как работает решение

  1. Входные данные: профиль сотрудника, оценённые навыки, требования к ролям и грейдам, каталог обучения и история участия загружаются в PostgreSQL.
  2. Цель: сотрудник выбирает должность и грейд. Система сравнивает требования цели с его актуальными расчётными навыками.
  3. Следующий шаг: алгоритм отбирает доступные мероприятия, исключает неподходящие и ранжирует оставшиеся по закрытию разрывов, критичности навыков, цели, истории и длительности. Возвращает 1–3 рекомендации, если подходящие варианты есть.
  4. Действие: сотрудник записывается на мероприятие и проходит его. Сервер проверяет условия участия, вместимость и переходы статусов.
  5. Результат: после завершения пересчитываются навыки и прогресс; история сохраняет связь изменения с конкретной активностью. HR видит фактическое участие и агрегаты в пределах своих прав.

Расчётные навыки воспроизводятся из исходной оценки и последующих завершений. Эффект мероприятия сохраняется на момент завершения, поэтому редактирование каталога не переписывает прошлые результаты. Процент прогресса показывает покрытие требований цели; решение о повышении остаётся за организацией.

Как устроен помощник

Backend получает разрешённые данные сотрудника и актуальные опубликованные статьи. При включённом ИИ модель формулирует связный ответ на их основе и указывает использованные источники и факты. Сервер проверяет идентификаторы и доступность источников, добавляет ссылки и отмечает демонстрационные материалы. Для уточняющих вопросов передаются последние 12 реплик диалога с ограничением длины и удалением персональных идентификаторов. Помощник не выполняет административные действия за пользователя.

  • Без ключей и GPU: работают поиск и ответы по проверенным данным платформы с явной отметкой о резервном режиме.
  • NVIDIA Brev: в репозитории зафиксирована и проверена конфигурация Qwen/Qwen3-4B-Instruct-2507 → vLLM 0.30.0 → NVIDIA A10G, доступная backend через приватный SSH-туннель.
  • OpenAI: реализован альтернативный провайдер через Responses API. Модель и ключ задаются серверной конфигурацией. Автоматического переключения с GPU на платный OpenAI при сбое нет.
  • Поиск по смыслу: OpenAI embeddings включаются отдельно, после индексации и проверки качества. По умолчанию используется поиск через SQL.

Для обращений к моделям предусмотрены таймауты, лимиты, учёт использования и резервный ответ. Стоимость аренды GPU учитывается в Brev отдельно от журнала токенов приложения.

Технологии

КомпонентСтек
FrontendReact 19.2, TypeScript 5.9, Vite 7, wouter.
ИнтерфейсTailwind CSS 4, Radix UI, class-variance-authority, tailwind-merge, Lucide.
BackendNode.js 24.19.0, TypeScript, встроенный node:http, Zod, csv-parse, jose.
База данныхPostgreSQL 17 в Docker Compose; pg, обычный SQL и SQL-миграции, без ORM.
ИИQwen3-4B-Instruct-2507, vLLM, NVIDIA Brev; альтернативно OpenAI Responses API; отдельно OpenAI Embeddings API.
ИнфраструктураDocker Compose, Nginx, фоновый worker, SSH-туннель для частного GPU endpoint.
ПроверкиNode.js Test Runner через tsx, Playwright, проверки типов и production-сборки.

Зависимости зафиксированы в Front/package-lock.json и Back/package-lock.json; версия Node — в .nvmrc и Dockerfile.

Архитектура проекта

flowchart LR
    User[Браузер: React SPA] -->|HTTP, один origin| Web[Nginx]
    Web -->|статика| UI[Сборка Front]
    Web -->|/api/v1| API[Node.js API]
    API -->|pg / SQL| DB[(PostgreSQL)]
    Worker[Фоновый worker] -->|задания / outbox| DB
    Worker -->|при настройке| External[Корпоративные сервисы]
    API -->|при настройке| OpenAI[OpenAI API]
    API -->|при настройке| Tunnel[Приватный SSH-туннель]
    Tunnel --> GPU[Brev: vLLM + Qwen]
  • Front отображает данные API, хранит состояние интерфейса и отправляет запросы с cookie и CSRF. В разработке /api проксирует Vite, в контейнерах — Nginx.
  • Back отвечает за авторизацию, карьерные расчёты, участие, рекомендации, путеводитель, аналитику и проверку ответов ИИ.
  • PostgreSQL хранит профили, требования к навыкам, мероприятия, участия, планы, статьи, диалоги, сессии, аудит и очередь внешних событий. Связи и ограничения заданы миграциями.
  • Worker обрабатывает напоминания и исходящие события; доставка в сторонние системы включается конфигурацией.
  • ИИ-провайдер подключается только к backend. Основной карьерный сценарий доступен и без него.
Front/                       React-приложение и браузерные тесты
Back/
  src/                       API, бизнес-логика, worker, провайдеры ИИ
  db/                        SQL-миграции
  data/                      Синтетический набор для демонстрации
  contracts/                 Документация API
  tests/                     Серверные тесты
infra/                       Nginx, Dockerfile фронтенда, запуск Brev
compose.yaml                 Локальный стек: db, back, worker, front
compose.brev.yaml            Дополнительный приватный туннель к GPU

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

1. Требования

Для демонстрации нужны Git, Docker Engine / Docker Desktop и Docker Compose v2, а также доступ к репозиторию. Системный Node.js и ключи ИИ для этого способа запуска не требуются. Порты 8080, 3001 и 5433 должны быть свободны.

2. Получить проект

git clone https://github.com/BAITC-Hacks/hack-e61371a2-smart-it-solution.git
cd hack-e61371a2-smart-it-solution

3. Собрать и запустить

docker compose up -d --build --wait
docker compose ps

При первом запуске backend автоматически применяет миграции и загружает демонстрационный набор. Данные сохраняются в volume PostgreSQL; повторный запуск не дублирует импорт.

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

http://localhost:8080

На странице входа выберите «Сотрудник», «Руководитель», «HR» или «Администратор». В демо-режиме пароль не требуется. Соответствующие логины: demo.employee, demo.manager, demo.hr, demo.admin.

Проверка готовности API через тот же Nginx, которым пользуется frontend:

curl --fail http://localhost:8080/api/v1/health/ready
# Ожидается: {"data":{"status":"ready"}}

Стандартный Compose запускает демо с DEMO_MODE=true, AI_ENABLED=false и выключенной внешней доставкой. Все опубликованные порты привязаны к localhost. В этой конфигурации можно проверить карьерный сценарий, данные, интерфейс и резервные ответы помощника.

5. Остановка и диагностика

docker compose logs --tail 50 back
docker compose stop
# Вернуть существующие контейнеры в работу:
docker compose up -d --wait

docker compose down удаляет контейнеры, сохраняя БД. Добавление -v удаляет и данные volume.

Запуск разработки и подключение ИИ

  • Для разработки вне контейнеров установите Node.js 24.19.0 (nvm install && nvm use). Пошаговые команды, .env.example и миграции: Back/README.md; запуск Vite на 5173: Front/README.md.
  • OpenAI включается серверной конфигурацией: ключом, выбранной моделью, лимитами и AI_ENABLED=true. Параметры — в Back/.env.example. Ключи не нужны frontend.
  • Для подготовленной NVIDIA Brev VM используйте инструкцию. После настройки локальных секретов и SSH запуск выполняется обёрткой, сохраняющей параметры основного .env и .env.brev:
python3 infra/brev/compose.py up -d --build --wait --wait-timeout 600

Эта команда требует Python 3 и уже настроенную VM; обычный демо-запуск из шага 3 не создаёт GPU-инстанс.

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

Основной сценарий для жюри

Пример рассчитан на свежую демо-БД. Уже завершённый курс нельзя использовать для повторного начисления навыка.

  1. Войдите как «Сотрудник» — это demo.employee, Marat Yessenov / E0001, Backend Engineer, Junior. Выберите RU в переключателе языка.
  2. Откройте «Карьера и навыки» → «Выбрать цель». Выберите Backend Engineer / Senior, нажмите «Подтвердить» и подтвердите диалог. Посмотрите требования и разрывы навыков.
  3. В «Рекомендации для цели» нажмите «Подобрать обучение» или «Обновить». Проверьте объяснения и ожидаемые изменения навыков у предложенных мероприятий.
  4. Через каталог «Обучение» откройте Advanced Python (/events/EV_012). Это самостоятельное мероприятие, доступное данному сотруднику; попадание именно этого курса в первые три рекомендации не требуется.
  5. Выполните «Записаться» → «Начать» → «Завершить», подтверждая действия. Откройте «История обучения» и снова «Карьера и навыки»: расчётный Python изменится с 3 до 4, разрыв по этому навыку до требований Senior уменьшится на 1. Для этого примера ждать даты сессии не нужно.
  6. В «Путеводитель» найдите инструкцию по ноутбуку и проверьте источники и контакты. В «Помощник» создайте диалог и спросите: «Какая у меня текущая роль и грейд?» или «Что указано в демонстрационной инструкции про ноутбук?». Ответ должен содержать доступные факты или ссылки; при выключенном ИИ интерфейс явно сообщает об этом.
  7. Выйдите и войдите как «HR». В «HR-аналитика» проверьте разрывы навыков и участие сотрудников. Затем войдите как «Руководитель» и сравните область доступных профилей.

Для дополнительной проверки администратор может открыть импорт, отправить JSON/CSV на предпросмотр и увидеть ошибки или различия до применения данных. В тестах имеются отдельные сценарии с подготовкой исходного состояния: Front/tests/README.md.

Автоматические проверки

В каждой папке установите зависимости через npm ci. Проверка типов и сборки из корня:

(cd Back && npm run typecheck && npm run build)
(cd Front && npm run typecheck && npm run build)

Backend: npm test из Back; для тестов с БД задайте TEST_DATABASE_URL к тестовой PostgreSQL с правом создавать схемы. Без него проверки БД пропускаются. Инструкции: Back/README.md.

Frontend: npx playwright install chromium, затем npm run test:e2e из Front. По умолчанию это проверки с моками API; сценарии с реальным backend требуют отдельной тестовой БД и параметров из инструкции тестов.

Зафиксированные результаты приёмки:

  • Интеграционная проверка от 23.09.2026: 21 браузерный тест с моками API, 16 с реальными frontend/backend/PostgreSQL, 2 проверки PWA/CSP; 35 серверных проверок AI/semantic/capability с замоканными провайдерами, 10 проверок обёртки Brev, сборки и типы. Внешние сервисы в этой приёмке не вызывались.
  • Отдельная приёмка NVIDIA Brev: backend-тесты, живые RU/KK-запросы к Qwen на GPU, проверка источников, авторизации модели, повторов запросов и приватного туннеля. Это проверка конкретной конфигурации, а не нагрузочный benchmark.

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

Демонстрационный набор

ИсточникСодержимое
Back/data/employees.json200 синтетических сотрудников.
Back/data/skills.json60 навыков и 32 профиля требований: 8 профессий × 4 грейда.
Back/data/events.json40 мероприятий, условия участия и эффекты обучения.
Back/data/activity_history.csv2 743 записи участия за 01.10.2024–30.09.2026.
Демонстрационная база знаний15 статей: 5 рабочих ситуаций × русский, казахский и английский.

Дата среза — 01.10.2026. Карьерные расчёты и доступность сессий используют этот срез, а сроки авторизации и лимиты ИИ — реальные часы. Уровни навыков имеют шкалу 0–5. Схемы и связи описаны в Back/data/README.ru.md.

Набор синтетический и предоставлен для хакатона. По условиям кейса его нельзя выносить за пределы хакатона; реальные персональные данные не используются. Исходные материалы docs/ остаются локальными.

Внешние подключения

ИнтеграцияЧто есть в проекте и что требуется
OpenAI / NVIDIA BrevСерверные провайдеры ИИ. Требуются ключи или подготовленная GPU VM; Brev-конфигурация проверена отдельно.
LMS / HRISИмпорт нормализованных пакетов, сопоставление внешних ID, проверка и история. Конкретная корпоративная система по умолчанию не подключена.
Корпоративный входOIDC-адаптер; требуется настройка identity provider организации.
Webhooks и мессенджерПодписанные HMAC события, outbox, повторы доставки и протокол relay. Нужны внешние endpoints и секреты.
IT / HR-обращенияАдаптер создания обращений и маршруты из путеводителя. Без настроенного провайдера внешняя заявка не создаётся.
КалендарьЭкспорт .ics для собственных активностей. События на весь день: в исходных данных нет времени и часового пояса.

Контракты: API, путеводитель и помощник, интеграции.

Ограничения текущей версии

  • Демонстрация использует синтетические данные. Реальные регламенты, контакты и подключения организации нужно загрузить и настроить отдельно.
  • Навыки и ожидаемый эффект обучения рассчитываются по заданной модели. Они не заменяют оценку компетенций; моделирование не гарантирует повышение, а сигналы участия не являются прогнозом увольнения.
  • Если подходящих активностей нет, рекомендации возвращают объяснимое пустое состояние. Завершение обязательного мероприятия без эффекта на навыки не увеличивает карьерный прогресс.
  • Качество ответа помощника ограничено разрешёнными источниками. При отключении, ошибке или превышении лимитов ИИ используется обозначенный резервный ответ. Семантический поиск требует отдельной подготовки и проверки качества.
  • Внешние OIDC, LMS/HRIS, мессенджеры и системы заявок не настроены в стандартном демо. Финансовый ROI доступен только при наличии подтверждённых исходных данных.
  • Интерфейс поддерживает RU/KK/EN, но перевод корпоративной статьи или мероприятия должен быть опубликован в API; иначе показывается оригинал.
  • PWA предоставляет установку и публичный офлайн-экран. Личный кабинет и API требуют сети; персональные данные не кешируются для офлайн-работы.
  • Для публичной эксплуатации нужны отдельная конфигурация HTTPS, рабочие аккаунты, DEMO_MODE=false, COOKIE_SECURE=true и серверные секреты. Локальный Compose — конфигурация демонстрации.

Развёрнутая версия

Публичная ссылка: https://82.115.42.241.

На странице входа выберите «Попробовать демо» и одну из четырёх ролей: сотрудник, руководитель, HR или администратор. Пароль не требуется; демонстрационные данные общие для посетителей.

Frontend, backend, PostgreSQL и фоновый worker развёрнуты на сервере в Docker. Приложение доступно по HTTPS, а ИИ-помощник подключён к Qwen на NVIDIA Brev через приватный SSH-туннель. После локального запуска приложение также доступно на http://localhost:8080.

Документация и совместная разработка

Плановые возможности из технического задания не считаются автоматически реализованными. Состав текущей версии описан выше и подтверждается кодом, API-контрактами и отчётами проверки.

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

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

Kuanysh 23Kuanysh 20yeraaa 6

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

  • 2026-09-23 17:56feat(guide): add actionable demo instructions and support contactsKuanysh
  • 2026-09-23 17:55feat(ai): connect recommendations courses history and personal plansKuanysh
  • 2026-09-23 17:50feat(ai): add grounded natural answers and conversation contextKuanysh
  • 2026-09-23 17:41Merge pull request #18 from BAITC-Hacks/codex/readme-deployed-urlKuanysh
  • 2026-09-23 17:40docs: add deployed Career Quest URL and demo accessKuanysh
  • 2026-09-23 17:30Merge pull request #17 from BAITC-Hacks/codex/jury-readmeKuanysh
  • 2026-09-23 17:29docs: describe Career Quest for hackathon juryKuanysh
  • 2026-09-23 17:17Merge pull request #16 from BAITC-Hacks/codex/connect-full-stackKuanysh
Все коммиты (49)
  • 2026-09-23 17:14docs: record final integration verification against latest mainyeraaa
  • 2026-09-23 17:12Merge remote-tracking branch 'origin/main' into codex/connect-full-stackyeraaa
  • 2026-09-23 17:11feat(integration): connect frontend with assistant backend and verify full stackyeraaa
  • 2026-09-23 17:08Merge pull request #15 from BAITC-Hacks/codex/nvidia-live-validationKuanysh
  • 2026-09-23 17:07fix(ai): constrain GPU source selection and verify live Brev assistantKuanysh
  • 2026-09-23 16:56Merge remote-tracking branch 'origin/codex/nvidia-assistant' into codex/connect-full-stackyeraaa
  • 2026-09-23 16:55Merge pull request #14 from BAITC-Hacks/codex/nvidia-assistantKuanysh
  • 2026-09-23 16:53feat(ai): connect self-hosted NVIDIA Brev assistant with private tunnelKuanysh
  • 2026-09-23 16:50Merge pull request #13 from BAITC-Hacks/codex/front-completeKuanysh
  • 2026-09-23 16:49feat(front): complete career, learning, HR and platform integrationyeraaa
  • 2026-09-23 16:31Merge pull request #12 from BAITC-Hacks/codex/backend-finalKuanysh
  • 2026-09-23 16:27style(back): format semantic search implementation and testsKuanysh
  • 2026-09-23 16:27Merge remote-tracking branch 'origin/main' into codex/backend-finalKuanysh
  • 2026-09-23 16:26feat(back): add evaluated semantic search and complete backend acceptanceKuanysh
  • 2026-09-23 16:24Merge pull request #11 from BAITC-Hacks/codex/backend-platformKuanysh
  • 2026-09-23 16:22fix(back): protect concurrent sign-in and isolate failed login limitsKuanysh
  • 2026-09-23 16:21feat(back): localize recommendation facts and add verified demo recoveryKuanysh
  • 2026-09-23 16:20Merge pull request #10 from BAITC-Hacks/codex/backend-platformKuanysh
  • 2026-09-23 16:19Merge pull request #9 from BAITC-Hacks/codex/front-stage-1-2Kuanysh
  • 2026-09-23 16:11feat(back): wire complete API, HR, administration and durable integrationsKuanysh
  • 2026-09-23 16:00feat(back): implement career, growth, guide and AI domainsKuanysh
  • 2026-09-23 15:59feat(front): complete stage 1-2 workspace and admin importsyeraaa
  • 2026-09-23 15:43Merge pull request #8 from BAITC-Hacks/codex/foundation-auth-dataKuanysh
  • 2026-09-23 15:43Merge branch 'main' into codex/foundation-auth-dataKuanysh
  • 2026-09-23 15:41Merge pull request #7 from BAITC-Hacks/codex/back-completeKuanysh
  • 2026-09-23 15:39feat(back): add shared domain infrastructure and integration schemaKuanysh
  • 2026-09-23 15:32Merge pull request #6 from BAITC-Hacks/codex/team-handoffKuanysh
  • 2026-09-23 15:30docs: finalize API contract and verified parallel development handoffKuanysh
  • 2026-09-23 15:30docs: start teammate work from merged main foundationKuanysh
  • 2026-09-23 15:29docs: finalize API contract and verified parallel development handoffKuanysh
  • 2026-09-23 15:28Merge pull request #5 from BAITC-Hacks/codex/foundation-auth-dataKuanysh
  • 2026-09-23 15:26feat(infra): add reproducible demo, access tests and team setupKuanysh
  • 2026-09-23 15:24Merge pull request #4 from BAITC-Hacks/codex/foundation-auth-dataKuanysh
  • 2026-09-23 15:19feat(front): publish integration starter and parallel team handoffKuanysh
  • 2026-09-23 15:02Merge pull request #3 from BAITC-Hacks/codex/foundation-auth-dataKuanysh
  • 2026-09-23 15:00feat(back): add SQL schema, validated imports and role-based sessionsKuanysh
  • 2026-09-23 14:47Merge pull request #2 from BAITC-Hacks/codex/front-back-structureKuanysh
  • 2026-09-23 14:32docs: split Front and Back and document NVIDIA Brev setupKuanysh
  • 2026-09-23 14:16Merge pull request #1 from BAITC-Hacks/codex/career-quest-tech-specKuanysh
  • 2026-09-23 14:15Add detailed Career Quest technical specificationKuanysh
  • 2026-09-23 13:34Present Smart IT Solution and Career QuestKuanysh
Структура репозитория (202 файлов)
.dockerignore
.github/workflows/ci.yml
.gitignore
.nvmrc
Back/.dockerignore
Back/.env.example
Back/BACKEND_PROGRESS.md
Back/BREV_ACCEPTANCE.md
Back/Dockerfile
Back/NVIDIA_BREV_SETUP.md
Back/OPERATIONS.md
Back/README.md
Back/VERIFICATION.md
Back/contracts/API.md
Back/contracts/CAREER.md
Back/contracts/GROWTH.md
Back/contracts/GUIDE_AI.md
Back/contracts/PLATFORM_ADMIN_HR.md
Back/contracts/PLATFORM_INTEGRATIONS.md
Back/contracts/README.md
Back/contracts/SEMANTIC.md
Back/contracts/openapi.yaml
Back/data/README.ru.md
Back/data/activity_history.csv
Back/data/employees.json
Back/data/events.json
Back/data/skills.json
Back/db/migrations/001_foundation.sql
Back/db/migrations/002_shared.sql
Back/db/migrations/003_career.sql
Back/db/migrations/004_guide_ai.sql
Back/db/migrations/005_growth.sql
Back/db/migrations/006_platform.sql
Back/db/migrations/007_messenger.sql
Back/db/migrations/008_semantic.sql
Back/package-lock.json
Back/package.json
Back/src/administration.ts
Back/src/ai-config.ts
Back/src/ai-provider.ts
Back/src/ai.ts
Back/src/analytics.ts
Back/src/assistant-context.ts
Back/src/auth.ts
Back/src/career-copy.ts
Back/src/career-domain.ts
Back/src/career.ts
Back/src/cli.ts
Back/src/config.ts
Back/src/db.ts
Back/src/growth.ts
Back/src/guide.ts
Back/src/http.ts
Back/src/imports.ts
Back/src/index.ts
Back/src/integrations.ts
Back/src/notification-copy.ts
Back/src/semantic-config.ts
Back/src/semantic.ts
Back/src/server.ts
Back/src/sso.ts
Back/src/worker.ts
Back/tests/ai-status.test.ts
Back/tests/ai.test.ts
Back/tests/assistant-context.test.ts
Back/tests/auth.test.ts
Back/tests/backend-http.test.ts
Back/tests/career-domain.test.ts
Back/tests/career.test.ts
Back/tests/growth.test.ts
Back/tests/guide.test.ts
Back/tests/integration.test.ts
Back/tests/login-races.test.ts
Back/tests/platform.test.ts
Back/tests/semantic.test.ts
Back/tsconfig.json
DEVELOPMENT_PLAN.md
Front/.env.example
Front/.gitignore
Front/INTEGRATION.md
Front/README.md
Front/index.html
Front/package-lock.json
Front/package.json
Front/playwright.config.ts
Front/public/app-icon-192.png
Front/public/app-icon-512.png
Front/public/app-icon.svg
Front/public/favicon.svg
Front/public/manifest.webmanifest
Front/public/offline.html
Front/public/offline.js
Front/public/sw.js
Front/scripts/render-icons.mjs
Front/src/App.tsx
Front/src/api-errors.ts
Front/src/api.ts
Front/src/app.copy.ts
Front/src/components/InstallApp.tsx
Front/src/components/PageBoundary.tsx
Front/src/components/Shell.tsx
Front/src/components/SsoButton.tsx
Front/src/components/ui.tsx
Front/src/features/administration/AccountsPanel.tsx
Front/src/features/administration/AuditPanel.tsx
Front/src/features/administration/IntegrationsPanel.tsx
Front/src/features/administration/SemanticPanel.tsx
Front/src/features/administration/SettingsPage.tsx
Front/src/features/administration/integrations.copy.ts
Front/src/features/administration/integrations.css
Front/src/features/administration/semantic.css
Front/src/features/administration/settings.copy.ts
Front/src/features/administration/settings.css
Front/src/features/career/DevelopmentPage.tsx
Front/src/features/career/EventPage.tsx
Front/src/features/career/EventsAdminPage.tsx
Front/src/features/career/EventsPage.tsx
Front/src/features/career/HistoryPage.tsx
Front/src/features/career/ParticipationControls.tsx
Front/src/features/career/career.css
Front/src/features/career/copy.ts
Front/src/features/career/index.ts
Front/src/features/career/shared.tsx
Front/src/features/career/types.ts
Front/src/features/growth/GrowthAdminPage.tsx
Front/src/features/growth/GrowthPage.tsx
Front/src/features/growth/Plans.tsx
Front/src/features/growth/Rewards.tsx
Front/src/features/growth/Social.tsx
Front/src/features/growth/copy.ts
Front/src/features/growth/growth.css
Front/src/features/growth/index.ts
Front/src/features/growth/shared.tsx
Front/src/features/growth/types.ts
Front/src/features/guide/ArticleEditor.tsx
Front/src/features/guide/AssistantPage.tsx
Front/src/features/guide/DirectoryEditors.tsx
Front/src/features/guide/GuideAdminPage.tsx
Front/src/features/guide/GuideArticlePage.tsx
Front/src/features/guide/GuidePage.tsx
Front/src/features/guide/SemanticSearch.tsx
Front/src/features/guide/TicketsPanel.tsx
Front/src/features/guide/copy.ts
Front/src/features/guide/guide.css
Front/src/features/guide/helpers.tsx
Front/src/features/guide/semantic.copy.ts
Front/src/features/guide/semantic.ts
Front/src/features/guide/types.ts
Front/src/features/platform/HrPage.tsx
Front/src/features/platform/NotificationsPage.tsx
Front/src/features/platform/Sessions.tsx
Front/src/features/platform/common.tsx
Front/src/features/platform/hr.copy.ts
Front/src/features/platform/personal.copy.ts
Front/src/features/platform/platform.css
Front/src/i18n.tsx
Front/src/main.tsx
Front/src/navigation.copy.ts
Front/src/pages/AccessPage.tsx
Front/src/pages/ImportsPage.tsx
Front/src/pages/LoginPage.tsx
Front/src/pages/PeoplePage.tsx
Front/src/pages/ProfilePage.tsx
Front/src/pages/WorkspacePage.tsx
Front/src/pages/access.css
Front/src/pages/imports.copy.ts
Front/src/pages/imports.css
Front/src/pages/people.copy.ts
Front/src/pages/people.css
Front/src/styles.css
Front/tests/README.md
Front/tests/assistant.integration.contract.spec.ts
Front/tests/career.full.api.spec.ts
Front/tests/career.integration.contract.spec.ts
Front/tests/contract-fixture.ts
Front/tests/frontend.api.spec.ts
Front/tests/frontend.contract.spec.ts
Front/tests/growth.full.api.spec.ts
Front/tests/guide.full.api.spec.ts
Front/tests/guide.semantic.spec.ts
Front/tests/navigation.contract.spec.ts
Front/tests/platform.full.api.spec.ts
Front/tests/pwa.spec.ts
Front/tsconfig.json
Front/vite.config.ts
INTEGRATION_VERIFICATION.md
README.md
TEAM_WORK.md
TECH_SPEC.md
compose.brev.yaml
compose.yaml
infra/backup-demo.sh
infra/brev/compose.py
infra/brev/connect.py
infra/brev/serve.sh
infra/brev/smoke.mjs
infra/brev/ssh-tunnel.Dockerfile
infra/brev/test_compose.py
infra/frontend.Dockerfile
infra/nginx.conf
infra/reset-demo.sh
infra/restore-demo.sh
Ветки (15)

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

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

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