AI Sana — каталог бизнес-задач
Браузерный прототип Challenge Hub. Мастер из трёх шагов превращает черновик бизнес-задачи в карточку с рейтингом полноты. Готовые карточки…
О проекте
Команда: iLoveLarp
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Рабочий MVP
Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд
Суть
Браузерный прототип Challenge Hub. Мастер из трёх шагов превращает черновик бизнес-задачи в карточку с рейтингом полноты. Готовые карточки публикуются в каталог, студенческие команды отправляют отклики, бизнес принимает или отклоняет их.
Как устроено
Черновик и отрасль передаются в ai.js. Он через OpenAI-совместимый Chat Completions API или локальную офлайн-эвристику находит пробелы (данные, пользователи, ограничения, результат, критерии успеха) и задаёт уточняющие вопросы. Ответы собираются в редактируемую карточку, rating.js считает полноту от 0 до 100 по 7 критериям с подсказками. Состояние хранится в localStorage. Навигация на hash-router, отдельные режимы «Бизнес» и «Студенческая команда».
Ключевые решения
- gap-based clarifying questions
- completeness scoring (7 criteria)
- offline heuristic fallback
- hash router
- jsdom smoke tests
Особенности
Полностью клиентское приложение без сборки. Офлайн-эвристика работает без ключа как запасной AI-режим. Рейтинг полноты заявки с подсветкой незаполненных полей. Весь цикл «бизнес → каталог → отклик → отбор» закрыт в одном прототипе.
Стек
HTML · CSS · JavaScript · localStorage · jsdom · pnpm
Модели
OpenAI-совместимый Chat Completions API
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-c44bbb01-ilovelarp.
README
README.mdAI Sana — каталог бизнес-задач
Веб-прототип для хакатона: он помогает представителю бизнеса превратить неструктурированное описание проблемы в понятную карточку задачи для студенческих команд. Сервис задаёт уточняющие вопросы, показывает рейтинг полноты заявки и публикует её в каталоге. Команды изучают задачи, отправляют отклики, а бизнес вручную выбирает исполнителей.
Проблема и аудитория
Бизнес-задачи часто приходят в виде коротких и неполных описаний: непонятны данные, ожидаемый результат, критерии успеха и способ связи. Из-за этого студентам трудно оценить задачу и предложить решение.
Проект предназначен для:
- представителей бизнеса и организаций, которые формулируют задачи;
- студенческих команд, которые ищут практические кейсы;
- организаторов хакатона, которым нужен прозрачный каталог и ручной отбор команд.
Что реализовано
- Мастер создания задачи из трёх шагов: черновик, уточняющие вопросы, итоговая карточка.
- Выбор отрасли из расширенного списка либо ввод своего варианта.
- Набор демо-черновиков, чтобы быстро показать сценарий на защите.
- Контекстные вопросы по пробелам в описании: данные, пользователи, ограничения, ожидаемый результат, критерии успеха и связь с бизнесом.
- Редактируемая карточка с подсветкой незаполненных полей.
- Рейтинг полноты от 0 до 100, детализация по семи критериям и подсказки, какие поля улучшить.
- Публикация задач в каталоге, поиск, фильтрация по отрасли и уровню готовности, сортировка по рейтингу и дате.
- Режимы «Бизнес» и «Студенческая команда» с разной навигацией.
- Отклик команды с идеей, планом, сроком и ссылкой на прототип.
- Входящие отклики для бизнеса: новые помечаются, заявку можно принять или отклонить; для принятой команды доступны баллы фактического прогресса.
- Разделы «Мои задачи», «Мои отклики» и «Одобренные заявки».
- Настройки AI: внешний OpenAI-совместимый Chat Completions API или встроенный офлайн-режим.
Как работает решение
- Представитель бизнеса выбирает роль и создаёт черновик задачи.
- Система анализирует текст и задаёт вопросы именно о недостаточно раскрытых частях заявки.
- Ответы преобразуются в карточку: пользователь проверяет и редактирует поля, а рейтинг показывает готовность задачи.
- После публикации задача попадает в каталог.
- Студенческая команда открывает карточку и отправляет свой план решения.
- Бизнес просматривает входящие отклики и вручную принимает или отклоняет команды.
Технологии
- HTML5, CSS3 и JavaScript без фреймворков и сборщика.
localStorageдля хранения состояния демо в браузере.- Hash-router для навигации между экранами.
jsdomдля smoke-проверки пользовательских сценариев.- OpenAI-совместимый Chat Completions API: можно указать endpoint, модель и API-ключ в настройках AI.
- Локальная эвристика как запасной AI-режим: работает без ключа и интернета.
Архитектура
index.html
├─ styles.css интерфейс и адаптивность
├─ data/seed.js демонстрационные задачи и команды
└─ js/
├─ constants.js поля карточки, отрасли, банк вопросов
├─ rating.js расчёт рейтинга полноты
├─ state.js состояние приложения и localStorage
├─ ai.js промпты, API-вызов и офлайн-режим
├─ router.js маршрутизация
├─ main.js запуск приложения и общие элементы UI
└─ views/ экраны мастера, каталога, задач и откликов
ai.js получает текст черновика и отрасль, возвращает вопросы либо структуру карточки. rating.js считает баллы по полям карточки. Представления в js/views отображают данные из state.js и сохраняют изменения в localStorage.
Установка и запуск
Нужен любой современный браузер. Зависимости для работы интерфейса не требуются.
-
Склонируйте репозиторий и откройте папку проекта:
git clone https://github.com/BAITC-Hacks/hack-c44bbb01-ilovelarp.git cd hack-c44bbb01-ilovelarp -
Запустите локальный сервер:
python -m http.server 8000Если в системе команда называется
python3, используйтеpython3 -m http.server 8000. -
Откройте в браузере http://localhost:8000.
Можно открыть index.html напрямую, но запуск через локальный сервер надёжнее для работы localStorage.
Как проверить решение
Сценарий для жюри:
- В боковом меню выберите «Бизнес» и откройте «Новая задача».
- Нажмите на один из примеров черновика, выберите или впишите отрасль.
- Перейдите к вопросам, заполните несколько ответов и сформируйте карточку.
- В карточке обратите внимание на рейтинг и подсвеченные поля. Дополните их и опубликуйте задачу.
- Переключитесь на «Студенческая команда», откройте «Каталог задач», выберите опубликованную задачу и отправьте отклик.
- Вернитесь в роль бизнеса: во «Входящих откликах» новая заявка будет выделена. Примите или отклоните её.
- В режиме команды откройте «Мои отклики» или «Одобренные заявки» и проверьте статус.
Для smoke-проверки установите dev-зависимости и выполните:
npm install
npm test
Данные и AI-интеграции
При первом запуске используются синтетические демонстрационные задачи и профили команд из data/seed.js. Внешние базы данных и персональные данные не подключаются.
По умолчанию работает офлайн-эвристика. Для реальной модели откройте «Настройки AI», выберите «Внешний API» и укажите OpenAI-совместимые endpoint, модель и API-ключ. Ключ хранится только в localStorage текущего браузера и используется для демонстрации; для публичного развёртывания нужен серверный прокси, чтобы ключ не попадал в клиентский код.
Ограничения текущей версии
- Нет регистрации, входа и серверной базы данных: роли и все изменения существуют только в текущем браузере.
- Команды выбираются из демо-профилей; полноценное управление аккаунтами пока не реализовано.
- Внешний AI вызывается из браузера, поэтому этот режим подходит для локальной демонстрации, а не для публичного сайта.
- Нет развёрнутой публичной версии.
Deployed-версия
На момент подготовки README публичная deployed-версия отсутствует.
Авторы коммитов
История коммитов
- 2026-09-23 17:59Add hackathon README in Russianeslishnah
- 2026-09-23 16:42Build AI Sana task catalog MVPeslishnah
Структура репозитория (22 файлов)
.gitignore README.md README.repository.md data/seed.js index.html js/ai.js js/constants.js js/helpers.js js/main.js js/rating.js js/router.js js/state.js js/views/catalog.js js/views/inbox.js js/views/myProposals.js js/views/myTasks.js js/views/taskDetail.js js/views/wizard.js package.json pnpm-lock.yaml styles.css test/smoke.js
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.