Spaces:
Sleeping
Sleeping
AI InterviewMentor β Hackathon Task Breakdown
Phase 1: Project Scaffolding
- Initialize frontend (Vite + React + TypeScript)
- Install frontend deps (tailwindcss, react-router-dom, zustand)
- Configure Tailwind with dark theme
- Initialize backend (FastAPI project structure)
- Install backend deps (requirements.txt)
- Create
.env.examplewith all required variables - Create Dockerfile (multi-stage: Node build + Python runtime)
- Set up NeonDB and run schema migrations
Phase 2: Auth System
-
backend/auth/password.pyβ bcrypt hash + verify -
backend/auth/jwt.pyβ sign + verify access/refresh tokens -
backend/db/connection.pyβ NeonDB async pool (asyncpg) -
backend/db/queries.pyβ user CRUD + refresh token queries -
backend/routers/auth.pyβ signup, login, refresh, logout endpoints -
backend/main.pyβ FastAPI app with lifespan, router registration -
frontend/src/store/authStore.tsβ Zustand auth store -
frontend/src/api/auth.tsβ login, signup, refresh, logout API calls -
frontend/src/api/client.tsβ base fetch wrapper with auto-refresh -
frontend/src/pages/Login.tsx -
frontend/src/pages/Signup.tsxβ with role selector + class code input -
frontend/src/components/shared/ProtectedRoute.tsx -
frontend/src/components/shared/Navbar.tsx -
frontend/src/App.tsxβ React Router setup
Phase 3: Instructor β Batch & Topic Management
-
backend/routers/batches.pyβ create batch, get batch with class code -
backend/routers/topics.pyβ add topic, list topics, unlock/lock topic -
frontend/src/pages/InstructorDashboard.tsxβ batch info, class code display, topic list -
frontend/src/components/instructor/StatCard.tsx -
frontend/src/api/topics.ts
Phase 4: Question Bank Upload
-
backend/routers/upload.pyβ parse CSV, validate, insert questions into DB -
frontend/src/pages/Upload.tsxβ CSV upload page -
frontend/src/components/instructor/UploadZone.tsxβ drag-and-drop CSV zone -
frontend/src/api/upload.ts
Phase 5: LangGraph Interview Engine
-
backend/graph/state.pyβ InterviewState TypedDict -
backend/prompts.pyβ all prompt builders (ask, evaluate, counter, summarize, report) -
backend/graph/nodes.pyβ ask_question, evaluate_answer, counter_question, summarize, generate_report -
backend/graph/graph.pyβ graph builder, conditional edges, compile -
backend/checkpointer.pyβ AsyncPostgresSaver setup -
backend/routers/interview.pyβ /interview/start, /interview/turn, /interview/state
Phase 6: Student Interview UI
-
frontend/src/store/interviewStore.tsβ Zustand interview store -
frontend/src/api/interview.tsβ start, turn, state API calls -
frontend/src/pages/Interview.tsxβ interview chat page -
frontend/src/components/interview/ChatWindow.tsx -
frontend/src/components/interview/MessageBubble.tsx -
frontend/src/components/interview/TypeInput.tsx -
frontend/src/components/interview/ProgressBar.tsx
Phase 7: Reports & Feedback
-
backend/routers/sessions.pyβ get session detail + feedback -
frontend/src/api/sessions.ts -
frontend/src/pages/Report.tsxβ score display + feedback breakdown -
frontend/src/components/report/ScoreRing.tsx -
frontend/src/components/report/FeedbackCard.tsx -
frontend/src/components/report/SummaryBlock.tsx
Phase 8: Student Dashboard
-
frontend/src/pages/StudentDashboard.tsxβ unlocked topics + past attempts -
frontend/src/components/student/TopicChip.tsx -
frontend/src/components/student/AttemptRow.tsx -
frontend/src/api/topics.tsβ student topic list endpoint
Phase 9: Instructor Analytics
-
backend/routers/instructor.pyβ dashboard stats, student detail endpoints -
frontend/src/pages/InstructorDashboard.tsxβ class stats + student score table -
frontend/src/pages/StudentDetail.tsxβ per-student attempt history -
frontend/src/components/instructor/StudentRow.tsx -
frontend/src/components/instructor/GapReport.tsx
Phase 10: Integration & Deployment
- Wire all frontend routes in App.tsx
- Static file mount in FastAPI (must be last)
- Test Docker build locally
- Deploy to Hugging Face Spaces
- End-to-end test: signup β create batch β upload CSV β student joins β interview β report
- Verify session recovery (tab close + reopen)
Priority Order
If time is tight, ship in this order:
- Auth + scaffolding (Phases 1-2) β foundation
- Instructor batch/topic/upload (Phases 3-4) β data entry
- LangGraph engine + interview UI (Phases 5-6) β core product
- Reports (Phase 7) β completes the student flow
- Dashboards (Phases 8-9) β analytics layer
- Deploy (Phase 10) β ship it