Информационная система по кампаниям и их сотрудникам
Ветка проекта: master
─── master (Spring JDBC : Spring Boot : Vaadin)
│
└── JOOQ (JOOQ : Spring Boot : Vaadin)
Приложение позволяет добавлять/удалять/редактировать компании и сотрудников через веб интерфейс (Vaadin 14).
Данные отображаются в табличном виде.
Редактирование происходит в модальном окне. Установлены диапазон допустимых значений для вводимых параметров, маска телефонного номера, русифицированный календарь, в редакторе сотрудника выпадающий список компаний.
Общий поиск для компаний (по всем полям), для сотрудников по отдельному полю.
Всплывающие уведомления при добавлении/удалении.
База данных Postgres, для работы с БД используется NamedParameterJdbcTemplate от Spring ( EmployeeDaoImpl, CompanyDaoImpl ).
Так же используется версионирование структуры БД при помощи Liquibase (changelog)
Обновление базы
mvn liquibase:update
Требования
- JDK 11
- Maven 3
- Liquibase 4
- Docker 20
Запуск
-
Запустить с указанным JDK: run_app.sh
-
Локально
- Cоздать базу create_postgresql_db.sh
- Запустить
mvn spring-boot:run
-
В контейнере
mvn clean package -Pproduction
docker build -t infobase/companies-employees .
docker-compose up
Если при запуске выводит похожие ошибки (FATAL: database "info" does not exist
, ERROR: relation "companies" already exists
), попробуйте:
docker-compose down --volumes
docker-compose up --build