Skip to content

📋 Task management tool for teams or personal use.

Notifications You must be signed in to change notification settings

Maria-Shch/TaskTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskTracker 📋

Task management tool for teams or personal use.

Description 📝

This project was developed as part of the Netcracker training center (spring 2022). 🍪

Client-server browser application written in Java 15 using the Spring framework.

The application has MVCS (Model - View - Controller - Service) architecture. The service layer contains the business logic. Controllers have access to the service layer, and the service layer processes data and communicates with the DAO layer.

Deployment 🐳

The application can be run using Docker. The application has Dockerfile and docker-compose.yml. You can use the following commands to run docker containers:

mvn clean package
docker-compose build
docker-compose up

Expected result:

image

Sign in | Sign up 🚀

User login and registration pages:

image

image

Main page 🗃️

Main page with a list of all tasks. Tasks are displayed sorted by status. If you are currently working on a task (marked as active), then it is displayed first in the list.

Warning! The user cannot work on more than one task at a time. If the user already has an active task and clicks 'activate' for another task, then the first task will become inactive and the second one will be activated. The active task is also deactivated when the user logs out via the button.

image

Using the buttons All, Assigned, Created, the user can highlight certain groups of tasks.

  • Button All - deselect tasks
  • Button Assigned - highlights in yellow the tasks that are assigned to you
  • Button Created - highlights in blue the tasks created by you

image

image

Task 📁

You can open a task and view its description in more detail. If the user is the creator of the task, then he can change the user-executor and a due date. He can also cancel it by setting the status to CANCELED. If the user has administrator rights, then he can change these parameters for any task.

On the same page there is a button Create subtask. Clicking the button will redirect the user to the create a new task page.

image

Creating task 🖍️

If you need to create a task, you can do this by going to the creation page from the main one.

When creating a task, the fields "name" and "description" are required.

image

Created tasks | Assigned tasks ⚙️

If the user does not want to view the list of all tasks, then he can select one of the sections with a certain type of task.

image

About statuses 🧬

Each task can have one of five statuses:

  • TODO
  • 🟡 ACCEPTED
  • 🔵 IN PROGRESS
  • 🟢 DONE
  • 🔴 CANCELED

More about each status:

  • TODO - The status is assigned to any task automatically when it is created.
  • ACCEPTED - The task changes from the TODO status to the ACCEPTED status when the user clicks the button 'Accept'. This means that the user has seen the task assigned to him and will be planning to work on it.
  • IN PROGRESS - The status is assigned to the task when a user started working on it for the FIRST TIME (pressed the button 'Activate').
  • DONE - The status DONE means that the user has finished working on the task.
  • CANCELED - The CANCELED status means that this task has been canceled.

A user with the USER role can usually only do the following: change the status of a task from IN PROGRESS to DONE. Also, a user with the USER role can change the status to CANCELED in any moment if he is the CREATOR of this task.

A user with the ADMIN role can change the status of any task to IN PROGRESS, DONE, CANCELED at any time.

Statistics 📊

The 'statistics' section allows you to see the duration of work on tasks.

First, you need to select the start and finish of the period for which you want to get statistics. You can also select none of the dates, or select only one.

Then the user can select the task for which he wants to get statistics. He can get the time of work on only one specific task, or he can get the duration of work on a task, taking into account the work on all its subtasks.

If the user does not select a specific task, then he will get the duration of work on all tasks.

image

image

image

In the drop-down list of tasks, the user displays those tasks on which the user has ever worked. Even if the user is not currently the executor for the task, but previously worked on it, it will be in the list.

If the user has not worked on tasks, then he will see the following in the statistics section:

image

For the administrator, the statistics section looks different. First, the administrator needs to select the user for which he wants to see statistics.

image

After selecting a user, the administrator will already be able to select parameters for statistics for a particular user.

History 📜

In the History section, the user can view the history of task changes. When you go to this section, the user is shown a history of changes for the last three days.

The user can select the following options for filtering:

  • Time interval
  • Task type (created by user / assigned to user)
  • Changed parameter

image

For the administrator, the section looks different. He has to select a specific user for which the administrator wants to get the history.

image

Dependencies 🔗

This application is written in Java 15 using these libraries and tools:

Built With 📍

  • Maven - Dependency Management