AAYMA
RU
Войти

Task Catalog MVP

Flask-приложение: бизнес описывает задачу, AI задаёт уточняющие вопросы, бизнес правит карточку, видит детерминированный рейтинг готовности и…

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

О проекте

Команда: Slivkiman
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Рабочий MVP

Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд

Суть

Flask-приложение: бизнес описывает задачу, AI задаёт уточняющие вопросы, бизнес правит карточку, видит детерминированный рейтинг готовности и публикует задачу. Команды подают предложения, бизнес принимает или отклоняет их вручную.

Как устроено

Цепочка: грубое описание → OpenAI задаёт минимум 3 уточняющих вопроса (без ключа или при невалидном JSON используются запасные вопросы) → редактируемая карточка → рейтинг по 7 категориям на Python (сумма 100) → публикация в каталог SQLite → предложения команд → ручное решение Accept/Reject. Для демо есть флаг --seed-demo-data, он создаёт 5 задач и 5 предложений.

Ключевые решения

  • детерминированный рейтинг готовности
  • LLM-уточняющие вопросы
  • fallback-вопросы

Стек

Python · Flask · SQLite · HTML/CSS (Jinja-шаблоны)

Модели

OpenAI API


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-8bfb93dd-slivkiman.

README

README.md

Task Catalog MVP

A 5-hour hackathon MVP that helps businesses turn rough needs into structured, readiness-rated tasks, publish them to an open catalog, receive student-team proposals, and manually choose who to work with.

Architecture and tech stack

  • Python and Flask for routes and server-side rendering
  • HTML/CSS for the small user interface
  • SQLite (task_catalog.db) for published tasks and proposals
  • OpenAI API for clarification questions only

The flow is deliberately simple: rough description → AI clarification → editable task card → deterministic readiness rating → publish → catalog → proposal → manual Accept/Reject decision.

Install and run

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

Set the API key only in the shell session; do not put a real key in source code or commit it to Git:

$env:OPENAI_API_KEY = "your_api_key"
python app.py

Open http://127.0.0.1:5000. If the key is absent, invalid, or the OpenAI request returns invalid JSON, the app shows fallback clarification questions so the demo can continue. The key is never displayed by the application.

Storage and demo data

SQLite storage is created automatically in task_catalog.db. The database has one table for published tasks and one for proposals. It persists while the file remains in the project folder.

To add synthetic demo data to an empty catalog, run:

python app.py --seed-demo-data

This creates exactly five published tasks, five distinct team identities, and five proposals. It does nothing when any task already exists, preventing duplicate seed records. Normal application startup never seeds data.

Readiness scoring

Scoring is deterministic Python logic; AI does not calculate it.

CategoryPoints
Context + Business need20
Available data/materials20
Expected result15
Success criteria15
Constraints10
Target users10
Business connection (contact + interaction format)10

Paired categories are split evenly: Context and Business need are worth 10 each; Business contact and Interaction format are worth 5 each. A non-empty, user-provided field receives its points. The total is 100.

  • 0–39: Draft
  • 40–69: Working
  • 70–89: Ready
  • 90–100: Priority

Low-rated tasks are still publishable and visible in the catalog. The catalog sorts published tasks from highest readiness score to lowest and supports simple topic and readiness-level filters.

Complete user flow

  1. A business user enters a rough task description.
  2. OpenAI asks at least three clarification questions, or fallback questions are used when the AI is unavailable.
  3. The business user reviews and edits the task card.
  4. The user confirms the card to see the transparent readiness breakdown.
  5. The task can be published at any readiness level.
  6. A student opens the public task, submits a proposal, and may do so alongside any number of other teams.
  7. The business opens the proposal page and manually selects Accept or Reject for each proposal.

AI never ranks, selects, or assigns teams. The final decision is always manual.

Manual test scenarios

  1. Improve a weak task: Create a task with only a business need, calculate its low score, edit the missing scoring fields, calculate again, and confirm the score and readiness level increase.
  2. Publish and decide: Publish a task, locate it in the catalog, submit a team proposal, open the business proposal page, then manually Accept or Reject it.
  3. AI fallback: Start the app without OPENAI_API_KEY, submit a rough description, and confirm that fallback clarification questions are shown.

MVP limitations

There is no authentication, chat, notification system, uploads, calendar, automatic team selection, or production deployment infrastructure. The catalog and business views are public demo routes by design.

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

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

Shtorm 12

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

  • 2026-09-23 17:35Prepare final hackathon submissionShtorm
  • 2026-09-23 16:58Fix API timeout and environment setupShtorm
  • 2026-09-23 16:00Improve AI clarification questionsShtorm
  • 2026-09-23 15:42Add demo data validation and error handlingShtorm
  • 2026-09-23 15:28Complete catalog proposals and business decisionsShtorm
  • 2026-09-23 15:07Add task readiness rating and gamificationShtorm
  • 2026-09-23 15:00Add AI task clarification and editable task cardShtorm
  • 2026-09-23 14:28Fix gitignore for environment filesShtorm
Все коммиты (12)
  • 2026-09-23 14:17changed .gitignoreShtorm
  • 2026-09-23 14:09add .gitignore fileShtorm
  • 2026-09-23 14:02Remove OPENAI_API_KEY from .env.exampleShtorm
  • 2026-09-23 14:01Add ArhitictureShtorm
Структура репозитория (17 файлов)
.env.example
.gitignore
README.md
app.py
requirements.txt
static/style.css
templates/base.html
templates/catalog.html
templates/clarify_task.html
templates/create_task.html
templates/error.html
templates/home.html
templates/proposal_form.html
templates/proposals.html
templates/rating.html
templates/task_card.html
templates/task_detail.html

Обсуждение 0 комментариев

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

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