case study
EduAI
A full-stack educational assistant prototype combining authentication, classes, teacher workflows, gamification, student experiences, and AI-oriented functionality.

overview
An end-to-end TypeScript monorepo that brings a web client, API, database, authentication, shared packages, live communication, and role-specific workflows into one coherent application architecture.
architecture
Next.js web client ↔ HTTP/WebSocket ↔ Express server ↔ Prisma/PostgreSQL, with shared TypeScript packages and Docker Compose coordinating the environment.
engineering focus
- Monorepo boundaries that keep frontend and backend development explicit while sharing types and utilities.
- Designing application state and UX for authenticated, role-specific flows.
- Combining request/response APIs with WebSocket-based interactive behaviour.
- Containerizing the web app, API, and database into a repeatable development environment.
highlights
- Student and teacher workflows, classes, gamification, authentication, seeded data, and AI-oriented functionality.
- pnpm workspace with separate web and server applications plus a shared package.
- Better Auth, Zod validation, Prisma/PostgreSQL persistence, and WebSocket support.
- Explicit loading, error, and empty states for authenticated, role-specific workflows.
project context
Prototype completed as an end-to-end application rather than an isolated frontend exercise.
project media
Existing portfolio media

