diff --git a/ROADMAP.md b/ROADMAP.md index 5bcc31c..43f5a00 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,25 +1,23 @@ # ROADMAP — LMS Second Brain -**Стек:** Next.js 14 · PostgreSQL · Prisma · NextAuth v5 · Tailwind · shadcn/ui · TipTap · Kinescope · Resend · Hetzner Object Storage +**Стек:** Next.js 16.2.2 · React 19 · PostgreSQL 16 · Prisma 7 · Better Auth 1.6 · Tailwind v4 · shadcn/ui · TipTap · Kinescope · Resend · Hetzner Object Storage **Принцип:** один этап — одна рабочая фича. Не переходим к следующему, пока текущий не работает end-to-end. --- -## Этап 0 — Каркас, auth, роли -**Цель:** запущен локально, можно войти в систему с тремя ролями. +## Этап 0 — Каркас, auth, роли ✅ ЗАВЕРШЁН (07.04.2026) +**Задеплоено на:** https://school.second-brain.ru -- [ ] Инициализация Next.js 14 (App Router, TypeScript, Tailwind) -- [ ] Docker Compose: PostgreSQL 16 + Redis (для сессий) -- [ ] Prisma: подключение, начальная схема (User + роли) -- [ ] NextAuth v5: вход по email/password, хранение сессии -- [ ] Middleware: защита маршрутов по роли (STUDENT / CURATOR / ADMIN) -- [ ] Базовые layout-компоненты: Header, Sidebar, страница-заглушка для каждой роли -- [ ] Страница регистрации с подтверждением email (Resend) -- [ ] Страница входа, выхода, «забыл пароль» -- [ ] Seed-скрипт: создать тестового админа, куратора и ученика -- [ ] `.env.example` заполнен, README с инструкцией запуска - -**Критерий готовности:** открываю localhost:3000, регистрируюсь, подтверждаю email, вхожу — вижу дашборд своей роли. +- [x] Next.js 16.2.2 (App Router, TypeScript, Tailwind v4) +- [x] Docker Compose: PostgreSQL 16 (прод на Hetzner) +- [x] Prisma 7: схема User, Session, Account + полная LMS-модель +- [x] Better Auth: вход по email/password, роли student/curator/admin +- [x] proxy.ts: защита маршрутов по сессии +- [x] Дашборды для трёх ролей +- [x] Страница входа, регистрации, подтверждения email +- [x] Seed: admin/curator/student (пароль: Password123!) +- [x] Dockerfile multi-stage + docker-compose.prod.yml +- [x] Caddy: school.second-brain.ru → порт 3010 ---