You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
Спринт: сервер, 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 (обязательная упаковка)
cp .env.docker.example .env
# Заполните JWT_SECRET, SEED_TUTOR_PASSWORD, SEED_STUDENT_PASSWORD; при желании DEEPSEEK_API_KEY
docker compose up --build
Приложение: http://localhost:3107 (логины по умолчанию alexey / konstantin, см. SEED_*_USERNAME).
Файл-пример переменных: .env.docker.example.
Локальная разработка
- Поднять Postgres (или
docker compose up db -d). DATABASE_URL=postgresql://...вbackend/.env.npm run devиз корня (как раньше: backend :3001, frontend :5173 с прокси).