Simple Task Manager

Simple Task Manager In Java With Source Code

Project: Simple Task Manager Application

-To download simple task manager in java project for free (Scroll Down)

The simple task manager application is a Java project. It allows the user to manage their day by day task report. This is the updated version of the previous task application. To run the project you will need Eclipse IDE. So before you run the project make sure that you have Eclipse or Jet Brains IDE on your computer.

About the project

This whole project has only one concept, that to record your daily task and to do lists. You will add a task and set it to its priority. Also, you can schedule your task list with the use of the calendar button. You have to provide the task description. In this up to date version of the project, your task will be in two categories. First, one will be scheduled task and the other will be the unfinished task. You can manage your task with these two categories.

In order to run the project, first, install an IDE. Then import the project from the studio’s homepage. Your project set up will automatically start. All the Gradle build files will automatically install inside your project root directory. To run the project and set up your virtual device and run the emulator. The project will start and there you can add your task and to-do lists.

This whole project is developed in Eclipse IDE. Here java programming language is used for the field validation and also XML language for the transferring of data. This project keeps asking you about the plugins update so keep your internet alive. And moreover, you will need to update your SDK version and also you have to update your instant run plugins.

Design of this is so simple that the user won’t find difficulties while working on it. This project is easy to operate and understood by the users. To run this project you must have installed Eclipse IDE or Netbeans IDE on your PC. This system in Java is free to download with source code. For the project demo, have a look at the video below.


You may also like.

book store app

Book Store App In Android(Java) With Source Code

car accessories system

Car Accessories System In Java With Source Code

Bus Ticket Booking App

Bus Ticket Booking App In Android and its Admin Panel In PHP With Source Code

image of survey application

Survey Application In JavaScript With Source Code

coffee shop management

Coffee Shop Management In Java With Source Code


How to build an HR information System with java code

Prateek Prateek

How To Import these Files to Eclipse ??


I need a soucecode can u plz apporach me

task management system java

Name already in use

Task-management-system / taskmanagementsystem / src / main / java / com / taskmanager / controller / / jump to code definitions taskcontroller class getinstance method findtasksforuser method deletetaskbyid method savetask method updatetask method code navigation index up-to-date.

DEV Community

DEV Community

Cover image for Building a Task Management Application using Rest API, Spring Boot, Maven and Fauna

Posted on Nov 30, 2021 • Updated on Jul 23, 2022

Building a Task Management Application using Rest API, Spring Boot, Maven and Fauna

Written in connection with the Write with Fauna Program .

This article focuses on the tutorial steps in building a Rest API using the Java Programming framework (Spring Boot), Maven, and Fauna. We used Fauna as our database to save our information and integrated this into our Spring Boot project. We also outlined these steps to make it easy for beginners to follow through and implement the same using these steps when working on a similar project. The Rest API is more suitable for server-side API rendering. Hence, the REST API is a valuable architectural style for microservices because of its simplicity, scalability and flexibility. In microservice architecture, each application is designed as an independent service from the other. We recall that microservices rely on small teams to deploy and scale their respective services independently, this makes the REST API an invaluable resource to this architectural style.


To fully understand this part of the tutorial, you are required to have the following:

What is an API?

In the simplest form, an API is the acronym for application programming interface that allows for two or more different applications to talk to each other. Everytime you make use of these applications, the applications on your phone, gadgets or computer connect to the internet and send data to the server. This data retrieved by the server is then interpreted, and some actions are performed and a feedback is sent back to you in a human or readable format. The API also provides a level of security here since each communication entails a small packet of data, the data sharing here only entails that which is necessary. Another additional benefit of RESTful APIs is its Client-Server constraints. This constraint operates on the concept that the client and server side should be separated from each other. This is referred to as separation of concerns which guarantees more efficiency in our application. Therefore, I should be able to make changes on my client side without affecting my database design on the server and vice-versa. This makes our application to be loosely coupled and easily scalable . This article teaches how to create a SpringBoot and Restful API that performs CRUD (Create, Read, Update and Delete) operations by making a database call to a Fauna. The application we will be building in this tutorial is a “task-management app” for users to manage all their daily tasks.

Key Takeaways

Project Setup

To initialize the project we are going to use spring initializer . Enter the maven project properties of the project including the dependencies as shown below and click on the generate button. This will generate a zip file and download it for you. Unzip it and open it in your favorite IDEA and sync the dependencies with Maven.

spring initializer image

For this project we are going to add two dependencies namely:

The EntryPoint of the Application

The beauty of SpringBoot lies in how easy it is to create stand-alone, production-grade spring-based applications that you can "just run". If you open your file.

SpringBoot applications should have an entry point class with the public static void main(String[] args) methods, which is annotated with the @SpringBootApplication annotation and will be used to bootstrap the application. It is the main method which is the entry point of the JVM to run our application. The @SpringBootApplication annotation informs the Spring framework, when launched, to scan for Spring components inside this package and register them. It also tells Spring Boot to enable Autoconfiguration, a process where beans are automatically created based on classpath settings, property settings, and other factors. The @SpringBootApplication annotation has composed functionality from three annotations namely @EnableAutoConfiguration , @ComponentScan , and @Configuration . So we can say it is the shortcut for the three annotations.

Now, we can now run our application. We can do this by either clicking on the play button on our IDEA or running this command: mvn spring-boot:run on our command line. Navigate to the root of the project via the command line and execute the command. Boom! Tomcat started on port 8081 which is the port we configured our application to run.

Maven as a dependency management tool.

The pom.xml file houses the dependencies, Maven plugins in our project. The dependency section simply contains the dependencies we added to our project namely SpringWeb and springfox for documenting our api.

Adding Additional Maven Dependencies

In this section we are going to add additional deficiencies to the project. To do this, we navigate to Maven Repository and search for the Fauna dependency and add it to the dependencies section of the pom.xml file:

Next, we can now proceed to create a database on the Fauna dashboard, and generate a server key and configure FaunaClient in the Spring Boot project. To create a database and server key for our SpringBoot project, we are going to register a Fauna account. To do this, click on this link sign up today and ignore if you have one already. After signup, you get a prompt to create a database like the image below:

image shows Fauna sign-up page

Creating a Fauna API Key

To create a Fauna API Key, you would go to your settings on the Fauna sidebar (at the top left of the screen). This Fauna API key is required to connect the database to our Task_Management_App.

image showing Fauna API keys generation

Configuring Fauna Client

In the resources folder within the src/main folder, open file and add the secret key that you have generated. fauna-db.secret=”your api secret key should be here” Next we need to create a bean creates a single instance of the configuration with the help of the @Scope annotation and inject our api key using the @value annotation.

Project Structure

Our project will be structured into four subpackages: Data: This subpackage will house our Data access layer, which will include our Domain and repository.

Creating The Domain Class

In the data package, create another package called models. Inside the models package, create a class called Task with the following code:

Inside the data package, create a package with the name payloads. This package will have two sub-packages “request” and “response” to handle our request payloads and response payloads respectively.

Request payloads

Inside the request package create an EmployeeRequest class with the following code:

@NotBlank and @notnull : These two annotation checks and validate the fields where they are mapped to ensure the values are not blank and null respectively.

Response payload

Inside the response package create a TaskResponse class with the following code:

The Repository

Inside the data package, create a sub-package called a repository. Then create an interface called “TaskRepository” that extends JpaRepository. The JpaRepository is generic so it takes a model class(Type) and the data type of the primary key. Write the following code in the TaskRepository interface.

Next let’s create a class called FaunaRepository that will contain methods that will allow us to perform the CRUD Operation. We are going to first create an interface that will contain these methods. Let's call the interface Repository .

The above class provides an implementation to the methods defined on the interface. You can look up the Fauna documentation for Java by clicking on this link: Fauna/JVM doc

The TaskService

Create a service package under the taskmanager directory. This package is going to house the business logic. We have divided the service into two, an interface where the methods of our business logic will be declared and a concrete class that implements the interface. Create an interface with the name “taskService" with the following code:

Next, create a TaskServiceImpl class that implements the TaskService interface. Write the following code:

@Service annotation is a specialized form of @Component . With the @Service annotation, the class that is annotated is registered in the application context and accessible during classpath scanning.

The TaskServiceImpl class implemented the TaskService interface by overriding the method and implementing them. The class throws an exception(ResourceNotFoundException- This is the custom exception class we created that extends RunTimeException) where the Id supplied to get a single task does not exist on the database.

The Controller

Create a package called web under the taskmanager package . This package is going to house the APIs controller. Create an TaskController class with the following code:

Documenting your API with Swagger

We already added the io.springfox dependency to the pom.xml. With this dependency we will document the API so that it will be easy for other developers to use it. All is required is to add the following line of code at the class level of our controller as follows:

We added the @ApiResponse annotation from swagger at the class level. As simple as this, our APIs are fully documented. Go to localhost:8081/swagger-ui to access the documentation and test that our APIs are still working properly. Use the Swagger API document at localhost:8900/swagger-ui to add an employee, get, update and delete an employee.


In this article project, we successfully built a Task Management Application using SpringBoot framework and Maven as our dependency management and build tools. We used Fauna as our Cloud datastore. Additionally, we learned how to throw exceptions in our application which ensures that our application is fault-tolerant and resilient. We also learned how to document our API using Swagger . You can clone the project from my GitHub via this link: Task_Management_SpringBoot_Project If you have any questions, don’t hesitate to contact me via any of my socials:

Top comments (0)


Templates let you quickly answer FAQs or store snippets for re-use.

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink .

Hide child comments as well

For further actions, you may consider blocking this person and/or reporting abuse

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git

Building a REST API with AWS Gateway and NodeJS

Xing Wang - Mar 3

osempu profile image

Connect C# to PostgreSQL

Oscar Montenegro - Mar 3

azellaneya profile image

I Read An Article On Burnout, And Now I'm Scared

Azell Lawson - Mar 3

ayomikecharles profile image

TypeScript Cheatsheet Part 1

AyomikeCharles - Mar 3

Once suspended, aidelojep will not be able to comment or publish posts until their suspension is removed.

Once unsuspended, aidelojep will be able to comment and publish posts again.

Once unpublished, all posts by aidelojep will become hidden and only accessible to themselves.

If aidelojep is not suspended, they can still re-publish their posts from their dashboard.

Once unpublished, this post will become invisible to the public and only accessible to aidelojep.

They can still re-publish the post if they are not suspended.

Thanks for keeping DEV Community safe. Here is what you can do to flag aidelojep:

aidelojep consistently posts content that violates DEV Community's code of conduct because it is harassing, offensive or spammy.

Unflagging aidelojep will restore default visibility to their posts.

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Dilip Kola

May 16, 2022

How to design task management system?

We use a Task management system (TMS) across different domains, and it has several variations. Here, we are designing a TMS with the following features.

Main components

Tasks service.

It is an API service that provides different endpoints to do the following actions:

We need to handle various different tasks so it is better organize them as separate queue for each type of task.

Implementation: We can use a Database table to implement a task queue for better flexibility. We can change priority easily and also customize workflows for each type of task, but this also brings the following challenges:

Task Manager

This schedules the tasks by continuously polling the task queues and assigns them to the workers based on their priority, skills, and availability. It also updates the task priority if it is approaching the deadline.

Implementation: When a new task arrives, we can immediately check if we can assign it to any existing workers. Also, when a worker is requesting a new task to work on, we can assign it immediately by checking the current queues. Finally, for resigning tasks, we can use cron-based systems like AWS Event Bridge , Java spring scheduler , etc., to monitor and assign the task to a new worker periodically.

Authentication Service

We can use role-based access control (RBAC) to authenticate the users to their tasks and other resources of the system. We can maintain the users and their associated roles in the database. We should store user passwords in third-party services like AWS Cognito , Firebase , or Microsoft AD for security and extensibility.

User Creation

User Authentication

Task Creation

Fetch the next task

Working on the task

Reassigning the task

This blog doesn’t cover complete design but can give an idea about how you can approach a Task Management system. Let me know if you have any questions or suggestions. Thanks for spending your time on my blog.

More from Dilip Kola

IIT Kanpur | Ex-Amazon | Ex-AWS | Co-founder @Tensult

About Help Terms Privacy

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store

Text to speech

task management system java

task management system java

task management system java

Task Management System

task management system java


This is a web application by which any organization can manage tasks among its employees. This project has various small parts like commenting on task, upload and download files, task forwarding, editing existing and creating new project, task, employee, user and clients etc and crystal reports.

This is a full project. In this project I use C#, SQL Server and various components of ASP.NET. Reader of this article may find this article helpful while using this components.I would like share this whole project with every body with code and descriptions.

Image 1

Project Description:

1. Every project has some number of tasks and employees. All tasks under a project can only be handled by these employees.

2. A task is assigned to only one employee at a time. Task can be forwarded to other employee of that project.

3. An employee can comment on his task, attach file with task, forward the task to other employee of its project and also can download attachment of his task.

4. There are two types of employee, named Admin and User. Both of the type must be an employee.

5. A user can only comment on his task, attach file with task, forward the task to other employee of its project and also can download attachment of his task.

6. An Admin user has some extra privilege including all privilege of a user.

**While creating a project Admin will be a member of the project by default.

**A project can only be closed if its entire tasks are close.

7. All types of user must log in by user ID and password. According to their type there will be different privilege, as discus earlier. 

Using the code

1. Attach the database in your "SQL Server Management Studio Express". 2. Run the application on Microsoft Visual Studio as web site. 3. Locate the database for Crystal Reports. 4. Read "How to.txt" & "Readme.txt"

Project Detail

3 layer architecture.

In this project I use three layer architecture. UI layer collaborate with BLL layer, BLL layer collaborate with DAL layer. I use 3 layer architecture because it gives flexibility. After some time if any change is needed in particular layer I would only change in that layer. That time i will not bother for other layer. Suppose I want to change some business logic I will only consantrat on the business logic layer (BLL). That time i dont need to think about the entire project rather a particular layer. 3 layer architecture also gives more OOP sence in the project. 


Log In & Home page

Every user must login by his user name and password. After clicking on Log in button codes behind the page will call a method of UserManager class,CheckUserIdAndPassword(userID,password), which takes user ID and password as parameter  check it with database if any match found returns user type. If no match found this method will return empty string and which conclude as wrong password.  Code also add a session variable which is user id.

Code behind log in page.

After log in Admin user and user will see different type of home page according to there user type.

Admin home page :

I used two different Master page for two different user type. Admin master page has a manu which provides administrative privilege.


User home page:


Both Master page retrieve the user id from session variable and populate users task and project list.

User home page contains two Bulleted Lists. One lists all projects, other lists all open tasks. Project bulleted list’s display mode is “Text” and task bulleted list’s display mode is “Link button”.

I use the task ID as the value of the items in the bulleted list to find out which task is selected. As bulleted list contains List Items and bulleted list don’t provides selected items value directly, to find the value of bulleted list item (task) is clicked, I use a tricky solution. I use the “BulletedListEventArgs e” which provides data for the System.Web.UI.WebControls.BulletedList.Click event of a System.Web.UI.WebControls.BulletedList control. I save the item that fires the event in a list item variable and get value from it.

This is the main business part of this project.


User can comment on this task. This comment can be use as a note or as an instruction.


Notice that comment is saved with the task.


Upload File

User can also attach file with the task


Notice that file is attached with the task and listed in the right hand side of the picture. Also notice that user insert a comment with this attachment, this will tell who attach the file and what does the attachment do.


Code behind posting a comment and upload a file (attachment).

Download File

A user can download a attachment of the task by clicking on the file in the attachment Bulleted list. This will open a download window. User can save file in his hard disk or open directly. Remember that if user's pc has any "Download Accelerator" installed, it will force to download the .aspx page not the file. So disable "Download Accelerator" (if any) before trying to download any attachment.

Download window.


Selecting location where to download the file


Download complete.


Code behind download a file (attachment).

Forwarding a task

A user can also forward a task to other employees of the project. To forward a task user have to check on the "Forward to check box". While checked a DDL and a new button will appear with text on it "Post & Forward" and "post comment" button will disappear. DLL contains all employees of the project. If user unchecked the "Forward to check box", "Post & Forward" and DDL will disappear and "post comment" button will reappear.

Notice that user is forwarding the task to another employee of the project named "Habibur Rahman". A task can only be forwarded to employees of the same project. Before forward a user must comment on the task telling what to do next or task status. It is also possible to attach a file during forwarding.


After forwarding a task the user is no longer handling the task. So the task will removed from the task list of his home page.


When the new user of the task "Habibur Rahman" log in, he will see the task in his task list.

Notice that user name is different.


The new user can now work on the task.


Code behind forward the task to other employee of the project.

Closing Task

An admin can close any task that is assigned to him. Admin can not close a task that is not assigned to him because any other employee may be working on the task. 

In admin task page, there is a link button for closing the task. If admin want to close the task, he must click on the link button and following page will appear.


After clicking on "Close Task" button, page will redirect to home page and a label appear with task close status.


Code behind closeing a task

All Task (View Only)

An admin can view all tasks (assigned + non-assigned)


Notice the last comment. It is added automatically during closing the task.


Crystal Reports  

This project has five crystal reports and five .aspx page to view it. To view a crystal report in a .aspx page one must use a “CrystalReportViewer” in the .aspx page. In this project every page contain a “CrystalReportViewer” which load the crystal report (.rpt) page.

Crystal reports are

ReportEmployee.rpt --> view all user information ReportProject.rpt --> view all project information ReportTask.rpt --> view all task information TaskHistory.rpt --> view all task history TasksOfProject.rpt --> view all projects and its tasks

Task & Project Report

To view all projects and its tasks click on View Reports --> Tasks And Projects.


This report shows all projects and its tasks, individual task status (open / close), project status.


Task History Report

To view individual task history View Reports -->  Task History


 This report shows individual task history. User can understand who created the task, who forward a task to whom and when.


User Report

To view all user details View Reports --> User. This report shows employee ID, Name, Address, Email ID, Phone number, user type ans number of users.


Project Report

This report view all project information amd status


Task Report

This report views all task informations and status


In every .aspx page code behind page is  

1. Exception 2. SqlException 3. NullReferenceExceptio 4. NonUserEmployeeException 5. OnlyOneAdminException 6. PrimaryKeyException

These are the exceptions I use in this project.


User define exception.

Exception occurs when trying to insert data into DB with existing primary key


User define exception

While trying to change a admin's user type(Admin user to normal user) if admin is only admin user of a project, his user type can not be change because only admin can close task and project if OnlyOneAdmin become normal type then nobody can close task and project at this point this exception occurs.


User defined exception

When trying to get a user type(Admin / Normal) of a employee if employee is not a user this exception occurs.

Note:Not all employee is a user.


Predefined Exception


Exception .

Predefined Exception 

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Comments and Discussions

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

task management system java

Open Source Project Management Tools in Java

Go To XPlanner

Go To Rapla

Go To Memoranda

Activity Manager

Go To Activity Manager

Go To lGantt

Open Workbench

Go To Open Workbench

Go To eHour

Go To TaskBlocks

airTODO - Project Management Tool

Go To airTODO - Project Management Tool

Go To qaManager

Go To Baralga

Go To EmForge


Go To GanttProject

Go To NavalPlan

Go To OpenProj

Go To Plandora

Eclipse Tutorial

Eclipse - Task Management

Managing Tasks

Programmers like to place TODO markers in their code which serves as a reminder for tasks that need to be completed. Comments in the Java code that has the word TODO in them are recognized as task and shown on the marker bar and in the Tasks view.

Task View

An eclipse editor can be used to associate tasks with the file being edited by right clicking on the marker bar and selecting Add Task. In the dialog box that comes up enter the task description and select a priority from the priority drop down list and then click on the OK button.


To remove a task using an Eclipse editor, right-click on the task icon in the marker bar and select the Remove Task menu item.

Opening the Tasks View

To open the Tasks view −

Click on the Window menu and select Show View → Other.

In the filter text box enter Tasks.

Under General , select Tasks.

Show View

Using the Tasks View

The Tasks view can be used to view all the tasks and add tasks not associated with any resource.

Task View

It can also be used to −


  1. Task Management System

    task management system java

  2. Task management system java projects code

    task management system java

  3. Library Management System Project in Java Part 7

    task management system java

  4. Task Management System by awladdeleo

    task management system java

  5. Employee Management System with JAVA GUI JFRAME

    task management system java

  6. python

    task management system java


  1. java project(employee management system)

  2. Question Set 10

  3. Notion Project Management Tutorial (Level: Beginner)

  4. Employee Management System Using Java

  5. Java simple project using mysql database

  6. Agile Management System Java Project


  1. Simple Task Manager In Java With Source Code

    The simple task manager application is a Java project. It allows the user to manage their day by day task report. This is the updated version of

  2. task-management · GitHub Topics

    Java framework for Cadence Workflow Service ... Lightweight library for general purpose task management. java hacktoberfest ... Updated in 13 hours; Java

  3. Task-Management-System/ at master

    A simple task management system for adding to- do lists with tasks implemented in Java. - Task-Management-System/ at master

  4. Building a Task Management Application using Rest API, Spring

    This article focuses on the tutorial steps in building a Rest API using the Java Programming framework (Spring Boot), Maven, and Fauna. We used

  5. How to design task management system?

    Task Queue · Configuration: Task queues holds configuration about tasks like fields, steps, and workflows. · Permissions: We can assign workers to

  6. Task Management System

    Task Management System · 1. Every project has some number of tasks and employees. · 2. A task is assigned to only one employee at a time. · 3. An

  7. javafx ui

    JavaFX Modern UILearn how to design a modern JavaFX UI design from scratch using Netbeans and Scene Builder.A sample application with

  8. Simple Task Manager In Java

    If you like this projects don't forget to download the source code by clicking on the link below: Download it for educational purposes

  9. Open Source Project Management Tools in Java

    Open Source Project Management Tools in Java · XPlanner · BORG · Rapla · Memoranda · MPXJ · Activity Manager · lGantt · Open Workbench

  10. Eclipse

    Programmers like to place TODO markers in their code which serves as a reminder for tasks that need to be completed. Comments in the Java code that has the word