
My Role: Full Stack Developer — Sole developer responsible for architecture, implementation, and deployment of the entire platform.
Overview
A full-stack Learning Management System that lets educators create, organize, and sell courses online — with structured chapters, video lessons, and Stripe-powered payments built in. Students get a clean dashboard to browse courses, enroll, and track their progress lesson by lesson.
The admin panel provides a complete course management workflow: rich text descriptions via Tiptap, drag-and-drop chapter/lesson reordering with dnd-kit, thumbnail and video uploads to AWS S3, and automatic Stripe product creation when pricing is set. Courses can be published, archived, or kept as drafts.
Authentication supports email/password with verification, plus GitHub and Google OAuth, all through Better Auth with role-based access control. Arcjet handles rate limiting and bot protection. The platform is designed to mirror production-grade EdTech products with a focus on real payment flows and scalable architecture.
Key Highlights
(8)End-to-end Stripe integration with webhook-driven auto-enrollment
Drag-and-drop course builder with chapter and lesson reordering
Video and image uploads to AWS S3 with presigned URLs
Multi-provider OAuth (GitHub + Google) alongside email/password auth
Rich text course descriptions powered by Tiptap editor
Per-lesson progress tracking across enrolled courses
Admin analytics dashboard with data tables and Recharts
Rate limiting and bot protection via Arcjet middleware
Features
(19)- Browse and search courses by category and level
- Stripe-powered enrollment and checkout
- Per-lesson progress tracking
- Organized chapters with video content
- Personal dashboard for enrollments and progress
- Course CRUD with Tiptap rich text editor
- Drag-and-drop chapter & lesson reordering
- AWS S3 file uploads for thumbnails and videos
- Automatic Stripe product/price creation
- Publish, archive, or draft courses
- Analytics panel with data tables and charts
- Email/password auth with email verification
- GitHub and Google OAuth via Better Auth
- Role-based access control (Admin / User)
- Route protection via Next.js middleware
- Arcjet rate limiting and bot protection
- Stripe Checkout for secure purchases
- Webhook handling for payment confirmation
- Automatic enrollment on successful payment


