AAYMA
RU
Войти

SOYLE

Веб-платформа: бизнес описывает проблему, AI задаёт уточняющие вопросы и формирует карточку задачи, backend считает Readiness Score, команды находят…

Рабочий MVP
Команда «SOYLE» 4💬 0 комментариевс 23 сентября 2026 г.

О проекте

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

SOYLE

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:

  1. Создайте .env.
  2. Добавьте:
AI_MODE=openai
OPENAI_API_KEY=your_api_key
OPENAI_MODEL=gpt-4o-mini
  1. Перезапустите приложение:
npm run dev

API-ключ используется только на backend и не должен попадать в GitHub.


Проверка

npm run build
npm test
npm run test:e2e

Demo Flow

Для быстрой проверки проекта:

  1. Откройте приложение.
  2. Выберите роль бизнеса.
  3. Создайте новую задачу.
  4. Введите короткое описание проблемы.
  5. Запустите AI-анализ.
  6. Ответьте на уточняющие вопросы.
  7. Сформируйте карточку.
  8. Отредактируйте и подтвердите данные.
  9. Посмотрите Readiness Score.
  10. Опубликуйте задачу.
  11. Переключитесь на роль команды.
  12. Найдите опубликованную задачу.
  13. Отправьте предложение.
  14. Вернитесь в роль бизнеса.
  15. Примите предложение команды.
  16. Подтвердите выполненный этап.

Таким образом можно пройти основной 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 — от бизнес-проблемы до первого результата команды.

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

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

dshikiy 5

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

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

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

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