522bc97b8c25529d33d842c8a7ba373311ad6209
📚 Magistr — Система управления университетским расписанием
Обзор
Magistr — веб-приложение для управления расписанием занятий университета. Система поддерживает мультитенантную архитектуру (каждый университет = отдельная база данных), ролевую модель доступа (Администратор, Преподаватель, Студент) и полное управление аудиторным фондом, группами, дисциплинами и преподавательским составом.
- Продакшн: https://magistr.zuev.company
- Локальная разработка: http://localhost:80
Стек технологий
| Компонент | Технология |
|---|---|
| Backend | Java 17, Spring Boot 3.2.5 |
| Frontend | Vanilla JavaScript (ES6 Modules) + HTML/CSS |
| База данных | PostgreSQL (через Flyway миграции) |
| Контейнеризация | Docker, Docker Compose |
| Продакшн | Kubernetes, Caddy (реверс-прокси) |
| Мониторинг | SigNoz, OpenTelemetry |
| CI/CD | Gitea Actions |
Быстрый старт
Предварительные требования
- Docker и Docker Compose
- Git
Локальный запуск
# 1. Клонировать репозиторий
git clone <repo-url> magistr && cd magistr
# 2. Создать Docker-сеть (если ещё не создана)
docker network create proxy
# 3. Запустить все сервисы
docker compose up -d --build
После запуска приложение доступно по адресу: http://localhost:80
Учётные данные по умолчанию:
| Логин | Пароль | Роль |
|---|---|---|
admin |
admin |
Администратор |
Тестовый преподаватель |
1234567890 |
Преподаватель |
Полезные команды
# Просмотр логов
docker compose logs -f backend
# Полный сброс базы данных (удаление данных + повтор миграций)
docker compose down -v
docker compose up -d
# Остановка всех сервисов
docker compose down
Структура проекта
magistr/
├── backend/ # Java Spring Boot backend
│ └── src/main/
│ ├── java/com/magistr/app/
│ │ ├── controller/ # REST-контроллеры (10 шт.)
│ │ ├── model/ # JPA-сущности
│ │ ├── dto/ # Data Transfer Objects
│ │ ├── repository/ # Spring Data JPA репозитории
│ │ ├── config/ # Конфигурация приложения
│ │ │ └── tenant/ # Мультитенантность
│ │ └── utils/ # Валидаторы
│ └── resources/
│ ├── application.properties
│ └── db/migration/ # Flyway SQL миграции
├── frontend/ # Статический фронтенд
│ ├── index.html # Страница авторизации
│ ├── admin/ # Админ-панель (деканат)
│ │ ├── js/views/ # Модули представлений
│ │ └── css/ # Стили
│ ├── teacher/ # Интерфейс преподавателя
│ └── student/ # Интерфейс студента
├── docs/ # 📖 Документация (вы здесь)
├── compose.yaml # Docker Compose конфигурация
├── .env # Переменные окружения
└── AGENTS.md # Руководство для AI-агентов
📖 Навигация по документации
| Документ | Содержание |
|---|---|
| Архитектура | Общая архитектура, мультитенантность, взаимодействие компонентов |
| Бизнес-логика | Ролевая модель, правила расписания, управление ресурсами |
| База данных | Схема БД, описание таблиц, Flyway миграции |
| REST API | Все эндпоинты с примерами запросов и ответов |
| Инфраструктура | Docker, Kubernetes, CI/CD, мониторинг |
| Разработка | Code Style, соглашения, инструкции для разработчиков |
| Frontend | Архитектура фронтенда, модули, стили |
Description
Languages
Java
36.2%
JavaScript
27.8%
HTML
16.9%
CSS
15.2%
PLpgSQL
3.7%
Other
0.2%