University — это веб-приложение для управления данными университета: студентами, преподавателями, курсами, лекциями и другими академическими сущностями. Приложение разработано с использованием современных технологий и архитектурных подходов, обеспечивая масштабируемость, безопасность и удобство поддержки.
- Управление университетами, кафедрами, студентами и преподавателями
- Создание и ведение курсов и лекций
- Зачисление студентов на курсы
- Отслеживание посещаемости
- Регистрация студентов через Keycloak
- Полный CRUD через REST API
- Документация API через Swagger UI (OpenAPI 3)
- Безопасность с JWT и OAuth2 через Keycloak
- Миграции базы данных с Flyway
- Пагинация, фильтрация и сортировка
| Категория | Технологии |
|---|---|
| Backend | Spring Boot 3, Java 17 |
| Секурность | Spring Security, OAuth2, JWT, Keycloak |
| База данных | PostgreSQL, Flyway (миграции), UUID |
| ORM | JPA / Hibernate |
| API | REST, OpenAPI 3 (Swagger UI) |
| DI / Mapping | Lombok, MapStruct |
| Тестирование | JUnit 5, Testcontainers |
| Контейнеризация | Docker, docker-compose |
| Логирование | SLF4J, Logback |
Приложение построено по принципам чистой архитектуры:
- Слой контроллеров → сервисы → репозитории
- DTO и мапперы для изоляции слоёв
- Конфигурация безопасности через
SecurityConfig - Централизованная обработка ошибок (
@ControllerAdvice) - Поддержка пагинации и фильтрации
- Интеграция с Keycloak как Identity Provider
- Роли:
ADMIN,STUDENT - Автоматическая регистрация студентов через API
- Защита всех приватных эндпоинтов через JWT
- Swagger UI с OAuth2-авторизацией
- Интеграционные тесты с Testcontainers (PostgreSQL в Docker)
- Покрытие основных сценариев: CRUD, безопасность, валидация
- Поддержка
@SpringBootTestи@WebMvcTest
-
Убедитесь, что установлены:
- Docker
- Docker Compose
-
Запустите всё окружение:
docker-compose up --build