MusicEdu AI
Фронтенд-MVP Challenge Hub для музыкального образования: из короткой задачи бизнеса формируются уточняющие вопросы и карточка, считается рейтинг…
О проекте
Команда: Zhantok
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Прототип
Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд
Суть
Фронтенд-MVP Challenge Hub для музыкального образования: из короткой задачи бизнеса формируются уточняющие вопросы и карточка, считается рейтинг готовности 0–100, задача публикуется в каталог, команды подают предложения, бизнес вручную их принимает.
Как устроено
Одностраничное приложение на React и Vite без backend. Вместо модели работает локальная детерминированная заглушка: generateQuestions, generateTaskCard, calculateScore и improveTask. Рейтинг считается по фиксированным весам (20/20/15/15/10/10/10) с уровнями готовности. Состояние хранится в React state и localStorage, в демо заложены 5 синтетических задач, 5 команд и 5 предложений.
Ключевые решения
- детерминированная AI-заглушка
- rule-based scoring
- localStorage
Особенности
Реального LLM нет, «AI» здесь имитирует локальная функция. Вся логика лежит в одном main.jsx.
Стек
JavaScript · React · Vite · CSS
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-7c10da7b-zhantok.
README
README.mdMusicEdu AI
MusicEdu AI — хакатонный MVP для AI Sana / HackAlem AI: ИИ-платформа для превращения коротких бизнес-задач в готовые практические задания для студентов в сфере музыкального образования.
Problem
Бизнес, музыкальные школы и преподаватели часто формулируют задачи слишком кратко. В черновике не хватает пользователей, потребности, материалов, ограничений, критериев успеха и формата обратной связи. Из-за этого студенческим командам сложно понять задачу и подготовить полезное предложение.
Solution
MusicEdu AI помогает бизнесу структурировать задачу:
- анализирует короткое описание;
- задает уточняющие вопросы;
- формирует редактируемую карточку;
- рассчитывает рейтинг готовности;
- показывает недостающую информацию;
- публикует задачу в каталог;
- принимает предложения команд;
- оставляет финальное решение за бизнесом.
Автоматического выбора или назначения команды нет.
Target users
- представители бизнеса и образовательных организаций;
- преподаватели домбыры, фортепиано, ритма и музыкальной теории;
- студенческие команды;
- организаторы хакатонов и проектного обучения.
Main user flow
- Бизнес вводит слабое описание задачи.
- Локальный ИИ задает минимум 3 уточняющих вопроса.
- Бизнес отвечает на вопросы.
- ИИ создает структурированную редактируемую карточку.
- Система рассчитывает рейтинг готовности 0-100.
- Бизнес видит прозрачную разбивку и недостающую информацию.
- Бизнес улучшает карточку с помощью ИИ.
- Бизнес вручную подтверждает карточку.
- Задача публикуется в каталог даже при низком рейтинге.
- Студенческая команда открывает задачу и отправляет предложение.
- Бизнес вручную принимает или отклоняет предложение.
Architecture
Frontend-only MVP:
- Vite;
- React;
- JavaScript;
- CSS;
- localStorage.
Состояние хранится в React state и localStorage. Backend, база данных, регистрация и внешний ИИ API не используются.
AI functionality
Для MVP используется локальная детерминированная AI-заглушка. Внешний AI API не требуется для запуска.
Локальные функции:
generateQuestions()— генерирует уточняющие вопросы;generateTaskCard()— создает редактируемую карточку из черновика и ответов;calculateScore()— рассчитывает рейтинг готовности;improveTask()— добавляет явно помеченные демонстрационные предложения.
ИИ не выбирает команду, не назначает победителя и не добавляет внешние факты.
AI input/output
AI input:
{
"initialDescription": "Хочу помочь ученикам домбры больше заниматься дома.",
"answers": [
"Начинающие ученики домбры",
"Есть упражнения и заметки преподавателя",
"Нужен прототип помощника для практики",
"Без регистрации и внешнего ИИ"
]
}
Example local AI prompt:
Проанализируй описание практической задачи.
Определи недостающую информацию.
Сформируй минимум 3 уточняющих вопроса.
Не добавляй факты, которых нет во входных данных.
После получения ответов сформируй редактируемую карточку задачи.
AI output:
{
"questions": [
"Кто является целевой аудиторией?",
"Какие учебные материалы или данные доступны?",
"Какой результат должна обеспечить разработка?",
"Какие есть ограничения?"
],
"taskCard": {
"title": "Название",
"context": "Контекст",
"need": "Потребность",
"targetUsers": "Пользователи",
"materials": "Данные / материалы",
"constraints": "Ограничения",
"expectedResult": "Ожидаемый результат",
"successCriteria": "Критерии успеха",
"contact": "Контакт / обратная связь",
"interactionFormat": "Формат взаимодействия"
}
}
Invalid-response handling:
- если карточку невозможно сформировать, приложение показывает: "Не удалось сформировать карточку. Проверьте ответы и попробуйте снова.";
- пустое название блокирует анализ;
- пустое описание блокирует анализ;
- без минимум 3 ответов карточка не создается;
- публикация без подтверждения блокируется;
- пустые обязательные поля предложения блокируют отправку.
Scoring formula
Рейтинг готовности рассчитывается от 0 до 100.
| Критерий | Баллы |
|---|---|
| Контекст и потребность | 20 |
| Данные и материалы | 20 |
| Ожидаемый результат | 15 |
| Критерии успеха | 15 |
| Ограничения | 10 |
| Пользователи | 10 |
| Связь с бизнесом | 10 |
| Итого | 100 |
UI показывает общий рейтинг, progress bar, уровень, разбивку по критериям и список недостающей информации.
Readiness levels
| Рейтинг | Уровень |
|---|---|
| 0-39 | Черновик |
| 40-69 | В работе |
| 70-89 | Готово |
| 90-100 | Приоритетная задача |
Низкий рейтинг не скрывает задачу, не блокирует публикацию и не блокирует предложения команд.
Catalog rules
Каталог:
- показывает все опубликованные задачи;
- сортирует задачи по рейтингу готовности по убыванию;
- показывает тему, пользователей, краткое описание, рейтинг и уровень;
- позволяет открыть подробности задачи;
- поддерживает фильтры "Тема" и "Уровень готовности".
Фильтры меняют только текущий вид и не удаляют задачи.
Proposal system
Студенческая команда отправляет предложение по задаче.
Поля предложения:
- Название команды;
- Идея решения;
- План реализации;
- Предполагаемый срок;
- Ссылка на прототип.
Количество предложений не ограничено.
Manual business selection
Бизнес видит все предложения и вручную выбирает действие:
- "Принять";
- "Отклонить".
Статусы:
- "Ожидает решения";
- "Принято";
- "Отклонено".
Команда не назначается автоматически. ИИ не выбирает победителя.
Synthetic data
Добавлены 5 задач:
- Помощник для регулярной практики домбры;
- ИИ-тренер по музыкальной теории;
- Игра для развития чувства ритма;
- Помощник для начинающих пианистов;
- Тренажёр развития музыкального слуха.
Добавлены 5 команд:
- MusicTech KZ;
- Лаборатория домбры;
- Алем Саунд;
- РитмLab;
- Qobyz Code.
Каждый профиль содержит название команды, количество участников, интересы, навыки и технологии. Также добавлены 5 синтетических предложений.
Installation
npm install
Running
npm run dev
Обычно приложение доступно по адресу:
http://127.0.0.1:5173/
Demo
Рекомендуемый 3-5 минутный показ:
- Начать со слабого описания: "Хочу помочь ученикам домбры больше заниматься дома."
- Показать уточняющие вопросы ИИ.
- Сформировать редактируемую карточку задачи.
- Показать низкий рейтинг около 30/100 и список недостающей информации.
- Нажать "Улучшить задачу с помощью ИИ".
- Показать рост до примерно 80/100 и уровень "Готово".
- Подтвердить карточку и опубликовать задачу.
- Открыть каталог, показать сортировку и фильтры.
- Открыть задачу и отправить предложение команды.
- Перейти в предложения и вручную принять или отклонить отклик.
На главной странице есть кнопка "Запустить демо", которая восстанавливает подготовленные данные и переводит к созданию задачи. Также есть кнопка "Сбросить демонстрационные данные"; перед сбросом приложение спрашивает подтверждение.
Demo scenario
- Открыть главную страницу.
- Нажать "Создать задачу".
- Ввести: "Хочу помочь ученикам домбры больше заниматься дома."
- Нажать "Проанализировать с ИИ".
- Ответить на вопросы ИИ.
- Нажать "Создать карточку задачи".
- Показать низкий рейтинг, разбивку и недостающую информацию.
- Нажать "Улучшить задачу с помощью ИИ".
- Показать рейтинг около 75-85 и уровень "Готово".
- Отредактировать карточку при необходимости.
- Поставить подтверждение "Я проверил данные карточки и подтверждаю их".
- Нажать "Подтвердить и опубликовать".
- Открыть задачу в каталоге.
- Отправить предложение команды.
- Перейти в "Предложения".
- Нажать "Принять" или "Отклонить".
- Проверить изменение статуса.
Validation/test scenarios
- пустое название задачи;
- пустое описание проблемы;
- меньше 3 ответов на вопросы ИИ;
- публикация без подтверждения;
- пустая идея решения;
- пустой план реализации;
- пустой предполагаемый срок;
- публикация задачи с низким рейтингом;
- отправка нескольких предложений на одну задачу;
- ручное принятие и отклонение;
- обновление страницы и сохранение данных в localStorage.
Limitations
MVP намеренно не реализует:
- backend;
- базу данных;
- регистрацию;
- авторизацию;
- чат;
- уведомления;
- платежи;
- blockchain;
- мобильное приложение;
- распознавание звука;
- pitch detection;
- обучение ML-моделей;
- vector database;
- полный project tracker;
- автоматическое назначение команд.
Авторы коммитов
История коммитов
- 2026-09-23 17:07Polish MusicEdu AI MVPZhantore
- 2026-09-23 16:54Polish MusicEdu AI MVPZhantore
- 2026-09-23 16:31Polish MusicEdu AI MVPZhantore
- 2026-09-23 16:25Polish MusicEdu AI MVPZhantore
- 2026-09-23 15:56Implement MusicEdu AI MVPZhantore
- 2026-09-23 15:10Add project READMEZhantore
Структура репозитория (7 файлов)
.gitignore README.md index.html package-lock.json package.json src/main.jsx src/styles.css
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.