AAYMA
RU
Войти

Workflow Tool — AI Sana Engine

Платформа для AI Sana: AI-интервьюер задаёт не меньше 3 уточняющих вопросов, синтезирует паспорт задачи, считает готовность по 7 критериям (100…

Прототип
Команда «DreamTeamm» 12💬 0 комментариевс 23 сентября 2026 г.

О проекте

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

  1. Черновик бизнеса: Бизнес-представитель описывает проблему свободным языком.
  2. AI Анализ пробелов & Уточняющие вопросы: Генерация $\ge 3$ персонализированных вопросов (формат данных, метрики, ограничения).
  3. Синтез паспорта задачи: Автоматическая сборка структурированной карточки без галлюцинаций.
  4. 100-балльный скоринг качества: Автоматический расчёт готовности карточки по 7 критериям.
  5. Ранжированный каталог: Сортировка задач по индексу зрелости (readiness_score DESC).
  6. Отклики студентов: Подача структурированных заявок с планом реализации и ссылками на код/прототип.
  7. Ручной выбор бизнесом: Заказчик отбирает исполнителя.
  8. Геймификация прогресса: Выбранной команде автоматически начисляется +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/registerPublicРегистрация нового пользователя
POST/api/auth/loginPublicАутентификация, выдача JWT
GET/api/auth/mePublicПроверка текущей сессии и профиля
POST/api/auth/logoutPublicЗавершение сессии
POST/api/ai/clarifyBusiness, AdminГенерация $\ge 3$ уточняющих вопросов
POST/api/ai/synthesizeBusiness, AdminСборка паспорта задачи из ответов
GET/api/tasksPublicКаталог задач с фильтрацией и ранжированием
GET/api/tasks/{id}PublicПаспорт задачи со 100-балльным аудитом
POST/api/tasksBusiness, AdminСоздание карточки с авто-скорингом
POST/api/tasks/{id}/proposalsStudentПодача структурированной заявки
PATCH/api/proposals/{id}/statusBusiness, AdminВыбор команды (+100 XP) / отклонение
POST/api/seedAdmin1-Click сброс тестовых данных

hack-a4fd6a1f-dreamteamm

Hackathon team repository for DreamTeamm

d4c46befb98ab760aa4cbeb91f6620f59765e4b2

Звёзды
⭐ 0
Форки
0
Язык
TypeScript
Последний push
в прошлом месяце
Коммиты
2
Авторы
1
Файлы
73
Ветки
1

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

Nurymzhumabayev 2

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

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

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

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