Pathfinders - это веб-приложение для управления клубом "Следопыт", которое позволяет директорам клуба управлять учениками, занятиями и выставлять оценки.
- Backend: Java 17, Spring Boot 3.1.x
- Database: PostgreSQL 14+
- Build Tool: Maven
- Containerization: Docker, Docker Compose
- Frontend: HTML, CSS, JavaScript
- Java 17 или выше
- Maven 3.6+
- Docker и Docker Compose
- PostgreSQL 14+ (при локальной разработке без Docker)
- Клонируйте репозиторий:
git clone https://github.com/kozionov/Pathfinders.git
cd Pathfinders- Запустите PostgreSQL:
docker-compose -f docker-compose-psgr.yml up -d- Соберите и запустите приложение:
docker-compose -f docker-compose-app.yml up --build- Откройте браузер и перейдите по адресу:
http://localhost:9090
- Запустите PostgreSQL:
docker-compose -f docker-compose-psgr.yml up -d- Соберите проект:
mvn clean package- Запустите приложение:
java -jar target/pathfinders-*.jar- URL: http://localhost:9090/
- Логин:
dir - Пароль:
dir - Роль: Директор клуба
Pathfinders/
├── src/
│ ├── main/
│ │ ├── java/ru/otus/hw/
│ │ │ ├── controller/ # REST контроллеры
│ │ │ ├── service/ # Бизнес-логика
│ │ │ ├── repository/ # Слой данных (JPA)
│ │ │ ├── model/ # Entities и DTO
│ │ │ ├── exception/ # Обработка ошибок
│ │ │ └── config/ # Конфигурация Spring
│ │ └── resources/
│ │ ├── application.yml # Настройки приложения
│ │ ├── static/ # Статические ресурсы
│ │ └── templates/ # HTML шаблоны
│ └── test/ # Тесты
├── Dockerfile
├── docker-compose-app.yml
├── docker-compose-psgr.yml
└── pom.xml
- Создание и настройка клуба
- Управление информацией о клубе
- Добавление новых учеников
- Редактирование информации об учениках
- Просмотр списка учеников
- Создание занятий
- Выставление оценок ученикам
- Просмотр истории занятий
Вы можете настроить приложение через переменные окружения:
# База данных
SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/pathfinders
SPRING_DATASOURCE_USERNAME=postgres
SPRING_DATASOURCE_PASSWORD=postgres
# Порт приложения
SERVER_PORT=8080
# Управление схемой БД (dev/test)
SPRING_JPA_HIBERNATE_DDL_AUTO=validate
# Детализация ошибок (dev)
SERVER_ERROR_INCLUDE_MESSAGE=always
SERVER_ERROR_INCLUDE_BINDING_ERRORS=always
SERVER_ERROR_INCLUDE_STACKTRACE=on_paramОсновные настройки находятся в src/main/resources/application.yml
По умолчанию миграции применяются автоматически при старте приложения.
- Запустите PostgreSQL:
docker-compose -f docker-compose-psgr.yml up -d- Запустите приложение (миграции применятся автоматически):
mvn spring-boot:run- Основной changelog:
src/main/resources/db/changelog/db.changelog-master.yml - Структура БД:
src/main/resources/db/changelog/1.0/ - Данные (seed):
src/main/resources/db/changelog/data/
mvn testmvn test jacoco:reportОтчет будет доступен в target/site/jacoco/index.html
- Валидация данных с форм - добавить Bean Validation для всех входных данных
- Обработка ошибок от сервера на клиенте - реализовать централизованную обработку ошибок
- Страница логина - создать полноценную страницу аутентификации
- Spring Security - внедрить полноценную систему безопасности
- API документация - добавить Swagger/OpenAPI
- Миграции БД - настроен Liquibase
- Unit тесты - увеличить покрытие кода тестами
- CI/CD - настроить GitHub Actions для автоматических сборок
- Используйте Google Java Style Guide
- Запускайте форматирование перед коммитом:
mvn spotless:apply
- Создайте feature-ветку от
master - Внесите изменения
- Создайте Pull Request
- После review сделайте merge
Используйте Conventional Commits:
feat: добавление новой функциональности
fix: исправление ошибки
docs: изменение документации
test: добавление тестов
refactor: рефакторинг кода
МIT License
Sergey Kozionov - @kozionov
Если у вас есть вопросы или предложения, создайте Issue в репозитории.
⭐ Если проект оказался полезным, поставьте звезду на GitHub!