Skip to content

ignitione1/eduplatform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EduPlatform MVP

EduPlatform — MVP платформы онлайн-школы на Next.js App Router, Supabase, TypeScript, shadcn/ui и Tailwind CSS.

Стек

  • Next.js App Router
  • TypeScript
  • Supabase (auth, database, RLS)
  • shadcn/ui
  • Tailwind CSS
  • Docker
  • GitHub Actions
  • Dokploy

Структура проекта

  • frontend — Next.js приложение
  • docs/database.md — описание БД, ролей и базовых политик безопасности
  • docs/api.md — описание используемых запросов ("эндпоинтов") к Supabase
  • docs/test-accounts.md — как создать тестовые учётные записи (admin + student)
  • infrastructure/supabase/schema.sql — схема таблиц
  • .env.example — обязательные переменные окружения

MVP-функциональность

Публичная часть

  • лендинг /
  • hero-секция
  • каталог опубликованных курсов
  • отзывы
  • footer

Авторизация

  • регистрация по email/password
  • вход по email/password
  • роли admin и student
  • редирект после входа по роли

Кабинет студента

  • просмотр опубликованных курсов
  • запись на курс
  • список своих курсов
  • отмена записи на курс
  • редактирование имени профиля

Админ-панель

  • список курсов
  • создание курса
  • редактирование курса
  • удаление курса
  • список студентов и их записей
  • управление ролями пользователей

Переменные окружения

Скопируйте .env.example в .env.local и заполните значения:

NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=

Локальный запуск

1. Установка зависимостей

npm install --prefix frontend

2. Настройка env

Создайте файл frontend/.env.local или настройте переменные окружения в среде выполнения.

Если вы используете только корневой .env.example, перенесите эти значения в локальную среду для Next.js.

3. Запуск development-режима

npm run dev --prefix frontend

Приложение будет доступно по адресу:

http://localhost:3000

4. Проверка production-сборки

npm run build --prefix frontend
npm run start --prefix frontend

Основные маршруты

  • / — лендинг
  • /login — вход
  • /register — регистрация
  • /dashboard — кабинет студента
  • /dashboard/my-courses — курсы студента
  • /dashboard/profile — профиль студента
  • /admin — админ-панель
  • /admin/courses — управление курсами
  • /admin/students — список студентов

Безопасность и доступы

  • студент видит только свой профиль и свои записи
  • студенту доступны только опубликованные курсы
  • админ управляет курсами и ролями
  • логика доступа разделена на guards, services, repositories
  • базовые политики описаны в docs/database.md

API / слой доступа к данным

В проекте есть минимальный backend API на Next.js Route Handlers (frontend/src/app/api).

Описание HTTP endpoints и запросов к Supabase:

  • docs/api.md

Frontend использует:

  • services — бизнес-логика
  • repositories — работа с Supabase
  • models/schemas — типы и валидация

Ключевые сервисы:

  • auth-service
  • course-service
  • admin-service
  • student-dashboard-service
  • current-user-service

Docker

Сборка приложения выполняется через frontend/Dockerfile.

Локальная сборка образа

docker build -f frontend/Dockerfile -t eduplatform-frontend ./frontend

Локальный запуск контейнера

docker run -p 3000:3000 ^
  -e NEXT_PUBLIC_SUPABASE_URL=your_url ^
  -e NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key ^
  -e SUPABASE_SERVICE_ROLE_KEY=your_service_role_key ^
  eduplatform-frontend

GitHub Actions

В репозитории предусмотрен workflow для:

  • установки зависимостей
  • проверки TypeScript
  • production build
  • деплоя на Dokploy через webhook

Для деплоя нужно добавить секрет:

  • DOKPLOY_DEPLOY_HOOK_FRONTEND
  • DOKPLOY_DEPLOY_HOOK_SUPABASE

Dokploy

Кратко:

  • Source: GitHub repository
  • App path: frontend
  • Dockerfile path: frontend/Dockerfile
  • Port: 3000
  • переменные окружения берутся из .env.example

Тестовые учётные записи

Тестовые учётные данные находятся в файле login_pass.md.

About

MVP платформы онлайн-школы

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages