Initial commit: Edu Helper (Docker, React, Express, Prisma)

Made-with: Cursor
This commit is contained in:
Константин Лебединский
2026-04-01 21:40:51 +05:00
commit 3dec3ea720
75 changed files with 13806 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
# Спринт: сервер, Docker, Postgres, роли
## Обязательные требования
- **Docker**: образ приложения + `docker-compose` с PostgreSQL; один контейнер отдаёт API и статику фронтенда.
- **PostgreSQL** вместо SQLite; Prisma-миграции при старте контейнера (`migrate deploy`).
- **Два аккаунта** (логины/пароли из переменных окружения при первом запуске): наставник **Алексей**, ученик **Константин**; связь «наставник ведёт ученика» в БД.
- **Алексей** видит и создаёт контент для Константина (чат, вопросы, учебники, тесты, отчёты).
- **Константин** удаляет **только свои** вопросы (`DELETE` только для роли STUDENT и только при совпадении `studentId`); наставник удалять вопросы не может.
- **Настройки** (ключ API, промпты): только наставник (`GET /raw`, `PUT`).
## Статус реализации
См. коммит(ы) в репозитории после этой спецификации: `Dockerfile`, `docker-compose.yml`, `SPRINT.md`, обновлённые `schema.prisma`, auth, защита роутов, UI логина и удаления вопросов.
## Запуск в Docker (обязательная упаковка)
```bash
cp .env.docker.example .env
# Заполните JWT_SECRET, SEED_TUTOR_PASSWORD, SEED_STUDENT_PASSWORD; при желании DEEPSEEK_API_KEY
docker compose up --build
```
Приложение: http://localhost:3000 (логины по умолчанию `alexey` / `konstantin`, см. `SEED_*_USERNAME`).
Файл-пример переменных: [.env.docker.example](.env.docker.example).
## Локальная разработка
- Поднять Postgres (или `docker compose up db -d`).
- `DATABASE_URL=postgresql://...` в `backend/.env`.
- `npm run dev` из корня (как раньше: backend :3001, frontend :5173 с прокси).