LMS Platform
Наскрізна відповідальність: модель даних, авторизація, платежі, відеострімінг та UI — усе спроєктовано і реалізовано самостійно. Full-stack платформа управління навчанням на Next.js 14 App Router. Викладачі створюють курси з rich-text описами, відеорозділами та вкладеннями; студенти переглядають каталог, записуються безкоштовно або через Stripe Checkout, дивляться відео та відстежують прогрес розділів на особистому дашборді.
Наскрізна відповідальність: модель даних, авторизація, платежі, відеострімінг та UI — усе спроєктовано і реалізовано самостійно. Full-stack платформа управління навчанням на Next.js 14 App Router. Викладачі створюють курси з rich-text описами, відеорозділами та вкладеннями; студенти переглядають каталог, записуються безкоштовно або через Stripe Checkout, дивляться відео та відстежують прогрес розділів на особистому дашборді.
- 01 / ЦІЛЬ
Перебудовано застарілий туторіальний код у self-hosted стек: Clerk, Mux і PlanetScale замінено на Better Auth, власний відеопайплайн та PostgreSQL + Prisma.
- 02 / ЦІЛЬ
Спроєктовано змінний шар сховища (lib/storage): локальний диск із HTTP Range-стрімінгом для перемотування відео або Cloudflare R2 — перемикається однією env-змінною.
- 03 / ЦІЛЬ
Інтегровано Stripe Checkout із підтвердженням покупки через webhook; безкоштовні курси записують миттєво без оплати.
- 04 / ЦІЛЬ
Створено конструктор курсів із drag-and-drop сортуванням розділів, безкоштовним/платним доступом на рівні розділу, валідацією публікації та графіками доходів і продажів.
- 05 / ЦІЛЬ
Модель доступу в стилі Udemy: будь-який користувач може викладати; кожна мутація перевіряє володіння на рівні запиту.
Мутації йдуть через route handlers із клієнтською ревалідацією через router.refresh() — свідомий вибір замість Server Actions. Оптимістична перевірка cookie в middleware тримає всі маршрути приватними, крім автентифікації та webhook. Ідемпотентний seed розгортає демо-акаунти викладача і студента з курсами, покупками та прогресом однією командою.