AAYMA
RU
Войти

AI Sana Challenge Hub

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

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

О проекте

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

AI 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

  1. If missing, copy .env.example to .env and ai-logic/.env.example to ai-logic/.env.
  2. Set OPENAI_API_KEY in ai-logic/.env. Set a unique JWT_SECRET in the root .env.
  3. Run docker compose up --build from the repository root.
  4. Open http://localhost:3000. The backend docs are at http://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.

Звёзды
⭐ 0
Форки
0
Язык
TypeScript
Последний push
в прошлом месяце
Коммиты
29
Авторы
4
Файлы
61
Ветки
10

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

Kuatzhan 17Eldar Smagulov 6Alisher 4smrittd 2

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

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

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

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

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