Сервис регистрации на прием к врачу – неотъемлемая часть каждой современной поликлиники. Благодаря нему посетитель может правильно планировать свое время, а врач видеть график предстоящей работы. Данный сервис заблаговременно оповестит о предстоящей записи к врачу либо о ее отмене. Тем самым решается проблема создания очередей в клинике и помогает планировать свое время посетителю и врачу.
- Java 17
- Maven
- Spring Boot
- Spring MVC
- Spring Data JPA
- Spring Security
- Hibernate
- PostgreSQL
- Docker
- Lombok
- Thymeleaf
- Bootstrap
Приложение поддерживает работу с тремя типами пользователей:
- Администратор
- Доктор
- Посетитель
Администратор способен создавать аккаунты врачей, подготавливать для них рабочий график.
Ему можно также удалять/восстанавливать в системе клиентов, врачей и их расписание работы.
Доктор может просматривать список всех клиентов поликлиники. Врачам доступно личное расписание. По умолчанию в меню расписания врачи видят актуальный график работы. При желании можно добавить архивное расписание – то, которое было раньше текущего дня. Внутри расписания за день врач видит записавшихся к нему посетителей. Он может просматривать их.
Клиент может записываться на прием к врачу двумя способами:
- Перейти в список с графиком работы врачей, найти врача по нужному критерию, используя поиск.
- Перейти в список докторов, выбрать нужного и нажать “записаться”. При этом его перекинет на страницу с актуальными рабочими днями врача, где можно выбрать подходящий день. В обоих случаях клиент должен перейти внутрь меню рабочего дня врача и выбрать свободный слот.
Есть два ограничения по записи для клиента:
- Нельзя записаться к врачу, если есть активная запись к доктору этой специализации.
- Нельзя записаться к врачу на то время, на которое у клиента уже имеется активная запись.
Предусмотрены две защиты при составлении расписания для врачей:
- Нельзя составить график врачу в тот день, в который он уже работает.
- Нельзя составить график врачу, используя кабинет, который занят в выбранный день
В приложении реализовано оповещение клиента посредством электронной почты в момент регистрации/отмены встречи.