AAYMA
RU
Войти

TaskForge

Платформа Challenge Hub: бизнес через мастер превращает размытый запрос в карточку задачи с AI-уточнениями и рейтингом готовности 0–100, а…

Прототип
Команда «Nomad Agents» 5💬 0 комментариевс 23 сентября 2026 г.

О проекте

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

TaskForge — 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.

TaskForge screenshot

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, public GET /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

  1. Pick a role via the role switcher (business or student team) — no login.
  2. As a business: My Tasks → New task → write a draft → step through the wizard (AI clarifies → card → rating → publish).
  3. The published task appears in the shared Catalog.
  4. As a team: browse the catalog, open a task, submit a proposal.
  5. As the business: review proposals, select/reject, confirm milestones → points go to the Leaderboard.
  6. 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 analyze clarification 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, Actors today).
  • api/Infrastructure/InMemory/ — process-local state, cleared on restart.
  • web/src/pages/, web/src/components/ — routed pages and UI, hand-rolled router in App.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

  1. docker compose up --build, open http://localhost:5173.
  2. 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.").
  3. Run through the wizard: Analyze → answer clarifying questions → edit card → confirm twice.
  4. Publish and open Catalog — compare against the two seeded sample tasks.
  5. Switch to Byte Nomads (team), open a task, submit a proposal.
  6. Switch back to the business, Select/Reject the proposal, confirm a milestone → check the Leaderboard.
  7. Open AI Logs to see the recorded call from step 3.
  8. Verify the backend directly: curl http://localhost:8080/api/health and http://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 the analyze call with validation, retry, and deterministic fallback; demo/full seed 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.
Звёзды
⭐ 0
Форки
1
Язык
C#
Последний push
в прошлом месяце
Коммиты
51
Авторы
2
Файлы
169
Ветки
3

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

Alex 37Nikolay Zapakhalov 14

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

  • 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
Ветки (3)

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

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

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