AI Sana Challenge Hub
MVP платформы Challenge Hub: бизнес превращает черновик в карточку задачи с рейтингом готовности 0–100, публикует её в каталог, студенческие команды…
О проекте
Команда: DSA
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Рабочий MVP
Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд
Суть
MVP платформы Challenge Hub: бизнес превращает черновик в карточку задачи с рейтингом готовности 0–100, публикует её в каталог, студенческие команды откликаются, бизнес выбирает вручную.
Как устроено
Сервер на Python в одном файле (server.py) с SQLite и статический фронтенд на ванильном JS. Локальный «AI-режим» по черновику и направлению определяет недостающие поля и формирует уточняющие вопросы, не добавляя фактов. Рейтинг готовности считается по весам 9 критериев (контекст, данные, результат, критерии успеха и т.д.) только по подтверждённым полям. От рейтинга зависит позиция в каталоге, публикацию он не блокирует. Отклики команд содержат идею, план, срок и ссылку, решение принимает бизнес.
Ключевые решения
- weighted readiness scoring
- rule-based clarifying questions
- SQLite
- unittest
Особенности
Запуск без зависимостей одной командой python3 server.py. Есть фикстуры демо-данных с карточками разного рейтинга (100/85/65/30/10), в репозитории лежит презентация защиты.
Стек
Python · SQLite · JavaScript · HTML/CSS
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-a39db617-dsa.
README
README.mdAI Sana Challenge Hub
От бизнес-задачи к первому решению
AI Sana Challenge Hub — MVP платформы, которая помогает бизнесу превратить короткое описание проблемы в понятную задачу для студенческих команд.
Главная механика проекта — рейтинг готовности бизнес-задачи.
Чем полнее и полезнее бизнес описывает задачу, тем выше её рейтинг и позиция в каталоге.
Основной сценарий
Бизнес
↓
Короткий черновик задачи
↓
AI-уточнение
↓
Редактируемая карточка
↓
Рейтинг готовности 0–100
↓
Подтверждение бизнеса
↓
Публикация в каталоге
↓
Отклик студенческой команды
↓
Ручное решение бизнеса
Система не назначает команды автоматически.
Студенты самостоятельно выбирают задачи, а бизнес самостоятельно принимает решение по полученным предложениям.
Быстрый запуск
Требуется Python 3.
Клонировать репозиторий:
git clone https://github.com/BAITC-Hacks/hack-a39db617-dsa.git
cd hack-a39db617-dsa
Запустить приложение:
python3 server.py
Открыть:
http://127.0.0.1:8765
Дополнительные зависимости для базового запуска не требуются.
Что реализовано
Для бизнеса
Бизнес может:
- создать черновик задачи;
- выбрать направление;
- получить уточняющие вопросы;
- дополнить информацию;
- отредактировать сформированную карточку;
- увидеть предварительный рейтинг;
- подтвердить сведения;
- опубликовать даже слабую задачу;
- просматривать свои задачи;
- получать отклики команд;
- вручную выбрать или отклонить предложение.
Для студентов
Студент может:
- просматривать общий каталог;
- искать задачи;
- фильтровать их по направлению и уровню готовности;
- открыть полную карточку;
- выбрать свою команду при отправке отклика;
- отправить идею, план, срок и ссылку;
- просматривать свои отклики;
- видеть решение бизнеса.
Рейтинг готовности
Рейтинг оценивает полноту подтверждённого описания задачи, а не качество компании или команды.
Максимум — 100 баллов.
| Критерий | Баллы |
|---|---|
| Контекст | 10 |
| Потребность бизнеса | 10 |
| Данные и материалы | 20 |
| Ожидаемый результат | 15 |
| Критерии успеха | 15 |
| Ограничения | 10 |
| Пользователи | 10 |
| Контакт | 5 |
| Формат взаимодействия | 5 |
| Итого | 100 |
Уровни
| Баллы | Уровень |
|---|---|
| 0–39 | Черновик |
| 40–69 | Рабочая |
| 70–89 | Готовая |
| 90–100 | Приоритетная |
Заполненные сведения учитываются в итоговом рейтинге только после подтверждения бизнесом.
Если карточка изменяется, сведения необходимо подтвердить повторно.
Влияние рейтинга на каталог
Рейтинг используется как основная геймификационная механика.
Более полная задача
↓
Более высокий рейтинг
↓
Более высокая позиция в каталоге
Низкий рейтинг не блокирует публикацию.
Даже задача уровня «Черновик» может быть опубликована и оставаться доступной студенческим командам.
При одинаковом рейтинге новые задачи могут отображаться выше.
AI-функция
В MVP реализован локальный AI-режим.
Он используется для уточнения исходного описания задачи.
Система:
- получает черновик, направление и уже известные сведения;
- определяет недостающие поля;
- формирует релевантные уточняющие вопросы;
- возвращает структурированный результат;
- не добавляет неизвестные факты самостоятельно.
Пользователь может:
- изменить ответы;
- оставить неизвестные сведения пустыми;
- отредактировать итоговую карточку;
- самостоятельно подтвердить сведения перед публикацией.
Ограничение AI
AI не может:
- придумывать отсутствующие факты;
- назначать студенческую команду;
- скрывать задачи от студентов;
- принимать решение вместо бизнеса.
Контракт AI описан отдельно:
docs/AI-CONTRACT.md
Внешнюю LLM можно подключить через тот же серверный контракт без изменения основного пользовательского сценария.
Карточка задачи
Карточка содержит:
- название;
- контекст;
- потребность бизнеса;
- пользователей;
- данные и материалы;
- ограничения;
- ожидаемый результат;
- критерии успеха;
- контакт;
- формат взаимодействия.
Все поля можно отредактировать перед подтверждением.
Отклик команды
Для отправки предложения студент указывает:
- команду;
- идею решения;
- план работы;
- срок;
- ссылку на прототип или результат.
После отправки предложение получает статус:
На рассмотрении
Бизнес затем вручную может выбрать:
Выбрана
или:
Отклонена
Автоматического назначения исполнителя нет.
Сквозная проверка
Для быстрой проверки проекта:
1. Бизнес
Выбрать роль:
Бизнес
Нажать:
Создать задачу
Можно использовать кнопку:
Подставить демо-пример
После отправки черновика система предложит уточняющие вопросы.
2. Карточка и рейтинг
Ответить на вопросы или оставить часть сведений пустыми.
Перейти к карточке.
Справа отображается предварительный рейтинг.
Заполнение недостающих сведений увеличивает рейтинг.
Перед публикацией необходимо подтвердить карточку.
3. Публикация
Нажать:
Подтвердить и опубликовать
После этого задача появляется в каталоге.
4. Студент
Переключить роль:
Студент
Открыть опубликованную задачу.
Выбрать команду и заполнить отклик.
Пример:
Идея
Сравним простой прогноз со средним за неделю и покажем рекомендуемый объём закупок по категориям.
План
Неделя 1: проверка CSV.
Неделя 2: базовый прогноз и оценка ошибки.
Неделя 3: панель и демонстрация.
Срок
3 недели
Ссылка
https://example.com/nomad-prototype
После отправки предложение появляется в разделе:
Мои отклики
5. Решение бизнеса
Вернуться к роли:
Бизнес
Открыть задачу и просмотреть отклики.
Бизнес самостоятельно выбирает:
Выбрать команду
или:
Отклонить
На этом основной сквозной сценарий MVP завершён.
Подробная инструкция:
docs/DEMO.md
Демонстрационные данные
В проекте используются синтетические данные.
Исходное состояние содержит:
- демонстрационные задачи разной степени готовности;
- профили студенческих команд;
- примеры предложений.
Это позволяет проверить каталог, рейтинг и отклики сразу после запуска.
Архитектура
hack-a39db617-dsa/
│
├── server.py
│
├── README.md
│
├── static/
│ ├── index.html
│ ├── app.js
│ └── style.css
│
├── tests/
│ └── test_hub.py
│
└── docs/
├── AI-CONTRACT.md
├── DEMO.md
└── TEAM-PLAN.md
Backend
server.py
Отвечает за:
- HTTP API;
- хранение данных;
- рейтинг;
- AI-уточнение;
- задачи;
- отклики;
- решения бизнеса.
Frontend
static/index.html
static/app.js
static/style.css
Интерфейс работает без отдельного frontend-framework.
Хранение
Данные сохраняются локально в SQLite.
Основные API
GET /api/state
POST /api/ai
POST /api/tasks
POST /api/proposals
POST /api/decision
/api/state возвращает состояние, необходимое клиентскому приложению.
/api/ai выполняет локальное уточнение задачи.
/api/tasks создаёт и обновляет карточки.
/api/proposals сохраняет отклики студенческих команд.
/api/decision сохраняет ручное решение бизнеса.
Проверка тестов
Запуск:
python3 -m unittest discover -s tests
или:
python3 -m unittest tests/test_hub.py
Ограничения MVP
Проект разработан как MVP в рамках пятичасового хакатона.
Намеренно не реализованы:
- полноценная регистрация;
- восстановление пароля;
- сложная ролевая модель;
- чат в реальном времени;
- уведомления;
- календарь;
- файловое хранилище;
- обучение собственной ML-модели;
- векторная база данных;
- адаптация под мобильные устройства;
- production-инфраструктура;
- полноценный project tracker.
Эти функции не нужны для проверки основного сценария кейса.
Основной принцип проекта
Чем полнее и полезнее бизнес описывает задачу, тем выше её рейтинг и позиция в каталоге.
AI помогает уточнить задачу, но финальные сведения подтверждает человек.
Студенты самостоятельно выбирают задачи.
Бизнес самостоятельно выбирает команды.
Документация
Дополнительные материалы:
docs/AI-CONTRACT.md
Контракт AI, формат входных и выходных данных и правила обработки.
docs/DEMO.md
Пошаговая инструкция для проверки работающего MVP.
docs/TEAM-PLAN.md
Структура командной работы над проектом.
AI Sana Challenge Hub
От бизнес-задачи к первому решению.
Исходные данные по разделу 6 ТЗ
Набор находится в fixtures/demo-data.json. Он содержит четыре связанные коллекции по пять записей:
| Коллекция | Обязательные сведения |
|---|---|
drafts | text — исходное описание разной полноты, industry — отрасль, task_id — связь с карточкой |
tasks | fields со всеми полями рейтинга, score, level, breakdown, missing, направление и подтверждение |
teams | Название, интересы, навыки, технологии |
proposals | Ссылки на команду и задачу, идея, план, срок (duration), ссылка (link) |
Рейтинги пяти карточек: 100, 85, 65, 30 и 10. Два разных предложения для кофейни позволяют показать сравнение команд бизнесом. Остальные отклики относятся к образованию, экологии и логистике. Контакты и ссылки синтетические, внешние прототипы по адресам example.com не предоставляются.
JSON можно скачать на сайте в разделе «Как это работает» → «Скачать JSON-набор». API /api/demo-data возвращает исходный учебный набор, а /api/state — актуальную рабочую базу с пользовательскими изменениями.
При первом запуске новой базы приложение читает этот файл. Существующая SQLite-база остаётся без изменений. Для просмотра нового набора без удаления текущей работы:
SANA_DB=data/new-demo.sqlite3 python3 server.py --port 8768
PowerShell:
$env:SANA_DB = "data/new-demo.sqlite3"
py server.py --port 8768
Удобство и достоверность демонстрации
Незавершённый конструктор автоматически сохраняет последнюю редактируемую карточку в этом браузере. После перезагрузки в каталоге появляется «Продолжить заполнение». Можно вернуться на предыдущий шаг, не теряя ответы. Локальная копия не публикуется и не заменяет сохранение на сервере. Восстановление всегда требует нового подтверждения, при конфликте серверной версии нужно заново открыть актуальную карточку. Локально хранится одна последняя редактируемая карточка; открытие другой карточки для редактирования заменяет её. После успешного сохранения на сервере локальная копия удаляется.
XP команды начинается с 0 и складывается только из баллов подтверждённых этапов. Кабинет и список команд показывают одинаковый результат. Порог уровней: 0, 50, 100 и 200 XP; последний уровень максимальный.
Проверки: python3 -m unittest discover -s tests -v (12 тестов, включая объём, связи и рейтинг набора). Для дополнительных регрессионных проверок интерфейсной логики, если установлен Node.js: node --test tests/test_ui.js (6 тестов). Node.js не требуется для запуска сайта.
Авторы коммитов
История коммитов
- 2026-09-23 17:46Polish sidebar and footer UIArailym
- 2026-09-23 16:55Merge pull request #1 from BAITC-Hacks/codex/demo-readiness-fixessabikosh555
- 2026-09-23 16:52Refresh visual design and responsive layouts across the hubSabina
- 2026-09-23 16:43Add complete demo dataset and fix draft recovery and team XPSabina
- 2026-09-23 16:33Add team XP progress and finalize UIArailym
- 2026-09-23 16:21Revise AI contract with detailed implementation notessabikosh555
- 2026-09-23 16:10Revise team plan for clarity and role assignmentssabikosh555
- 2026-09-23 16:07Update README and verification documentationsabikosh555
Все коммиты (23)
- 2026-09-23 16:04Update project verification scenariosabikosh555
- 2026-09-23 15:56Remove unnecessary AI analysis panelArailym
- 2026-09-23 15:52Merge remote changesarailymdanebek-ai
- 2026-09-23 15:51Update UI styles and hidden menuarailymdanebek-ai
- 2026-09-23 15:43Add complete AI Sana projectArailym
- 2026-09-23 15:43Update UI styles and hidden menuarailymdanebek-ai
- 2026-09-23 15:34Improve student team selection flowSabina
- 2026-09-23 15:31Update UI styles and hidden menuarailymdanebek-ai
- 2026-09-23 15:27Update UI styles and hidden menuarailymdanebek-ai
- 2026-09-23 15:23Update UI styles and hidden menuarailymdanebek-ai
- 2026-09-23 15:10AI SANA MVPSabina
- 2026-09-23 15:02Add AI SANA MVPSabina
- 2026-09-23 14:53Create staticsabikosh555
- 2026-09-23 14:52UPsabikosh555
- 2026-09-23 14:49ПОДКЛ НАШУsabikosh555
Структура репозитория (13 файлов)
.gitignore README.md docs/AI-CONTRACT.md docs/AI-Sana-Defense.pptx docs/DEMO.md docs/TEAM-PLAN.md fixtures/demo-data.json server.py static/app.js static/index.html static/style.css tests/test_hub.py tests/test_ui.js
Ветки (3)
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.