Использованные технологии:
- Spring Boot
- Vaadin Framework
- Postgres SQL
- Elastic Search
- Flyway
- Spring Security
Посмотреть, как это работает можно здесь: https://doctor.castroy10.ru/
Логин: doctor3, пароль: 12345
После скачивания проекта необходимо создать в корневой папке проекта файл .env, в котором указать значения c которым запустится Postgres SQL и будет отправляться email.
POSTGRES_USERNAME=
POSTGRES_PASSWORD=
SMTP_SERVER=
EMAIL_USERNAME=
EMAIL_PASSWORD=
ELASTIC_USERNAME=
ELASTIC_PASSWORD=
Проект собирается и запускается последовательностью команд:
git clone https://github.com/castroy10/doctor_docker
cd doctor_docker
docker-compose up -d
После этого приложение соберется в контейнер, подключит контейнер базы данных, загрузит тестовые данные, создаст и скопирует данные в индекс Elastic и будет доступно по адресу http://localhost:8080
create table doctor
(
id bigint not null generated by default as identity PRIMARY KEY,
last_name varchar(255),
first_name varchar(255),
middle_name varchar(255),
email varchar(255)
);
create table category
(
id bigint not null generated by default as identity PRIMARY KEY,
category_name varchar(255)
);
create table doctor_category
(
doctor_id bigint references doctor,
category_id bigint references category
);
create table patient
(
id bigint not null generated by default as identity PRIMARY KEY,
last_name varchar(255),
first_name varchar(255),
middle_name varchar(255),
mobile_phone varchar(255),
email varchar(255),
birthday date
);
create table visit
(
id bigint not null generated by default as identity PRIMARY KEY,
patient_id bigint,
date_time timestamp,
diagnosis text,
treatment text,
comment text,
isFinished bool,
doctor_id bigint,
constraint fk_doctor foreign key (doctor_id) references doctor (id),
constraint fk_patient foreign key (patient_id) references patient (id)
);
create table role
(
id bigint not null generated by default as identity PRIMARY KEY,
role_name varchar(255)
);
create table appuser
(
id bigint not null generated by default as identity PRIMARY KEY,
username varchar(100) not null,
password varchar(100) not null,
account_nonexpired boolean,
account_nonlocked boolean,
credentials_nonexpired boolean,
is_enabled boolean,
doctor_id bigint,
constraint fk_doctor foreign key (doctor_id) references doctor (id)
);
create table appuser_role
(
appuser_id bigint references appuser,
role_id bigint references role
);