Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Тема проекта: Управление задачами (Task Management System)

Цель проекта - создать удобную систему для управления задачами, которая позволит пользователям эффективно организовывать и контролировать выполнение своих задач. В первую очередь, проект разработан для закрепления принципов проектирования и разработки бэкенда для современных веб-приложений.


Особенности реализации проекта и используемые технологии

  • Проект представлен в виде мультисервиса;
  • Spring Boot;
  • Spring JPA;
  • Hibernate;
  • PostgreSQL;
  • Spring MVC;
  • Spring Security;
  • Spring Mail (Для отправки почты с целью верификации пользователя);
  • Swagger (К проекту прилагается open api files к каждому сервиису);
  • Nginx (Для взаимодействия между сервисами используется nginx);
  • Spring Cloud (Для отправки запроса между сервисами используется feign);
  • Docker (Проект можно поднять в Docker).

Описание функционала:

Система должна обеспечивать следующий функционал:

  1. Права и доступ;
  2. Операции с Пользователями;
  3. Операции с Проектами;
  4. Операции с Задачами;
  5. Аналитика и отчетность.

Права и доступ

  • Разграничен доступ к определённым урлам для пользователей и администратора. Далее по тексту будет указано, что может делать пользователь, а что администратор.

Операции с Пользователями

  1. Создание пользователя:
    • Пользователя может создать администратор;
    • Пользователь может быть создан при самостоятельной регистрации;
    • Для шифрования паролей используется PasswordEncoder;
    • Информация о создании пользователя отправляется в аудит.
  2. Просмотр пользователей:
    • Только администратор может просматривать страницы пользователей или любого определённого пользователя;
    • Пользователь может получить информацию о себе, зайдя на доступный урл для авторизованных пользователей;
    • Информация о пользователе для просмотра: id, логин, ФИО, дата создания, дата обновления, роль, статус.
  3. Обновление Пользователей:
    • Обновлять информацию о пользователе может только администратор;
    • Что можно обновить: логин, ФИО, роль, статус;
    • Информация об обновлении пользователя отправляется в аудит.
  4. Дополнительный функционал:
    • После регистрации пользователь должен пройти верификацию посредством подтверждения; своего email (Пользователю на почту отправляется письмо с просьбой перейти по ссылке. После этого пользователь получает новый статус и может осуществить вход в систему ввдея логин и пароль);
    • Зайти в аккаунт можно только после верификации и последующей авторизации пользователя, посредством предоставление ему токена авторизации.

Операции с Проектами

  1. Создание Проекта:
    • Проект может быть создан только администратором;
    • В Проект могут быть добавлены только зарегистрированные и верифицированные пользователи;
    • Информация о создании Проекта отправляется в аудит.
  2. Просмотр Проекта:
    • Администратор может просматривать как страницы с Проектами так и отдельные проекты;
    • Администратор может выбирать для просмотра как активные так и архивные проекты;
    • Пользователь может просмотреть только тот проект в котором принимает участие;
    • Информация о Проекте для просмотра: id, дата создания, дата обновления, имя Проекта, описание, менеджер проекта, участники проекта, статус проекта.
  3. Обновление Проекта:
    • Обновлять проект может только администратор;
    • Что можно обновить: имя Проекта, описание, менеджер проекта, участники проекта, статус проекта;
    • При обновлении менеджера или участников, проверяется наличие его на текущий момент в базе пользователей;
    • Информация об обновлении Проекта отправляется в аудит.

Операции с Задачами

  1. Создание Задачи:
    • Задача может быть создан только администратором;
    • Исполнителем задачи может быть добавлен только зарегистрированный и верифицированный пользователь;
    • Информация о создании Задачи отправляется в аудит.
  2. Просмотр Задачи:
    • Администратор может просматривать как страницы с Задачами, а также отдельные задачи;
    • Авторизованные пользователи могут выбирать для просмотра задачи проектов в которых они состоят;
    • Также для просмотра доступны задачи других пользователей, но только по проектам, в которых участвует запрашиваемый пользователь;
    • Информация о Задаче для просмотра: id, дата создания, дата обновления, тема Задачи, описание, статус Задачи, исполнитель.
  3. Обновление Задачи:
    • Обновлять Задачи может только администратор;
    • Что можно обновить: тема Задачи, описание, статус Задачи, исполнитель;
    • При обновлении исполнителя, проверяется наличие его на текущий момент в базе пользователей;
    • Информация об обновлении Задачи отправляется в аудит.

Аналитика и отчетность

  1. Создание Аудита:
    • Аудит создаётся автоматически при создании или обновлении какой-либо из существующих сущностей;
    • Администратор и пользователи не имеют доступа к созданию аудита.
  2. Просмотр Аудита и Отчетов:
    • Администратор имеет доступ к просмотру страницы аудитов или отдельному аудиту, а так же отчетов.
  3. Создание Отчета:
    • Отчет создается пока только по аудиту с входными параметрами: from, to, user. Параметры могут быть указаны, а могут и нет. Отчет формируется сразу.
  4. Скачивание отчета и проверка его готовноси:
    • Предоставляется возможность загрузить готовый отчет, а так же есть отдельный урл для проверки готовности указанного отчёта.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages