Skip to content

Repository files navigation

Interview Task

See TASK.md for the task description and setup instructions.

🎯 System Overview

This mocked application allows educators to create courses and exams, while students can take exams and receive AI-powered feedback on their answers.

Features

  • User Management: Role-based access (Educators & Students)
  • Course Management: Create and manage courses with multiple exams
  • AI Evaluation: Automatic scoring and feedback using AI
  • Answer Review: Students see their answers, educators see all submissions

Tech Stack

  • Hono — Lightweight, edge-first web framework for the API server. Similar to Express but built for modern runtimes.
  • oRPC — Type-safe RPC layer, similar to tRPC. Procedures are defined with an os builder; the client infers types directly from the server router.
  • Kysely — Type-safe SQL query builder for TypeScript. Schema types live in apps/api/src/infrastructure/config/database-types.ts.
  • Supabase Auth — Handles authentication. The frontend uses Supabase SSR helpers; the API receives JWTs and can verify them using the Supabase admin client.
  • TanStack Query — Server-state management on the frontend. oRPC's TanStack Query integration exposes .queryOptions() on each procedure.
  • Next.js 15 (App Router) — Frontend framework. Supports both Server and Client Components; the distinction matters when using hooks like useQuery.

Project Structure

├── apps/
│   ├── api/          # Backend API (Hono + oRPC)
│   └── web/          # Frontend (Next.js)
├── packages/
│   └── ui/           # Shared UI components
├── supabase/
│   ├── migrations/   # Database schema
│   ├── seed-users.js # Auth user creation
│   └── config.toml   # Supabase configuration
├── package.json      # Root package.json
├── biome.json        # Root biome configuration
├── .env.example      # Environment variables example
├── TASK.md           # Task description
└── README.md

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages