AAYMA
RU
Войти

AI Sana Challenge Hub

MVP платформы Challenge Hub: бизнес превращает черновик в карточку задачи с рейтингом готовности 0–100, публикует её в каталог, студенческие команды…

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

О проекте

Команда: 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.md

AI 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-режим.

Он используется для уточнения исходного описания задачи.

Система:

  1. получает черновик, направление и уже известные сведения;
  2. определяет недостающие поля;
  3. формирует релевантные уточняющие вопросы;
  4. возвращает структурированный результат;
  5. не добавляет неизвестные факты самостоятельно.

Пользователь может:

  • изменить ответы;
  • оставить неизвестные сведения пустыми;
  • отредактировать итоговую карточку;
  • самостоятельно подтвердить сведения перед публикацией.

Ограничение 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. Он содержит четыре связанные коллекции по пять записей:

КоллекцияОбязательные сведения
draftstext — исходное описание разной полноты, industry — отрасль, task_id — связь с карточкой
tasksfields со всеми полями рейтинга, 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 не требуется для запуска сайта.

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

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

sabikosh555 8arailymdanebek-ai 6Sabina 5Arailym 4

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

  • 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 комментариев

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

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