Приложение выполняет следующие бизнес-функции:
- сайт:
- просмотр мероприятий;
- рекомендация мероприятий;
- панель администратора:
- авторизация и аутентификация;
- CRU экспонатов;
- CRD документов;
- загрузка и выгрузка документов экспонатов;
- перемещения экспонатов;
- CRU авторов;
- СRU мероприятий;
- CD экпонатов в мероприятие;
Приложение написано с использованием Spring-Boot фреймворка.
В качестве сборщика проекта выбран Maven.
В качестве базы данных используется PostgreSQl.
Мультимодульный проект:
| Модуль | Обязанность |
|---|---|
| application | Запуск приложения. Содержит конфигурацию всего проекта. |
| migration | Миграция стуктуры и данных в СУБД. Миграция данных выполняется средствами Liquibase. |
| model | Обработка бизнес логики. Взаимодейстие с СУБД. Содержит pojo модель (Entity) и реализацию взаимодейстивя с СУБД. Слой доступа к БД. |
| datatables-pagination-api | Реализация api для взаимодействия с фрейморком tadatables. |
| security | Аутентификация и авторизация. Может быть применена к любому слою для обеспечения безопасности. |
| web-api | Предоставление API. Слой отвечает за принятие REST запросов от клиента. |
| web-ui | Отображение web страниц панели администратора и сайта. Состоит из статических HTML файлов и клиентской логики с использованием Java Script. В качестве web-сервера выступает само приложение. |
| datatables-pagination-plugin | Интерфейс api для взаимодействия с фрейморком tadatables. |
| Функция | Адрес |
|---|---|
| Точка доступа к приложению - сайт | localhost:8080 |
| Точка доступа к приложению - панель администратора | localhost:8080/admin |
| Почта | Пароль | Примечание | Роль |
|---|---|---|---|
| admin@mail.ru | password | Пользователь для входа в панель администратор | ADMIN |
Для сборки и запуска приложения вам понадобиться:
- JDK 11
- Maven
Запустить цикл install в модуле application. В результате получим исполняемый jar файл в директории target.
swagger ui доступен по ресурсу - /swagger-ui.html
openapi спецификация доступна по ресурсу - /api-docs
Переменные окружения для подключения к БД:
- SPRING_DATASOURCE_URL
- SPRING_DATASOURCE_USERNAME
- SPRING_DATASOURCE_PASSWORD
- SPRING_DATASOURCE_DRIVER
Параметры подключения по умолчанию:
- url: jdbc:postgresql://localhost:5432/postgres
- driverClassName: org.postgresql.Driver
- username: postgres
- password: postgres1
- Загрузка image БД PostgreSQL
docker pull postgres - Запуск контейнера
docker run --rm --name=myContainer --env="POSTGRES_PASSWORD=postgres1" --publish 5432:5432 -d postgres - Для дополнительного доступа к СУБД (для создания бд/схемы):
- Вызов контейнера
docker exec -it myContainer bash - Переключение на пользователя
su postgres - Вызов консоли
psql
- Вызов контейнера
важно!
- исправление вызгрузки документов
- изображения понизить размер фото - оптимизация
- актуализировать ридми
- добавить тесты на ендпоинты
- добавить мягкое удаление (soft delete)
- добавить аудит: created_at, created_by, updated_at, updated_by
- логгировать RUD операции
- добавить тесты на дб (возможно в контейнере)
- поднятие проекта полностью в докере (и бада и приложение в бд через docker compose)
- подключить sonar
- проверить ошибки в консоли браузера и сети браузера
- выгрузка отчетов
