SAMS SCHOOL LMS

EdTech / LMS · 2025

Next.js 15
TypeScript
Prisma
PostgreSQL
TailwindCSS
Shadcn UI
Stripe
SAMS SCHOOL LMS

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)
01

End-to-end Stripe integration with webhook-driven auto-enrollment

02

Drag-and-drop course builder with chapter and lesson reordering

03

Video and image uploads to AWS S3 with presigned URLs

04

Multi-provider OAuth (GitHub + Google) alongside email/password auth

05

Rich text course descriptions powered by Tiptap editor

06

Per-lesson progress tracking across enrolled courses

07

Admin analytics dashboard with data tables and Recharts

08

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

Tech Stack

(15)
01Framework
Next.js 15 (App Router
Turbopack)
02Language
TypeScript
03Styling
Tailwind CSS v4
shadcn/ui
04Database
PostgreSQL
Prisma ORM (Accelerate)
05Authentication
Better Auth (Email
GitHub
Google OAuth)
06Payments
Stripe (Checkout
Webhooks)
07File Storage
AWS S3
08Rich Text
Tiptap Editor
09Forms
React Hook Form
Zod
10Data Tables
TanStack React Table
11Charts
Recharts
12Drag & Drop
dnd-kit
13Email
Nodemailer
React Email (Gmail SMTP)
14Security
Arcjet (rate limiting & bot protection)
15Deployment
Vercel

Project Structure

(Directory Tree)
app
(auth)
sign-in
sign-up
layout.tsx
(course)
courses
layout.tsx
(dashboard)
(routes)
layout.tsx
api
auth
courses
stripe
webhook
uploadthing
layout.tsx
globals.css
components
ui
button.tsx
progress.tsx
data-table.tsx
modals
confirm-modal.tsx
providers
confetti-provider.tsx
editor.tsx
preview.tsx
lib
auth.ts
db.ts
stripe.ts
s3.ts
arcjet.ts
utils.ts
hooks
use-debounce.ts
use-confetti.ts
prisma
schema.prisma
middleware.ts
next.config.ts
.env
package.json
tsconfig.json

Screenshots

(3)
SAMS SCHOOL LMS screenshot 1
SAMS SCHOOL LMS screenshot 2
SAMS SCHOOL LMS screenshot 3
1 / 3