AI Sana Challenge Hub
Маркетплейс челленджей: бизнес с помощью AI создаёт и дорабатывает задание, студенты просматривают каталог и подают заявки, бизнес выбирает команду.
О проекте
Команда: KaeAI
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Рабочий MVP
Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд
Суть
Маркетплейс челленджей: бизнес с помощью AI создаёт и дорабатывает задание, студенты просматривают каталог и подают заявки, бизнес выбирает команду.
Как устроено
Три сервиса: Next.js-фронтенд, FastAPI-backend с PostgreSQL (аккаунты, челленджи, заявки) и отдельный FastAPI-сервис ai-logic. ai-logic через OpenAI выполняет анализ, генерацию, перегенерацию вопросов, улучшение, перевод и ревью задания, при отсутствии ключа базовые функции идут через локальный fallback.
Ключевые решения
- AI challenge generation
- question regeneration
- translation
- review
- JWT auth
- microservices
Особенности
AI-логика вынесена в отдельный микросервис, ключи не попадают в браузер; мультиязычная генерация и регистрация.
Стек
Next.js · TypeScript · Python · FastAPI · PostgreSQL · Docker · Docker Compose
Модели
OpenAI
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-f3e5c053-kaeai.
README
README.mdAI Sana Challenge Hub
A marketplace where businesses publish AI-assisted challenges and student teams apply to solve them.
Structure
apps/frontend— Next.js UI: registration, challenge builder, marketplace and dashboard.backend— FastAPI API: accounts, challenges, applications and PostgreSQL storage.ai-logic— FastAPI AI service: analysis, generation, question regeneration, improvement, translation and review.
The browser calls the backend on port 8000. The backend calls the AI service on port 8001. OpenAI keys stay in ai-logic/.env and are never sent to the browser.
Start with Docker
- If missing, copy
.env.exampleto.envandai-logic/.env.exampletoai-logic/.env. - Set
OPENAI_API_KEYinai-logic/.env. Set a uniqueJWT_SECRETin the root.env. - Run
docker compose up --buildfrom the repository root. - Open
http://localhost:3000. The backend docs are athttp://localhost:8000/docs.
PostgreSQL data lives in the postgres_data Docker volume. If the OpenAI key is missing or the provider is unavailable, basic analysis and generation use a local fallback; the optional improvement, translation and review tools require OpenAI.
Demo flow
Register a business account → create a challenge → answer AI questions → generate → optionally improve, translate or review → publish. Register a student account → browse challenges → apply. The business dashboard shows its own challenges and can select a team.
Local development without Docker
Run the AI service on port 8001 and the backend on port 8000. For a local database, set DATABASE_URL=sqlite+pysqlite:///./local.db in the backend environment; production Docker Compose uses PostgreSQL. Set AI_SERVICE_URL=http://127.0.0.1:8001. Then run npm ci and npm run dev inside apps/frontend.
Keep .env files out of Git. Never paste an API key into frontend code or a GitHub issue.
Авторы коммитов
История коммитов
- 2026-09-23 17:54feat: integrate frontend backend and AI servicesKuatzhan
- 2026-09-23 17:54Merge branch 'main' into feature/backsmrittd
- 2026-09-23 17:42feat: add AI refinement and quality toolsKuatzhan
- 2026-09-23 17:38feat: add multilingual auth and registration flowEldar Smagulov
- 2026-09-23 17:11feat: add AI refinement and quality toolsKuatzhan
- 2026-09-23 17:09add authAlisher
- 2026-09-23 17:05Merge pull request #7 from BAITC-Hacks/ai-integration-prkuaabilov
- 2026-09-23 17:04feat: improve OpenAI challenge integrationKuatzhan
Все коммиты (29)
- 2026-09-23 17:00feat: harden OpenAI challenge integrationKuatzhan
- 2026-09-23 16:55feat: strengthen multilingual AI responsesKuatzhan
- 2026-09-23 16:48feat: improve multilingual AI challenge qualityKuatzhan
- 2026-09-23 16:36feat: add challenge marketplace screensKuatzhan
- 2026-09-23 16:33feat: integrate OpenAI challenge generationKuatzhan
- 2026-09-23 16:22feat: connect frontend to backend challenge APIEldar Smagulov
- 2026-09-23 15:40checkAlisher
- 2026-09-23 15:36Merge branch 'main' into pr-2smrittd
- 2026-09-23 15:35Merge pull request #6 from BAITC-Hacks/cleanup/repository-structurekuaabilov
- 2026-09-23 15:34chore: simplify repository structureKuatzhan
- 2026-09-23 15:33docs: update frontend implementation progressEldar Smagulov
- 2026-09-23 15:31Merge pull request #4 from BAITC-Hacks/codex/ai-integration-properkuaabilov
- 2026-09-23 15:28feat: connect AI challenge builder to backendKuatzhan
- 2026-09-23 15:26feat: connect AI challenge builder to backendKuatzhan
- 2026-09-23 15:25feature/BackendAlisher
- 2026-09-23 15:21feat: complete frontend navigation and challenge flowEldar Smagulov
- 2026-09-23 14:25Merge pull request #2 from BAITC-Hacks/feature/frontendEldar Smagulov
- 2026-09-23 14:24feat: build AI challenge creation flowEldar Smagulov
- 2026-09-23 14:12Merge pull request #1 from BAITC-Hacks/kuatzhan_aikuaabilov
- 2026-09-23 14:10ailogicKuatzhan
- 2026-09-23 14:05Arch for backAlisher
Структура репозитория (61 файлов)
.env.example .gitignore README.md ai-logic/.dockerignore ai-logic/.env.example ai-logic/Dockerfile ai-logic/README.md ai-logic/app/__init__.py ai-logic/app/ai_logic.py ai-logic/app/main.py ai-logic/requirements.txt apps/frontend/.dockerignore apps/frontend/.gitignore apps/frontend/AGENTS.md apps/frontend/CLAUDE.md apps/frontend/Dockerfile apps/frontend/README.md apps/frontend/app/challenges/[id]/page.tsx apps/frontend/app/challenges/page.tsx apps/frontend/app/create/page.tsx apps/frontend/app/dashboard/page.tsx apps/frontend/app/favicon.ico apps/frontend/app/globals.css apps/frontend/app/layout.tsx apps/frontend/app/login/page.tsx apps/frontend/app/page.tsx apps/frontend/app/providers.tsx apps/frontend/components/AppHeader.tsx apps/frontend/context/AuthContext.tsx apps/frontend/context/LanguageContext.tsx apps/frontend/eslint.config.mjs apps/frontend/lib/api.ts apps/frontend/next.config.ts apps/frontend/package-lock.json apps/frontend/package.json apps/frontend/postcss.config.mjs apps/frontend/public/file.svg apps/frontend/public/globe.svg apps/frontend/public/next.svg apps/frontend/public/vercel.svg apps/frontend/public/window.svg apps/frontend/tsconfig.json backend/.dockerignore backend/.env.example backend/.gitignore backend/Dockerfile backend/README.md backend/app/__init__.py backend/app/ai.py backend/app/auth.py backend/app/config.py backend/app/database.py backend/app/main.py backend/app/models.py backend/app/routes/__init__.py backend/app/routes/applications.py backend/app/routes/auth.py backend/app/routes/challenges.py backend/app/schemas.py backend/requirements.txt docker-compose.yml
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.