Investigations

MyLearning

TypeScript December 2023

AI-powered learning management system with OpenAI quiz generation, course browsing, progress dashboards, and Nivo charts.

MyLearning is a full e-learning platform where users browse courses, take AI-generated quizzes, and track their progress. The AI integration is the hook — OpenAI generates quiz questions and course content dynamically, so the material stays fresh.

The dashboard uses Nivo charts (bar, line, scatterplot) to visualise learning progress. There's a Prisma schema with 8+ models covering users, quizzes, questions, answers, AI-generated content, courses, user-course relationships, and a background jobs table for async processing.

The frontend is Next.js 14 with App Router, React 18, Tailwind + shadcn/ui, and a rich set of Radix UI components. SWR handles data fetching, Zod validates inputs, and React Hook Form manages the forms. Storybook documents the component library.

Docker support with multi-stage builds keeps the deployment clean. Jest + Testing Library provide the test coverage. The whole thing runs on PostgreSQL via Prisma ORM.

What this project demonstrates

OpenAI integration for dynamic quiz and content generation
Prisma ORM with 8+ models on PostgreSQL
Nivo charts dashboard: bar, line, scatterplot
Next.js 14 App Router with Storybook component library
Docker multi-stage builds for deployment
Background jobs table for async processing

Technologies

Next.jsOpenAIPrismaPostgreSQLE-LearningAI

© 2026 Jonathan Leahy · v0.8.3