Сервис для расписаний и задач предоставляет пользователю возможность организовывать свое расписание и управлять задачами. Основные функциональные возможности этого сервиса:
-
Регистрация и аутентификация пользователей: пользователи могут создать учетную запись и войти в систему для доступа к своему расписанию и задачам.
-
Безопасность и защита данных: сервис обеспечивает безопасность хранения и передачи данных, а также защиту учетных записей пользователей.
-
Создание и управление задачами: пользователи могут создавать, просматривать, редактировать и удалять задачи. Пользователи могут настраивать повторения задач по указанным временным интервалам. Пользователи не могут создавать новые задачи, которые перекрывают старые.
-
Уведомления: Пользователи могут настраивать уведомления для задач, чтобы получать оповещения за определенный период времени до срока выполнения задачи. Уведомления отправляются на электронную почту.
-
Групповые расписания: Пользователи могут создавать групповые расписания и приглашать других пользователей для совместного использования. Групповые расписания могут содержать общие задачи, доступные для просмотра всем участникам группы.
-
Задачи в группах могут быть назначены администратором определенным участникам.
-
Сортировка и фильтрация задач: Пользователи могут сортировать и фильтровать задачи по различным критериям, чтобы легко находить нужные задачи.
Скачайте .zip файл, извлеките архив с кодом, переместитесь в корневую папку:
cd Eon-Backend-main/Eon-Backend-main/eon
Создайте файл .env со следующими тестовыми данными(учтите, что пароли для SMTP приложения вам нужно ввести свои!):
MDB_USERNAME=rootuser
MDB_PASSWORD=rootpass
SMTP_USERNAME=yourapplicationemail@somemail.com
SMTP_PASSWORD=your_super_secret_password
SECRET_KEY=JWT_secret_key
Запустите docker-compose.yml:
docker-compose up
Теперь сервер доступен на http://localhost:8091
Сервер основывается на принципах RESTful архитектуры. В качестве хранилища данных используется MongoDB, для работы с почтой используется SMTP, для развертывания применяется Docker, для конфигурации CORS внутри контейнеров используется NGINX.
- Классы Data Access Layer находятся в папке srс/java/rest/eon/models
- Классы Service Layer находятся в папке src/java/rest/eon/services
- Классы Controller Layer находятся в папке src/java/rest/eon/controllers
- Классы конфигурации находятся в папке src/java/rest/eon/config
- Классы репозиториев для доступа к базе данных находятся в папке src/java/rest/eon/repositories
- Классы Data Transfer Objects находятся в папке src/java/rest/eon/dto
- Классы обеспечения безопасности находятся в папке src/java/rest/eon/auth
- Для развертывания сервера используется файл docker-compose.yml
Документация API будет доступна по адресу: http://localhost:8091/swagger-ui/index.html#/
-
Конфигурационный файл Spring Security находится в файле src/java/rest/eon/config/SecurityConfiguration.java
-
Конфигурационный файл для NGINX находится в файле services/nginx/nginx.conf и содержит прокси для работы в docker контейнере
- Для тестирования необходимо предоставить секретный ключ для подписи токенов ${SECRET_KEY} в application.properties.
- Тесты находятся в папке src/test/
- Сервер тестируется с помощью Test Containers (см. https://www.testcontainers.org/)
- Покрытие unit-тестами - 70%