TaskReady AI
TaskReady AI: конструктор задачи с уточняющими вопросами, Readiness Score по 7 критериям, каталог, отклики команд с обязательной ссылкой на…
О проекте
Команда: AnsaAi
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Рабочий MVP
Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд
Суть
TaskReady AI: конструктор задачи с уточняющими вопросами, Readiness Score по 7 критериям, каталог, отклики команд с обязательной ссылкой на прототип, ручной выбор и подтверждение этапа.
Как устроено
FastAPI-бэкенд с SQLite (пользователи, сессии, задачи, предложения, события прогресса, аудит) и фронтенд на ванильном HTML/JS. Модель вызывается через OpenAI Responses API со Structured Outputs (по умолчанию gpt-4.1-mini), без ключа работает явно обозначенный локальный режим. Общая прозрачная рубрика в rubric.json используется и на фронтенде, и на бэкенде. Балл не растёт от длины текста. Начисление прогресса защищено от повторной отправки. Отдельно собрано автономное статическое HTML-демо для жюри.
Ключевые решения
- Structured Outputs
- shared scoring rubric
- idempotent progress events
- PBKDF2/CSRF
- Playwright e2e
Особенности
Публичное автономное демо на Netlify без регистрации плюс видео-walkthrough. Команда честно указывает, что живой вызов LLM не проверялся. Есть скрипт evaluate_ai.py с набором кейсов ai_cases.json.
Стек
Python · FastAPI · SQLite · JavaScript · HTML/CSS · Docker · Render · Netlify
Модели
OpenAI gpt-4.1-mini
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-a46b07b7-ansaai.
README
README.mdTaskReady AI
От расплывчатого запроса бизнеса — к задаче, на которую команда может ответить делом
TaskReady помогает бизнесу и студенческим командам быстрее договориться о проекте. Бизнес описывает потребность, уточняет важные детали и публикует проверяемую карточку. Команды предлагают решения, а владелец задачи сравнивает их, выбирает исполнителей и подтверждает результат.
Попробуйте за 2 минуты: откройте демо, выберите задачу в каталоге, изучите её readiness score, посмотрите предложения команд, примите решение в интерфейсе бизнеса и подтвердите этап. Демо уже содержит пять задач, пять профилей команд и пять предложений.
Зачем это нужно
Фраза вроде «автоматизировать обработку заявок» звучит понятно только на первый взгляд. Команде всё ещё неизвестны доступные данные, пользователи, ограничения и критерии успеха. Из-за этого первые итерации уходят на уточнения.
TaskReady превращает этот запрос в общий рабочий процесс: структурированный бриф → объяснимая оценка готовности → предложения команд → решение владельца → подтверждённый прогресс. Система помогает сформулировать задачу, но оставляет публикацию и выбор за людьми.
Как пройти сценарий демо
- Откройте ansaai.netlify.app — регистрация не нужна.
- В каталоге выберите задачу и разберите её цель, вводные и критерии успеха.
- Посмотрите, как Readiness Score объясняет конкретность по семи критериям и показывает, каких сведений не хватает.
- Откройте отклики: в каждом предложении есть план, срок и обязательная ссылка на прототип.
- Переключитесь на бизнес-роль, вручную выберите команду и подтвердите прогресс по этапу.
Демо автономное: состояние сохраняется в браузере. Для повторного чистого сценария сбросьте демо-данные через предусмотренный интерфейс или используйте приватное окно.
Что уже реализовано
- Конструктор задачи с контекстными вопросами, редактированием и подтверждением карточки человеком.
- Readiness Score по семи критериям конкретности. Балл не растёт просто из-за длинного текста; интерфейс объясняет оценку.
- Каталог задач с поиском и фильтрами, профили команд, отклики с обязательными ссылками на прототип.
- Ручной выбор команды владельцем задачи и подтверждение выполненного этапа.
- Начисление прогресса защищено от повторной отправки одного и того же события.
- Отдельные бизнес- и командные аккаунты в серверной версии; проверка ролей и владельца выполняется на backend.
- Адаптивный интерфейс с рубиново-красными и золотыми акцентами, заметной типографикой и сдержанными игровыми сигналами прогресса.
- Автономное HTML-демо, которое можно открыть локально без установки и API-ключа.
Что именно опубликовано
Публичная ссылка ведёт на автономную статическую версию TaskReady. Это быстрый способ дать жюри возможность сразу пройти основной продуктовый сценарий.
- Демо работает на учебных данных и хранит изменения только в браузере посетителя.
- Данные и аккаунты между устройствами и посетителями не синхронизируются.
- На публичной статической странице нет backend-аккаунтов и живого вызова LLM.
- Серверная версия с аккаунтами, контролем доступа и интеграцией OpenAI запускается отдельно по инструкциям ниже. Для реального вызова модели нужен API-ключ на сервере.
Мы не заявляем пользовательские метрики или проверенную экономию времени: следующий шаг — испытать процесс на реальных бизнес-брифах и измерить число уточнений до первого осмысленного предложения.
Запуск серверной версии
Требуется Python 3.12+.
python -m venv .venv
# Linux/macOS: source .venv/bin/activate
# Windows: .venv\Scripts\activate
pip install -r backend/requirements.txt
python scripts/build_demo.py
uvicorn backend.main:app --host 127.0.0.1 --port 8000
Откройте http://127.0.0.1:8000. Чтобы проверить взаимодействие ролей, зарегистрируйте бизнес и команду в разных профилях браузера. Также подготовлены scripts/run.sh, scripts/run.ps1 и Docker Compose. Публикация серверной версии на Render описана в руководстве по деплою; конфигурация использует платный инстанс и постоянный диск.
Подключение модели
На сервере задайте TASKREADY_AI_API_KEY (или OPENAI_API_KEY) и при необходимости TASKREADY_AI_MODEL (по умолчанию gpt-4.1-mini). Для Docker Compose скопируйте .env.example в .env. Не помещайте ключ во frontend и не добавляйте .env в архив или Git.
Если ключ не задан, сервер предлагает локальную проверку. Ошибка внешнего провайдера показывается явно — приложение не маскирует её локальным ответом. Живой API-вызов в этой версии не проверялся из-за отсутствия ключа; контракт и обработка ошибок покрыты тестами. Подробнее: Structured Outputs.
Проверки
pip install -r requirements-dev.txt
node --check app.js
python -m py_compile backend/main.py backend/ai.py backend/scoring.py
python -m pytest -q
python scripts/evaluate_ai.py
# С ключом: реальные платные API-запросы
python scripts/evaluate_ai.py --live
Зафиксированная проверка версии 0.3.0: 10 серверных тестов пройдены; Playwright прошёл сценарий двух ролей и автономное демо; на ширине 390 px горизонтального переполнения не было. Подробности и ограничения — в отчёте проверки. Скрипт браузерного сценария — tests/e2e.cjs.
Техническая основа
| Часть | Реализация |
|---|---|
| Интерфейс | HTML, CSS, JavaScript; адаптивный каталог и рабочие экраны |
| API | FastAPI, отдельный слой интеграции OpenAI Responses API |
| Данные | SQLite: пользователи, сессии, задачи, предложения, события прогресса и аудит |
| Защита | PBKDF2, HttpOnly/SameSite cookie, CSRF, серверная проверка роли и владельца |
| Оценка | Общая прозрачная рубрика из семи критериев для frontend и backend |
| Статическое демо | Один HTML-файл с локальным состоянием; backend не требуется |
Структура проекта
backend/main.py— API, аккаунты, сессии, база, доступ и операции с задачами.backend/ai.py— интеграция модели и явно обозначенный локальный режим.backend/scoring.py,public/rubric.json— общая рубрика готовности.app.js,styles.css,index.html— исходники интерфейса.public/— собранные frontend-файлы.scripts/build_demo.py— сборкаpublic/и автономного HTML-демо.docs/PITCH.md,docs/DEMO_SCRIPT.md— материал защиты и сценарий показа.docs/DEPLOYMENT.md,docs/HANDOFF.md— деплой и передача проекта.
Ограничения пилота
В текущем объёме нет восстановления и подтверждения email, MFA, нескольких аккаунтов участников одной команды и админ-панели. Рубрика измеряет конкретность описания, но не проверяет достоверность фактов или реализуемость решения. Серверная SQLite-конфигурация рассчитана на небольшой пилот; инструкции по резервному копированию и ограничениям есть в docs/DEPLOYMENT.md.
Авторы коммитов
История коммитов
- 2026-09-23 17:53release: publish TaskReady final versiontvixx tarq
- 2026-09-23 16:53fix: align frontend with AI response contracttvixx tarq
- 2026-09-23 16:30design: publish TaskReady v3 interfacetvixx tarq
- 2026-09-23 16:11chore: add docker build exclusionstvixx tarq
- 2026-09-23 16:11feat: ship verified TaskReady redesign and backendtvixx tarq
- 2026-09-23 15:42design: adopt refined editorial workspacetvixx tarq
- 2026-09-23 14:21chore: ignore local runtime filestvixx tarq
- 2026-09-23 14:20feat: add TaskReady AI readiness OS MVPtvixx tarq
Структура репозитория (37 файлов)
.dockerignore .env.example .gitignore Dockerfile README.md TaskReady-demo.html app.js backend/__init__.py backend/ai.py backend/main.py backend/requirements.txt backend/scoring.py docker-compose.yml docs/DEMO_SCRIPT.md docs/DEPLOYMENT.md docs/HANDOFF.md docs/PITCH.md docs/TaskReady-walkthrough.mp4 docs/VERIFICATION.md index.html public/app.js public/demo.html public/index.html public/rubric.json public/styles.css render.yaml requirements-dev.txt requirements-lock.txt scripts/backup.py scripts/build_demo.py scripts/evaluate_ai.py scripts/run.ps1 scripts/run.sh styles.css tests/ai_cases.json tests/e2e.cjs tests/test_api.py
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.