Workflow Tool — AI Sana Engine
Платформа для AI Sana: AI-интервьюер задаёт не меньше 3 уточняющих вопросов, синтезирует паспорт задачи, считает готовность по 7 критериям (100…
О проекте
Команда: DreamTeamm
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Прототип
Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд
Суть
Платформа для AI Sana: AI-интервьюер задаёт не меньше 3 уточняющих вопросов, синтезирует паспорт задачи, считает готовность по 7 критериям (100 баллов). Есть ранжированный каталог, заявки студентов и +100 XP выбранной команде.
Как устроено
Основной трек на Next.js (App Router): API-роуты /api/ai/clarify и /api/ai/synthesize, скоринг в lib/readiness.ts, JWT (HS256) и bcryptjs, роли business/student/admin. Параллельно есть бэкенд на Java Spring Boot с PostgreSQL и миграциями Flyway (сервис ReadinessScoreService). Каталог сортируется по readiness_score DESC, выбор команды начисляет XP.
Ключевые решения
- readiness scoring 7 criteria
- JWT HS256
- bcrypt
- Flyway migrations
- gamification XP
Особенности
В README остались маркеры неразрешённого merge-конфликта. Код загружен двумя коммитами за 10 минут, провайдер LLM не указан.
Стек
Next.js · TypeScript · React · Tailwind CSS · Java · Spring Boot · PostgreSQL · Flyway
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-a4fd6a1f-dreamteamm.
README
README.md<<<<<<< HEAD
Workflow Tool — Task Card MVP & AI Sana Engine
AI-конструирование задач из бизнес-потребностей → 100-балльная оценка зрелости → Ранжированный каталог → Отклики студентов и геймификация (+100 XP)
Полнофункциональная платформа для трансформации неформальных запросов бизнеса в структурированные паспорта задач с AI-интервьюером, 100-балльным скорингом качества, JWT-авторизацией с разделением ролей (business, student, admin), каталогом задач и отбором студенческих команд.
⚡ Быстрый старт
Проект уже собран и запущен на локальном сервере: 👉 http://localhost:3000
Для быстрого входа без ручного ввода пароля на странице /login доступны кнопки 1-Click Demo Login:
- 💼 Бизнес-заказчик:
[email скрыт]/password123 - 🎓 Студенческая команда:
[email скрыт]/password123(CyberAlphas Team, 350 XP) - 🛡️ Администратор:
[email protected]/password123
🔑 Авторизация и роли (JWT + BCrypt)
Реализована полноценная система аутентификации и авторизации:
- JWT токены (HS256) в HTTP-Only Cookies и заголовках
Authorization: Bearer <token>. - Хеширование паролей через
bcryptjs. - Роли:
- 💼
business: создание и редактирование задач, AI-конструктор, просмотр входящих заявок студентов, ручной выбор команды-победителя. - 🎓
student: просмотр ранжированного каталога, AI-рекомендации по стеку команды, подача структурированных заявок (идея, план, сроки, ссылка на прототип), получение +100 XP. - 🛡️
admin: полная модерация, управление статусами, сброс демо-данных в 1 клик.
- 💼
🔄 8-Шаговый пайплайн AI Sana Hackathon
- Черновик бизнеса: Бизнес-представитель описывает проблему свободным языком.
- AI Анализ пробелов & Уточняющие вопросы: Генерация $\ge 3$ персонализированных вопросов (формат данных, метрики, ограничения).
- Синтез паспорта задачи: Автоматическая сборка структурированной карточки без галлюцинаций.
- 100-балльный скоринг качества: Автоматический расчёт готовности карточки по 7 критериям.
- Ранжированный каталог: Сортировка задач по индексу зрелости (
readiness_score DESC). - Отклики студентов: Подача структурированных заявок с планом реализации и ссылками на код/прототип.
- Ручной выбор бизнесом: Заказчик отбирает исполнителя.
- Геймификация прогресса: Выбранной команде автоматически начисляется +100 XP.
📊 100-Балльная шкала готовности и 4 уровня зрелости
| Критерий | Баллы | Описание |
|---|---|---|
| Контекст и бизнес-потребность | 20 | Четкость проблемы, бизнес-контекст, детальность описания |
| Данные и материалы | 20 | Входные данные, форматы файлов, API, датасеты |
| Ожидаемый результат (Deliverables) | 15 | Конкретные результаты (исходный код, прототип, документация) |
| Критерии успеха и приёмки | 15 | Измеримые метрики (KPI, точность %, SLA, throughput) |
| Ограничения и стек | 10 | Стек технологий (Python, React и т.д.) и дедлайны |
| Пользователи и роли | 10 | Целевая аудитория и роли потребителей |
| Контакт заказчика | 10 | Валидный контакт владельца задачи |
| ИТОГО | 100 | Максимальный балл готовности |
4 уровня зрелости:
- 🔴 Черновик (0–39): Требует значительной доработки перед публикацией.
- 🟡 Рабочая (40–69): Базовое описание есть, но не хватает данных или критериев успеха.
- 🟢 Готовая (70–89): Полностью сформированная задача для студенческих команд.
- 🟣 Приоритетная (90–100): Эталонный паспорт задачи с наивысшим приоритетом в каталоге.
🛠️ Запуск проекта вручную
Вариант 1: Запуск Next.js (Track A — Fullstack)
# Установка зависимостей
npm install
# Сборка проекта
npm run build
# Запуск продакшн-сервера
npm run start -- -p 3000
Приложение откроется на http://localhost:3000.
Вариант 2: Запуск Java Spring Boot (Track B — Production Service)
cd backend-java
export DB_HOST=localhost
export DB_PORT=5432
export DB_NAME=workflow_tool
export DB_USER=postgres
export DB_PASSWORD=postgres
./mvnw spring-boot:run
API будет доступно на http://localhost:8080.
База данных PostgreSQL мигрируется автоматически с помощью Flyway (V1__init_schema.sql, V2__seed_sample_data.sql).
🔌 API Спецификация
| Метод | Эндпоинт | Роли | Описание |
|---|---|---|---|
POST | /api/auth/register | Public | Регистрация нового пользователя |
POST | /api/auth/login | Public | Аутентификация, выдача JWT |
GET | /api/auth/me | Public | Проверка текущей сессии и профиля |
POST | /api/auth/logout | Public | Завершение сессии |
POST | /api/ai/clarify | Business, Admin | Генерация $\ge 3$ уточняющих вопросов |
POST | /api/ai/synthesize | Business, Admin | Сборка паспорта задачи из ответов |
GET | /api/tasks | Public | Каталог задач с фильтрацией и ранжированием |
GET | /api/tasks/{id} | Public | Паспорт задачи со 100-балльным аудитом |
POST | /api/tasks | Business, Admin | Создание карточки с авто-скорингом |
POST | /api/tasks/{id}/proposals | Student | Подача структурированной заявки |
PATCH | /api/proposals/{id}/status | Business, Admin | Выбор команды (+100 XP) / отклонение |
POST | /api/seed | Admin | 1-Click сброс тестовых данных |
hack-a4fd6a1f-dreamteamm
Hackathon team repository for DreamTeamm
d4c46befb98ab760aa4cbeb91f6620f59765e4b2
Авторы коммитов
История коммитов
- 2026-09-23 15:35Разрешен конфликт в READMENurymzhumabayev
- 2026-09-23 15:25feat: initial commit - Workflow Tool MVP with AI Constructor, 100-point scoring, and JWT authNurymzhumabayev
Структура репозитория (73 файлов)
.gitignore README.md backend-java/pom.xml backend-java/src/main/java/com/workflow/taskcard/WorkflowApplication.java backend-java/src/main/java/com/workflow/taskcard/config/CorsConfig.java backend-java/src/main/java/com/workflow/taskcard/controller/FeedbackController.java backend-java/src/main/java/com/workflow/taskcard/controller/HealthController.java backend-java/src/main/java/com/workflow/taskcard/controller/ProposalController.java backend-java/src/main/java/com/workflow/taskcard/controller/TaskController.java backend-java/src/main/java/com/workflow/taskcard/domain/Feedback.java backend-java/src/main/java/com/workflow/taskcard/domain/Proposal.java backend-java/src/main/java/com/workflow/taskcard/domain/Task.java backend-java/src/main/java/com/workflow/taskcard/dto/FeedbackDto.java backend-java/src/main/java/com/workflow/taskcard/dto/PageResponse.java backend-java/src/main/java/com/workflow/taskcard/dto/ProposalDto.java backend-java/src/main/java/com/workflow/taskcard/dto/ReadinessScoreResult.java backend-java/src/main/java/com/workflow/taskcard/dto/TaskDto.java backend-java/src/main/java/com/workflow/taskcard/dto/ValidationErrorResponse.java backend-java/src/main/java/com/workflow/taskcard/exception/GlobalExceptionHandler.java backend-java/src/main/java/com/workflow/taskcard/exception/ResourceNotFoundException.java backend-java/src/main/java/com/workflow/taskcard/repository/FeedbackRepository.java backend-java/src/main/java/com/workflow/taskcard/repository/ProposalRepository.java backend-java/src/main/java/com/workflow/taskcard/repository/TaskRepository.java backend-java/src/main/java/com/workflow/taskcard/service/ProposalService.java backend-java/src/main/java/com/workflow/taskcard/service/ReadinessScoreService.java backend-java/src/main/java/com/workflow/taskcard/service/TaskService.java backend-java/src/main/resources/application.yml backend-java/src/main/resources/db/migration/V1__init_schema.sql backend-java/src/main/resources/db/migration/V2__seed_sample_data.sql data/attachments/.gitkeep next.config.mjs package-lock.json package.json postcss.config.js src/app/admin/page.tsx src/app/api/ai/clarify/route.ts src/app/api/ai/synthesize/route.ts src/app/api/attachments/[key]/route.ts src/app/api/auth/login/route.ts src/app/api/auth/me/route.ts src/app/api/auth/register/route.ts src/app/api/feedback/route.ts src/app/api/health/route.ts src/app/api/proposals/[id]/status/route.ts src/app/api/seed/route.ts src/app/api/tasks/[id]/attachments/route.ts src/app/api/tasks/[id]/proposals/route.ts src/app/api/tasks/[id]/route.ts src/app/api/tasks/[id]/status/route.ts src/app/api/tasks/route.ts src/app/catalog/page.tsx src/app/feedback/page.tsx src/app/globals.css src/app/layout.tsx src/app/login/page.tsx src/app/page.tsx src/app/register/page.tsx src/app/tasks/[id]/page.tsx src/components/AiTaskConstructor.tsx src/components/EmptyState.tsx src/components/Navbar.tsx src/components/ReadinessScoreWidget.tsx src/components/TaskCard.tsx src/context/RoleContext.tsx src/lib/ai-assistant.ts src/lib/auth.ts src/lib/db.ts src/lib/readiness.ts src/lib/seed.ts src/lib/storage.ts src/lib/types.ts tailwind.config.js tsconfig.json
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.