TaskForge
Платформа Challenge Hub: бизнес через мастер превращает размытый запрос в карточку задачи с AI-уточнениями и рейтингом готовности 0–100, а…
О проекте
Команда: Nomad Agents
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Прототип
Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд
Суть
Платформа Challenge Hub: бизнес через мастер превращает размытый запрос в карточку задачи с AI-уточнениями и рейтингом готовности 0–100, а студенческие команды просматривают каталог, подают заявки и попадают в лидерборд.
Как устроено
Мастер задачи: черновик → уточняющие вопросы AI → карточка → рейтинг по рубрике готовности → публикация в каталог. Бэкенд на .NET 9 Minimal API с in-memory репозиториями и ролевой проверкой по заголовкам. Заложены клиент OpenAI Responses API, валидатор ответа и заглушка анализа, но по README реальной интеграции OpenAI пока нет. Если API недоступен, фронтенд переключается на встроенный демо-набор с эвристическим скорингом.
Ключевые решения
- readiness rubric scoring
- AI clarification wizard
- role-based actor guard
- in-memory repositories
- demo fallback
Особенности
Много спецификаций (MVP_SPEC, декомпозиция задач P0/P1/P2) и разработка с помощью AI-агентов (CLAUDE.md, AGENTS.md). Развёрнут на Netlify. README честно называет пробелы: нет реального LLM, персистентности и тестов.
Стек
C# · .NET 9 · React · TypeScript · Vite · Tailwind CSS · shadcn/ui · Docker Compose
Модели
OpenAI Responses API (planned)
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-8ac6c83c-nomad-agents.
README
README.mdTaskForge — AI Challenge Coach
Hackathon project by team Nomad Agents. Full target design lives in MVP_SPEC.md (source of truth); this README covers what's implemented today.
https://taskforge-web.netlify.app/
1. Project name
TaskForge — "AI Challenge Coach: Business Task Readiness & Open Team Selection".
2. Brief description
Businesses posting challenges for student teams often write vague briefs ("we want an app to fix churn"). TaskForge helps a business turn that into a clear, complete task card, and lets student teams browse a shared catalog and tell which tasks are actually ready to work on. An AI coach flags missing information, asks clarifying questions, and a scoring rubric rates each task card 0–100.
3. Implementation details
- Backend (
api/, .NET 9 Minimal API):GET /api/health, publicGET /api/actors(demo businesses/teams). Actor headers (X-Actor-Role/X-Actor-Id) are validated per request with role/ownership guards. Full domain + repository layer over an in-memory store (actors, tasks, ratings, proposals, milestones, AI logs) with revision-safe updates. Swagger/OpenAPI in dev. - Frontend (
web/, Vite + React + TypeScript): all planned pages are built — role switcher, task-creation wizard (Draft → Clarify → Card → Rating → Published), catalog, task detail, proposal submission/review, leaderboard, and AI call logs. - Sample workspace fallback: when the API is unavailable or lacks feature endpoints, the frontend transparently falls back to an in-browser demo dataset (
web/src/lib/demo.ts) with a placeholder scoring heuristic, so the whole flow is clickable end-to-end without a backend. A banner always marks this mode clearly.
4. How the solution works
- Pick a role via the role switcher (business or student team) — no login.
- As a business: My Tasks → New task → write a draft → step through the wizard (AI clarifies → card → rating → publish).
- The published task appears in the shared Catalog.
- As a team: browse the catalog, open a task, submit a proposal.
- As the business: review proposals, select/reject, confirm milestones → points go to the Leaderboard.
- AI Logs shows every AI call made during clarification.
5. Technologies
- Backend: .NET 9 (Minimal APIs), C#, OpenAPI/Swagger, in-memory storage, Docker.
- Frontend: React 18, TypeScript, Vite 5, Tailwind CSS + shadcn/ui.
- Planned: OpenAI Responses API for the
analyzeclarification call, TanStack Query, orval-generated API client.
6. Project architecture
React SPA (Vite, :5173) ──HTTPS/JSON──► .NET 9 Minimal API (:8080)
│ X-Actor-* headers │
└───── falls back to sample data ◄────┘
(web/src/lib/demo.ts) when a route is unavailable
api/Features/<Feature>/— one folder per backend feature (Health,Actorstoday).api/Infrastructure/InMemory/— process-local state, cleared on restart.web/src/pages/,web/src/components/— routed pages and UI, hand-rolled router inApp.tsx.web/src/lib/http.ts— fetch wrapper adding actor headers + API→sample fallback.web/src/lib/demo.ts— in-memory stand-in for backend logic used only in fallback mode.
7. Installation and setup
Requires .NET 9 SDK + Node.js, or Docker + Docker Compose.
Docker Compose (recommended):
cp .env.example .env # optional
docker compose up --build
API on localhost:8080, web on localhost:5173.
Run directly:
dotnet run --project api/TaskForge.Api.csproj # API on :8080
cd web && npm ci && npm run dev # web on :5173
No credentials or API keys are required to run what exists today.
8. How to test the solution
docker compose up --build, openhttp://localhost:5173.- Pick Tamaq Café Chain (business) → My Tasks → New task → paste a short draft (e.g. "We are a café chain. Customers stop coming back and we don't know why.").
- Run through the wizard: Analyze → answer clarifying questions → edit card → confirm twice.
- Publish and open Catalog — compare against the two seeded sample tasks.
- Switch to Byte Nomads (team), open a task, submit a proposal.
- Switch back to the business, Select/Reject the proposal, confirm a milestone → check the Leaderboard.
- Open AI Logs to see the recorded call from step 3.
- Verify the backend directly:
curl http://localhost:8080/api/healthandhttp://localhost:8080/swagger/.
9. Data and integrations
- Current: singleton in-memory store on the API; all data is lost on restart. Sample data (businesses, teams, tasks, proposals) lives in browser memory and resets on reload.
- Planned: OpenAI Responses API (
POST https://api.openai.com/v1/responses) for theanalyzecall with validation, retry, and deterministic fallback;demo/fullseed profiles.
Limitations
- No durable persistence, no real OpenAI integration yet, no deterministic rating engine (sample mode uses a placeholder heuristic), no auth, no automated tests, not yet deployed.
Авторы коммитов
История коммитов
- 2026-09-23 17:56implement B6-proposals-and-decisions.mdNikolay Zapakhalov
- 2026-09-23 17:49implement B5-catalog.mdNikolay Zapakhalov
- 2026-09-23 17:47Update README.mdAlex
- 2026-09-23 17:42implement B4-task-lifecycle.mdNikolay Zapakhalov
- 2026-09-23 17:41Remove empty .gitkeep files from scripts and seed directoriesaslepenkov
- 2026-09-23 17:40Add deterministic readiness rubricaslepenkov
- 2026-09-23 17:40Connect role switcher to live actorsaslepenkov
- 2026-09-23 17:32Merge branch 'main' of https://github.com/BAITC-Hacks/hack-8ac6c83c-nomad-agentsNikolay Zapakhalov
Все коммиты (51)
- 2026-09-23 17:32implement B3-readiness-engine.mdNikolay Zapakhalov
- 2026-09-23 17:32Refine README for clarity and accuracy in project description and implementation detailsaslepenkov
- 2026-09-23 17:28Configure Tailwind and shadcn UI stackaslepenkov
- 2026-09-23 17:23Fix internal SPA navigationaslepenkov
- 2026-09-23 17:23Add P0 and P1 feature documentation for API, repositories, actor management, validation, AI integration, task lifecycle, and UI enhancementsaslepenkov
- 2026-09-23 17:23implement B2Nikolay Zapakhalov
- 2026-09-23 17:14implement B0 & B1Nikolay Zapakhalov
- 2026-09-23 17:01Add TODO.md for TaskForge MVP implementation checklistaslepenkov
- 2026-09-23 16:41testNikolay Zapakhalov
- 2026-09-23 16:35use ata in memmoryNikolay Zapakhalov
- 2026-09-23 16:24Update README.mdAlex
- 2026-09-23 16:16Correct README after frontend mergeaslepenkov
- 2026-09-23 16:15Update README and add design document for TaskForge projectaslepenkov
- 2026-09-23 16:10Build shared rating panel and owner task detailaslepenkov
- 2026-09-23 16:10Build frontend app shell and actor switcheraslepenkov
- 2026-09-23 16:10Build business task creation wizardaslepenkov
- 2026-09-23 16:10Build catalog and team task viewsaslepenkov
- 2026-09-23 16:10Add team leaderboard pageaslepenkov
- 2026-09-23 16:10Connect frontend flows with labeled browser demo fallbackaslepenkov
- 2026-09-23 16:07move to .Net 9Nikolay Zapakhalov
- 2026-09-23 16:04Update README and add design document for TaskForge projectaslepenkov
- 2026-09-23 16:00Connect frontend flows with labeled browser demo fallbackaslepenkov
- 2026-09-23 15:51Build shared rating panel and owner task detailaslepenkov
- 2026-09-23 15:51Build frontend app shell and actor switcheraslepenkov
- 2026-09-23 15:51Build business task creation wizardaslepenkov
- 2026-09-23 15:51Build catalog and team task viewsaslepenkov
- 2026-09-23 15:51Add team leaderboard pageaslepenkov
- 2026-09-23 15:33Merge branch 'main' of https://github.com/BAITC-Hacks/hack-8ac6c83c-nomad-agentsNikolay Zapakhalov
- 2026-09-23 15:33modify spec againNikolay Zapakhalov
- 2026-09-23 15:25feat: initialize web application with React, TypeScript, and Viteaslepenkov
- 2026-09-23 15:18Merge feat/b00-runnable-api-swagger into mainaslepenkov
- 2026-09-23 15:18feat(api): scaffold runnable .NET 10 API with Swaggeraslepenkov
- 2026-09-23 15:00Refactor backend and frontend documentation for MVP priorities; implement runnable API with Swagger UI; enhance demo seed and admin routes; establish integration and contract checks; add optional backaslepenkov
- 2026-09-23 14:50feat: add task documentation for App Shell, New Task Wizard, RatingPanel, Catalog, Proposals, Leaderboard, and AI Logsaslepenkov
- 2026-09-23 14:50tasksaslepenkov
- 2026-09-23 14:48moify specNikolay Zapakhalov
- 2026-09-23 14:28fix: update MVP specification for clarity and accuracy in task readiness and scoring rulesaslepenkov
- 2026-09-23 14:23refactor(api): Restructure backend to follow MVP_SPEC architectureaslepenkov
- 2026-09-23 14:17additional specNikolay Zapakhalov
- 2026-09-23 14:13Refactor code structure for improved readability and maintainabilityaslepenkov
- 2026-09-23 14:12chore: add global config and agent rulesaslepenkov
- 2026-09-23 14:12chore: scaffold directory structure and docker-composeaslepenkov
- 2026-09-23 14:00ADD: spec_v1aslepenkov
Структура репозитория (169 файлов)
.env.example .gitignore .superpowers/sdd/2026-09-23-project-scaffolding/progress.md .superpowers/sdd/2026-09-23-project-scaffolding/task-0-report.md .superpowers/sdd/2026-09-23-project-scaffolding/task-0-review-package.md AGENTS.md AI_Challenge_Coach_Technical_Specification.md CLAUDE.md MVP_SPEC.md README.md TECHTASK.pdf api/.dockerignore api/Dockerfile api/Domain/Actor.cs api/Domain/AiLog.cs api/Domain/Proposal.cs api/Domain/Rating.cs api/Domain/TaskCard.cs api/Features/Actors/ActorGuard.cs api/Features/Actors/ActorResolverMiddleware.cs api/Features/Actors/Dtos.cs api/Features/Actors/Endpoints.cs api/Features/Ai/AnalysisPrompt.cs api/Features/Ai/AnalyzeStub.cs api/Features/Ai/AnalyzeValidator.cs api/Features/Ai/Dtos.cs api/Features/Ai/FieldCatalog.cs api/Features/Ai/README.md api/Features/Ai/Service.cs api/Features/Catalog/Dtos.cs api/Features/Catalog/Endpoints.cs api/Features/Catalog/Service.cs api/Features/Health/Dtos.cs api/Features/Health/Endpoints.cs api/Features/Proposals/Dtos.cs api/Features/Proposals/Endpoints.cs api/Features/Proposals/Service.cs api/Features/Rating/Dtos.cs api/Features/Rating/README.md api/Features/Rating/ReadinessRules.cs api/Features/Rating/Service.cs api/Features/Tasks/Dtos.cs api/Features/Tasks/Endpoints.cs api/Features/Tasks/Service.cs api/Infrastructure/InMemory/ActorRepository.cs api/Infrastructure/InMemory/AiLogRepository.cs api/Infrastructure/InMemory/InMemoryDataStore.cs api/Infrastructure/InMemory/ProposalRepository.cs api/Infrastructure/InMemory/RatingCacheRepository.cs api/Infrastructure/InMemory/RepositoryResult.cs api/Infrastructure/InMemory/StoreAdminRepository.cs api/Infrastructure/InMemory/TaskRepository.cs api/Infrastructure/OpenAi/ResponsesClient.cs api/Infrastructure/OpenAi/Schemas.cs api/Program.cs api/Properties/launchSettings.json api/TaskForge.Api.csproj api/TaskForge.Api.csproj.user api/TaskForge.Api.http api/appsettings.Development.json api/appsettings.json design.md docker-compose.yml docs/README.md docs/TODO.MD docs/backend/B0-contract-and-actor-guard.md docs/backend/B00-runnable-api-and-swagger.md docs/backend/B1-in-memory-storage.md docs/backend/B10-optional-features.md docs/backend/B2-ai-analysis.md docs/backend/B3-readiness-engine.md docs/backend/B4-task-lifecycle.md docs/backend/B5-catalog.md docs/backend/B6-proposals-and-decisions.md docs/backend/B7-demo-seed-and-admin.md docs/backend/B8-integration-and-contract.md docs/backend/B9-optional-backend-deployment.md docs/backend/README.md docs/backend/contract.md docs/final-features/P0-01-api-contract.md docs/final-features/P0-02-in-memory-repositories.md docs/final-features/P0-03-actor-identity-guard.md docs/final-features/P0-04-validation-conflicts-admin-guard.md docs/final-features/P0-05-real-role-switcher.md docs/final-features/P0-06-ai-analyze-endpoint.md docs/final-features/P0-07-ai-response-validation.md docs/final-features/P0-08-ai-retry-stub-logs.md docs/final-features/P0-09-one-time-answers.md docs/final-features/P0-10-live-wizard-analysis.md docs/final-features/P0-11-task-lifecycle.md docs/final-features/P0-12-readiness-rubric.md docs/final-features/P0-13-rating-explanations.md docs/final-features/P0-14-revision-safe-confirm.md docs/final-features/P0-15-live-rating-coach.md docs/final-features/P0-16-level-up-fixture.md docs/final-features/P0-17-confirmed-catalog.md docs/final-features/P0-18-catalog-filters.md docs/final-features/P0-19-live-task-pages.md docs/final-features/P0-20-spa-navigation.md docs/final-features/P0-21-proposal-upsert.md docs/final-features/P0-22-manual-decisions.md docs/final-features/P0-23-live-proposal-pages.md docs/final-features/P0-24-seed-profiles.md docs/final-features/P0-25-generated-client.md docs/final-features/P0-26-tailwind-shadcn-stack.md docs/final-features/P0-27-readme-handoff.md docs/final-features/P0-28-manual-gate.md docs/final-features/P1-29-recommendations.md docs/final-features/P1-30-post-publish-revision.md docs/final-features/P1-31-ai-log-viewer.md docs/final-features/P2-32-milestones-leaderboard.md docs/final-features/P2-33-cloudrun-netlify.md docs/final-features/README.md docs/superpowers/plans/2026-09-23-project-scaffolding.md docs/tasks/.gitkeep docs/tasks/I0-integration-and-delivery.md docs/tasks/frontend/F0-shell-and-role-switcher.md docs/tasks/frontend/F1-wizard.md docs/tasks/frontend/F2-rating-panel-coach.md docs/tasks/frontend/F3-catalog-and-recommendations.md docs/tasks/frontend/F4-proposals-and-business-review.md docs/tasks/frontend/F5-leaderboard.md docs/tasks/frontend/F6-ai-logs.md docs/tasks/frontend/README.md global.json web/.gitkeep web/components.json web/index.html web/package-lock.json web/package.json web/postcss.config.js web/src/App.tsx web/src/api/.gitkeep web/src/components/AppShell.tsx web/src/components/LevelBadge.tsx web/src/components/ProposalForm.tsx web/src/components/ProposalReview.tsx web/src/components/RatingPanel.tsx web/src/components/RoleSwitcher.tsx web/src/components/Toaster.tsx web/src/components/ui/button.tsx web/src/components/ui/input.tsx web/src/components/ui/select.tsx web/src/components/ui/textarea.tsx web/src/components/wizard/CardStep.tsx web/src/components/wizard/ClarifyStep.tsx web/src/components/wizard/DraftStep.tsx web/src/components/wizard/PublishedStep.tsx web/src/components/wizard/RatingStep.tsx web/src/components/wizard/Stepper.tsx web/src/components/wizard/wizard.css web/src/lib/actor.tsx web/src/lib/http.ts web/src/lib/utils.ts web/src/main.tsx web/src/pages/AiLogs.tsx web/src/pages/Catalog.tsx web/src/pages/Leaderboard.tsx web/src/pages/business/MyTasks.tsx web/src/pages/business/NewTaskWizard.tsx web/src/pages/business/TaskDetail.tsx web/src/pages/team/MyProposals.tsx web/src/pages/team/TaskView.tsx web/src/pages/types.ts web/src/styles.css web/src/vite-env.d.ts web/tailwind.config.ts web/tsconfig.json web/vite.config.ts
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.