SOYLE
Веб-платформа: бизнес описывает проблему, AI задаёт уточняющие вопросы и формирует карточку задачи, backend считает Readiness Score, команды находят…
О проекте
Команда: SOYLE
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Рабочий MVP
Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд
Суть
Веб-платформа: бизнес описывает проблему, AI задаёт уточняющие вопросы и формирует карточку задачи, backend считает Readiness Score, команды находят задачи и отправляют предложения.
Как устроено
Двухэтапный AI-пайплайн через OpenAI Responses API: описание → уточняющие вопросы, затем описание + ответы → структурированная карточка, которую бизнес редактирует вручную. Node.js backend валидирует данные и детерминированно считает Readiness Score (20/20/15/15/10/10/10) с уровнями готовности; фронтенд на React подбирает задачи под навыки команды и ведёт отклики, выбор и подтверждение этапов. Данные хранятся в браузере, есть mock-режим AI без ключа.
Ключевые решения
- двухэтапная генерация (вопросы → карточка)
- детерминированный Readiness Score
- подбор задач по навыкам команды
- mock-режим AI
Особенности
E2E-тесты на Playwright (регрессии редактора, конфликт хранилища), импорт/экспорт резервной копии и matching задач под профиль команды.
Стек
React 19 · TypeScript · Vite 7 · Node.js · Vitest · Playwright
Модели
GPT-4o-mini
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-281a45ba-soyle.
README
README.mdSOYLE
SOYLE — платформа, которая соединяет бизнес с молодыми специалистами и студенческими командами через реальные практические задачи.
Бизнес описывает проблему своими словами, AI помогает превратить её в понятное техническое задание, после чего команды могут найти подходящую задачу и предложить решение.
Проблема
Бизнесу часто сложно сформулировать задачу так, чтобы разработчики или студенты сразу поняли:
- что нужно сделать;
- для кого создаётся решение;
- какой результат ожидается;
- какие есть ограничения;
- по каким критериям принимать работу.
Одновременно студентам и начинающим специалистам не хватает реальных задач для получения практического опыта.
SOYLE соединяет эти две стороны.
Как работает
1. Бизнес создаёт задачу
Пользователь описывает проблему обычным текстом.
Например:
Нам нужен сервис, который поможет автоматизировать запись клиентов и уменьшить нагрузку на администратора.
2. AI уточняет требования
AI анализирует описание и задаёт уточняющие вопросы.
Ответы помогают определить:
- контекст;
- потребность;
- целевых пользователей;
- доступные данные;
- ограничения;
- ожидаемый результат;
- критерии успеха;
- формат взаимодействия.
3. AI формирует карточку задачи
На основе исходного описания и ответов создаётся структурированная карточка.
Бизнес может вручную изменить любые поля перед публикацией.
4. Backend рассчитывает готовность
После подтверждения данных backend рассчитывает Readiness Score от 0 до 100.
Рейтинг показывает, насколько полно сформулирована задача.
Он рассчитывается детерминированно и не зависит от оценки языковой модели.
5. Задача публикуется
После публикации задача появляется в каталоге.
Команды могут:
- искать задачи;
- использовать фильтры;
- видеть рейтинг готовности;
- получать подбор задач под свои навыки и технологии;
- сохранять интересные задачи.
6. Команда отправляет предложение
Команда указывает:
- идею решения;
- план работы;
- срок;
- ссылку на прототип.
7. Бизнес выбирает команду
Бизнес просматривает предложения и принимает или отклоняет их.
После выполнения этапа бизнес подтверждает результат и может оставить обратную связь участникам.
Основные возможности
- AI-анализ бизнес-задачи
- AI-генерация структурированной карточки
- Readiness Score 0–100
- каталог опубликованных задач
- поиск, фильтрация и сортировка
- подбор задач по профилю команды
- отклики студенческих команд
- принятие и отклонение предложений
- подтверждение выполненного этапа
- система прогресса команды
- избранные задачи
- уведомления внутри платформы
- профили участников команды
- оценки и отзывы
- сохранение данных между перезагрузками
- импорт и экспорт резервной копии
AI
SOYLE использует AI в двух этапах.
Этап 1 — Questions
Описание бизнеса
↓
AI Analysis
↓
Уточняющие вопросы
Этап 2 — Task Card
Описание + ответы
↓
AI
↓
Структурированная карточка
AI не публикует задачу автоматически и не рассчитывает Readiness Score.
Финальное решение и подтверждение данных остаются за пользователем.
Readiness Score
Рейтинг показывает полноту описания задачи.
| Критерий | Баллы |
|---|---|
| Контекст и потребность | 20 |
| Данные и материалы | 20 |
| Ожидаемый результат | 15 |
| Критерии успеха | 15 |
| Ограничения | 10 |
| Целевые пользователи | 10 |
| Контакт и взаимодействие | 10 |
| Всего | 100 |
Уровни:
| Score | Статус |
|---|---|
| 0–39 | Черновик |
| 40–69 | Рабочая |
| 70–89 | Готовая |
| 90–100 | Приоритетная |
Расчёт выполняется backend по фиксированным правилам.
Технологии
- React 19
- TypeScript
- Vite 7
- Node.js
- OpenAI Responses API
- Vitest
- Playwright
Запуск
Требования
- Node.js 22.12+ или 24+
- npm
Установка
git clone <repository-url>
cd <project-folder>
npm install
npm run dev
После запуска откройте адрес, указанный в терминале.
Обычно:
http://127.0.0.1:5173
Windows PowerShell
Если PowerShell блокирует npm.ps1:
npm.cmd install
npm.cmd run dev
AI режимы
По умолчанию проект запускается без API-ключа:
AI_MODE=mock
Это позволяет полностью пройти демонстрационный сценарий.
Для подключения OpenAI:
- Создайте
.env. - Добавьте:
AI_MODE=openai
OPENAI_API_KEY=your_api_key
OPENAI_MODEL=gpt-4o-mini
- Перезапустите приложение:
npm run dev
API-ключ используется только на backend и не должен попадать в GitHub.
Проверка
npm run build
npm test
npm run test:e2e
Demo Flow
Для быстрой проверки проекта:
- Откройте приложение.
- Выберите роль бизнеса.
- Создайте новую задачу.
- Введите короткое описание проблемы.
- Запустите AI-анализ.
- Ответьте на уточняющие вопросы.
- Сформируйте карточку.
- Отредактируйте и подтвердите данные.
- Посмотрите Readiness Score.
- Опубликуйте задачу.
- Переключитесь на роль команды.
- Найдите опубликованную задачу.
- Отправьте предложение.
- Вернитесь в роль бизнеса.
- Примите предложение команды.
- Подтвердите выполненный этап.
Таким образом можно пройти основной end-to-end сценарий SOYLE в одном браузере.
Архитектура
User
│
▼
React + TypeScript
│
├── Task creation
├── Catalog
├── Team profiles
└── Proposals
│
▼
Node.js Backend
│
├── AI API
├── Validation
└── Readiness Score
│
▼
OpenAI Responses API
В текущем MVP пользовательские данные хранятся локально в браузере.
Backend отвечает за AI-запросы, валидацию и расчёт готовности задачи.
Ограничения MVP
Текущая версия предназначена для демонстрации основной продуктовой гипотезы.
Пока отсутствуют:
- полноценная регистрация и авторизация;
- общая серверная база данных;
- синхронизация между устройствами;
- полноценный real-time чат;
- загрузка файлов к задачам.
Следующий этап развития — серверное хранение, авторизация, разграничение доступа и полноценная работа нескольких пользователей.
Ценность проекта
SOYLE превращает:
«У нас есть проблема, но мы не знаем,
как правильно поставить задачу»
в:
Понятная задача
↓
Структурированные требования
↓
Readiness Score
↓
Подходящая команда
↓
Предложение решения
↓
Первый подтверждённый результат
SOYLE — от бизнес-проблемы до первого результата команды.
Авторы коммитов
История коммитов
- 2026-09-23 17:54update readmedshikiy
- 2026-09-23 17:24demo finishDauletyar Shikhiyev
- 2026-09-23 17:02demo testDauletyar Shikhiyev
- 2026-09-23 15:25feat: implement SOYLE hackathon MVPDauletyar Shikhiyev
- 2026-09-23 14:36n01Dauletyar Shikhiyev
Структура репозитория (43 файлов)
.env.example .gitignore README.md START.md docs/ai-contract.md docs/demo.md index.html package-lock.json package.json playwright.config.ts public/favicon.svg server/api.test.ts server/api.ts src/AIConnectionStatus.tsx src/App.tsx src/DataTools.tsx src/ErrorBoundary.tsx src/TaskDetail.tsx src/TaskEditor.tsx src/ai.test.ts src/ai.ts src/components.tsx src/detail.css src/domain.test.ts src/domain.ts src/download.ts src/editor.css src/main.tsx src/matching.css src/matching.test.ts src/matching.ts src/ratingApi.ts src/seed.ts src/storage.test.ts src/storage.ts src/styles.css src/useProjectStorage.ts tests/editor-regressions.spec.ts tests/matching.spec.ts tests/mvp.spec.ts tests/storage-conflict.spec.ts tsconfig.json vite.config.ts
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.