Простое консольное приложение на Spring Boot 3 для управления записями на приём в клинике. Данные хранятся в PostgreSQL. Приложение использует Spring JDBC Template и миграции базы данных Flyway.
- Java 17+
- Maven 3.8+
- PostgreSQL 14+
Можно использовать стандартную базу postrges в PostgreSQL.
Настройте файл src/main/resources/application.yaml:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/postrges
username: postrges
password: postrges
flyway:
enabled: trueПри запуске приложения Flyway автоматически применит миграции из каталога src/main/resources/db/migration (в проекте используется один файл V1__create_appointments.sql).
Собрать исполняемый JAR-файл:
mvn clean packageГотовый файл будет находиться в target/clinic-app-1.0.jar (имя может отличаться, если вы измените версию или artifactId).
Запуск приложения:
java -jar target/clinic-app-1.0.jarПосле запуска вы увидите меню:
Выберите опцию:
1 - Создать запись на приём
2 - Просмотреть детали записи по ID
3 - Редактировать запись
4 - Удалить запись
5 - Список всех записей
0 - Выход
- 1 — Создать запись на приём: последовательный ввод полей. Проверяется, что строки не пустые, дата/время корректны и не в прошлом. Формат даты/времени:
yyyy-MM-dd HH:mm. - 2 — Просмотреть детали записи по ID: введите UUID, отобразятся все поля записи или сообщение, что запись не найдена.
- 3 — Редактировать запись: введите UUID, после загрузки записи можно изменить поля
doctor_full_name,doctor_position,appointment_time,comment. Поляid,created_at,patient_full_nameнеизменяемы. Для каждого редактируемого поля можно оставить пустую строку, чтобы сохранить текущие значения.appointment_timeповторно валидируется и не может быть в прошлом. - 4 — Удалить запись: удалить запись по UUID.
- 5 — Список всех записей: краткий список записей (id, ФИО пациента, ФИО врача, дата/время приёма).
- 0 — Выход: немедленное завершение приложения.
app— консольное взаимодействие (меню, ввод/вывод)service— бизнес-логика и валидацияrepository— доступ к БД через Spring JDBC Templatemodel— модель сущностиAppointment