To-Do List Application

Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

SOFTWARE CONSTRUCTION AND MAINTENANCE

FINAL REVIEW

PROJECT TITLE : TO-DO LIST APPLICATION

SLOT: A1
COURSE CODE: SWE2007
FACULTY: SENTHIL KUMAR P
SUBMITTED BY:
RAMYA SREE B -20MIS0065
THIMMAREDDY SIRISHA REDDY -20MIS0168
SUJANA KOLA -20MIS0171
BADIGI SHIVA KUMAR -20MIS0173
REVIEW 1

ABSTRACT:
A to-do list is a list of tasks that need to be completed, typically
organized in order of priority. It is one of the simplest solutions for
task management and provides a minimal and elegant way for
managing tasks a person wishes to accomplish.
Our aim is to design a simple and elegant website for people to keep a
track of the status of their tasks. Making a to-do list is an easy and
important task that everyone should do. The immense satisfaction that
one gets when completing the task and marking it on the list are
incomparable. Moreover, creating a list of tasks ensure you don’t
miss out on anything. It’s a scientific fact that when you write the task
ensure you don’t miss out on anything. It’s a scientific fact that when you
write the tasks that you need to complete, you are even more motivated
to complete it. With this in mind, we come to build
a platform which will help people create their own task list with the help
of modern tools and technologies, we strive to build a minimal and
efficient to-do list which minimizes distractions and helps people achieve
task management with ease and without hassle.

People are finding it harder and harder to remember and manage daily
tasks in this fast-paced world. By creating a to-do list app, users can
create and manage their daily tasks more easily.
▪ Capture the person’s daily tasks.
▪ Plan and execute simple actions.
▪ Prioritize, manage, and reason about tasks.
▪ Record notes, action items and ideas.
INTRODUCTION :

To-Do List project is an application specially built to keep track of tasks


that need to be done. This application will be like a task keeper where
the user would be able to enter the tasks that they need to do. Once
they are done with their tasks,they can mark the tasks as done and they
remove them from the list
To-Do-list-app is an application that allows to manage a list of tasks to
do. It performs adding, updating, deleting and toggling state of each
task. It has minimalistic design and basic functionality.

• You can add the tasks that are to be done in a descriptive way.
• You will be able to add as many tasks as you have.
• Once the task is completed, user will be able to mark the
completed tasks and can remove it by clicking on “clear
Completed tasks” button.

MODULES:
❖ Adding new task.
❖ Editing new task.
❖ Deleting new task.
❖ Check In completed task.
❖ Today List.
❖ Adding Future Tasks.
USE CASE DIAGRAM:

CLASS DIAGRAM:
SEQUENCE DIAGRAM:
LITERATURE SURVEY:
1) Link: Free Essay: Literature Survey - 1873 Words | Studymode
Author: Rosa L. Coley
Content: In their study, Grant, Richardson, and Forsten
(2000) stated that a 1913 memo from the U.S. Department of
interior touted that looping as one as one of the most
important issues facing urban schools: “Shall teachers in
graded schools be advanced from grade to grade with their
pupils through a series of two, three, four or more years so
that they may come to know the children they teach and be
able to build the work of the latter years on that of the earlier
years, or shall teachers be required to remain year after year in
the same grade while the children, promoted from grade to
grade, are taught by a different teacher every year? Because
many elementary school teachers spend most of their careers
assigned to one grade level, they tend to be thought of as
specialists in that grade level rather than as specialist of
teaching children.” (Grant, Richardson, & Forsten, 2000, In the
Loop).

2)Link: Literature Review On Java Development - 1416 Words |


123 Help Me
Author: Berzal
Content: Berzal (2005) investigated on the tools and
frameworks that are available for Java application development.
This was to explore the merits and demerits of tools and
frameworks. This researcher made good review of various
frameworks in Java platform. The frameworks include Struts,
Tapestry, WebWork, InternetBeans Express, Velocity and
Cocoon. The purpose of these frameworks is to help developers
build web applications systematically. They all support the
design pattern Model-View-Controller (MVC) (Berzal, 2005).
3)Link: Literature Review On Java Development - 1416 Words |
123 Help Me
Author: Leff and Reyfield
Content: Leff & Reyfield (2001) explored MVC more in the
context of web application developing using Servlets and JSP
technologies. They investigated the usage, advantages of using
MVC in web application development. MVC can provide clear
separation of layers promoting reusability, scalability and
availability besides minimizing maintenance costs.

4)Link:
http://shodh.inflibnet.ac.in:8080/jspui/bitstream/123456789/
2760/3/03_%20literature%20review.pdf

Author: Kaun C.Chen


Content: According to author the number of studies
conducted on object oriented analysis which has made direct
comparisons between OO and some other methods. Author
compared the quality of designs and solutions for various
projects using three different types of systems development
methodologies: procedural, data-oriented (Jackson Systems
Development, or JSD), and object-oriented. The result has
somewhat encouraging to object oriented analysis.
5) Link:
http://shodh.inflibnet.ac.in:8080/jspui/bitstream/123456789/
2760/3/03_%20literature%20review.pdf
Author: Boehm, Davis and Ross
Content: The aims of this study to introduce the
characteristics of procedure based and object-oriented
language. It also shows the performance between these two
programming languages. It tests only basic operations over the
other concepts not contain complex operations. They calculate
runtime performance of different OOP and procedure based
operations using C++. The goal of this research to build
business application for comparisons of programming
languages.

PROGRAMMING LANGUAGES AND TOOLS:


NetBeans is an integrated development environment for Java.
NetBeans allows applications to be developed from a set of modular
software components called modules. NetBeans runs on Windows,
macOS, Linux and Solaris.
PROGRAMMING STYLES:
Programming style, also known as code style, is a set of rules or
guidelines used when writing the source code for a computer
program. It is often claimed that following a particular programming
style will help programmers read and understand source code
conforming to the style, and help to avoid introducing errors.
Indentation is used to make a program's structure clear. The
fundamental rule is that sub-statements of a statement or
declaration must be indented.
We prefer to use an opening curly brace "" at the end of a line rather
than on its own, as shown below. The closing brace "" is indented on
its own line, as shown below.
Comments:
They are included to make the source code easier for developers to
understand.
Comments can be made for a variety of reasons, such as explaining a
code block, making a suggestion, or fixing bugs, among others.

Conventions for Naming (Method Name):


In most cases, method names begin with a lowercase letter. A call to
a procedure is a command to do something, so the name of the
procedure is usually a verb phrase that is a command to do
something.
Method specifications:
Every method should be preceded by a blank line and then a Javadoc
specification that describes what the method does, along with
preconditions ---constraints on the arguments of a call. In order to do
this properly, the specification must mention each parameter,
indicating what it is for.

GUI AND DESIGN:


GUI DESCRIPTION:
This GUI design was designed using Java swing.
Swing in java is part of Java foundation class which is lightweight and
platform independent. It is used to creating window based
applications. It includes components like button , scroll bar,text field
etc.. putting together all these components makes a graphical user
interface.
In this form we have used uses various types of palette which
includes jbutton, jLabel .

PROFILING:
Profiling is the process of examining an application to locate memory
or performance-related issues.

In this system, we are using JAVA as the programming language so


the profiling must support the java therefore we selected JProfiler as
the profiling tool.
JProfiler, it can be used to analyze
● performance bottlenecks
● memory leaks
● CPU loads and
to resolve threading issues.
LIVE MEMORY OF ALL OBJECTS:

PROFILING STATUS USING JProfiler:


UNIT TESTING USING Junit TOOL:
The IDE runs all the test classes in the Test Packages. To run an individual
test class, right-click the test class under the Test Packages node and
choose Run File.
Exception Handling:
The try-catch statement consists of a try block followed by one or
more catch clauses, which specify handlers for different
exceptions.Try/catch blocks allow a program to handle an exception
gracefully in the way the programmer wants them to. For example,
try/catch blocks will let a program print an error message (rather
than simply crash) if it can't find an input file. Try blocks are the first
part of try/catch blocks.
Performance Analysis:
Performance analysis looks at how a specific program is performing
on a basis of
• Complexity of the code
• Depth of the code
• Average use of methods and statements
And many more, for this mock registration system we are analyzing
the performance of the code by using the tool Source monitor, in
which our mock registration code is written in JAVA-programming
language.
Performance analysis from Source Monitor

MINIMIZE COMPLEXITY:
Complexity reduction helps to simplify your strategy, organization,
products, processes and information technology. Reducing complexity
aims at removing unnecessarily complex processes which hinder
change, speed,growth or increase cost.

Complexity reduction forces you to rethink products and processes


from a customer point of view. The combination of lean and agile
product lines, simplified end-to-end processes and a business-
oriented portfolios, enables companies to growth faster. Complexity
reduction goes beyond cost cutting.

Radical complexity reduction enables you to:


▪ Understand the sources of complexity, their interdependences
and potential trade-offs for specific products or services.
▪ Identify opportunities to simplify products, organizational
structures, business processes and information systems.
▪ Strengthen your focus on customer needs while maintaining an
effective top-down management approach.
▪ Re-consider effects of complexity or organically grown,
bureaucratic structures for innovation capabilities and new
business development opportunities.
▪ Simplify decision making by clarifying roles and processes

Effective complexity reduction eliminates hidden cost, improves quality


of products and services and forces an in-depth understanding of
problems and customer needs.

TOOLS: SOURCE MONITOR


: | '* ^, ' | 6. *4I ' i '- I ?¿
' Lines | stalemenls | Branches ; Calls | °A Comments | classes Melhods/olass | Ayg Stmls/Method | Max Complexit.y Max Depth | Avg Deplfi ' Avg complexity :

0.00
S0’0 -' 2 1.3d 1'.00-
2 1:00 0.00*
classes\TbOo.List.java 8‘ 5 0.0 {’ 0.60 1’.OO’

25

.6

A.33
A-.33
0.00
5.0’0
ñassesTileBarlava )6’ 13 0.0

S:0
FIGMA (DETAILED DESIGN) :-
Login :-
Dashboard/Tasks :- One can view his/her added tasks
9:41

Scam DA
9:00

Design Patterns DA
10:00

Soft Computing quiz


11:00

Spm review
9:00

Calenclai Driscbin ozificotion Profile


For editing/deleting the task
For attaching files, notifications alerts, etc
Calendar :-
Deleted tasks :-
Safety and Hazard review
9:00

OOAD LAB
10:00

Profile
Reloading the task from the deleted module
Notifications :-
Creating profile :-
CODE:
APP FRAME:
/*
* Click
nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-
default.txt to change this license
* Click
nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to
edit this template
*/
package todolist;
/**
*
* @author ramya
*/
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
public class AppFrame extends JFrame{
private TitleBar title;
private Footer footer;
private List list;
private JButton newTask;
private JButton clear;

AppFrame()
{
this.setSize(400,700);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);

title = new TitleBar();


footer = new Footer();
list = new List();

this.add(title,BorderLayout.NORTH);
this.add(footer,BorderLayout.SOUTH);
this.add(list,BorderLayout.CENTER);

newTask = footer.getNewTask();
clear = footer.getClear();

addListeners();
}
public void addListeners()
{
newTask.addMouseListener(new MouseAdapter()
{
//@override
public void mousePressed(MouseEvent e)
{
Task task = new Task();
list.add(task);
list.updateNumbers();
task.getDone().addMouseListen
er(newMouseAdapter()

{
//@override
public void mousePressed(MouseEvent e)
{

task.changeState();
list.updateNumbers();
revalidate();

}
});
}
});

clear.addMouseListener(new MouseAdapter()
{
//@override
public void mousePressed(MouseEvent e)
{
list.removeCompletedTasks();
repaint();
}

});
}

//private void add(TitleBar title, String NORTH) {


// throw new UnsupportedOperationException("Not supported
yet."); // Generated from
nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/Generate
dMethodBody
}

//}
//this.add(title,BorderLayout.NORTH);
//EXCEPTION FOUND
// private void add(TitleBar title, String NORTH) {
// throw new UnsupportedOperationException("Not supported
yet."); // Generated from
nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/Generate
dMethodBody
*/
package todolist;

/**
*
* @author ramya
*/
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.border.Border;
public class Footer extends JPanel{

JButton addTask;
JButton clear;

Border emptyBorder = BorderFactory.createEmptyBorder();


Footer()
{
this.setPreferredSize(new Dimension(400,60));

addTask = new JButton("Add Task");


addTask.setBorder(emptyBorder);
addTask.setFont(new Font("Sans-serif",Font.PLAIN, 20));
addTask.setVerticalAlignment(JButton.BOTTOM);
//addTask.setBackground(Color.white);
this.add(addTask);

this.add(Box.createHorizontalStrut(20));//Space between
buttons
clear = new JButton("Clear finished tasks");
clear.setFont(new Font("Sans-serif",Font.PLAIN, 20));
clear.setBorder(emptyBorder);
//clear.setBackground();
this.add(clear);
}

public JButton getNewTask(){


return addTask;
}
public JButton getClear() {
return clear;
}
}

LIST:
/*
* Click
nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-
default.txt to change this license
* Click
nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to
edit this template
*/
package todolist;

import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JPanel;

/**
*
* @author ramya
*/public class List extends JPanel{ List()
{

GridLayout layout = new GridLayout(10,1);


layout.setVgap(5);

this.setLayout(layout);
this.setPreferredSize(new Dimension(400,560));

public void updateNumbers()


{
Component[] listItems = this.getComponents();

for(int i = 0;i<listItems.length;i++)
{

if(listItems[i] instanceof Task)


{
((Task)listItems[i]).changeIndex(i+1);
}
}

}
public void removeCompletedTasks()
{

for(Component c : getComponents())
{
if(c instanceof Task)
{
if(((Task)c).getState())
{
remove(c);
updateNumbers();
}
}
}
TASK:
/*
* Click
nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-
default.txt to change this license
* Click
nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to
edit this template
*/
package todolist;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
*
* @author ramya
*/
public class Task extends JPanel{
JLabel index;
JTextField taskName;
JButton done;
private boolean checked;
Task()
{
this.setPreferredSize(new Dimension(400,20));
this.setBackground(Color.red);

this.setLayout(new BorderLayout());
checked = false;
index = new JLabel("");
index.setPreferredSize(new Dimension(20,20));
index.setHorizontalAlignment(JLabel.CENTER);
this.add(index,BorderLayout.WEST);
taskName = new JTextField("Enter Task");
taskName.setBorder(BorderFactory.createEmptyBorder());
taskName.setBackground(Color.red);
this.add(taskName,BorderLayout.CENTER);
done = new JButton("Done");
done.setPreferredSize(new Dimension(40,20));
done.setBorder(BorderFactory.createEmptyBorder());
done.setFocusPainted(false);
this.add(done,BorderLayout.EAST);

}
public void changeIndex(int num)
{
this.index.setText(num+"");
this.revalidate();
}
public JButton getDone()
{
return done;
}
public boolean getState()
{
return checked;
}
public void changeState()
{
this.setBackground(Color.green);
taskName.setBackground(Color.green);
checked = true;
revalidate();
}
}
/*class TaskAlreadyFoundException extends Exception{
public TaskAlreadyFoundException(){
super("there is already an existing task");
}
}
public static Task[] takeInput()throws Exception{
Task[] taskName=new taskName[1000];
for(int i=0;i<1000;i++)
{
System.out.println("Enter task name")
if(taskName==new taskName)
{
throw new TaskAlreadyFoundException();
}
}
}
public static void main(String[] args){
try{
if taskName==takeInput();
catch(Exception e)
System.out.println("Error Found");
e.printStackTrace();
}
}
*/

TASKBAR:
/*
* Click
nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-
default.txt to change this license
* Click
nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to
edit this template
*/
package todolist;
/**
*
* @author ramya
*/
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class TitleBar extends JPanel{

TitleBar()
{
this.setPreferredSize(new Dimension(400,80));
JLabel titleText = new JLabel("To Do List");
titleText.setPreferredSize(new Dimension(200,60));
titleText.setFont(new Font("Sans-serif",Font.BOLD, 20));
titleText.setHorizontalAlignment(JLabel.CENTER);
this.add(titleText);
}
}
//EXCEPTION
// private void setPreferredSize(Dimensions dimensions)
//{
// throw new UnsupportedOperationException("Not supported
yet.");
//}

TODO LIST:
/*
* Click
nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-
default.txt to change this license
* Click
nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to
edit this template
*/
package todolist;

/**
*
* @author ramya
*/
import javax.swing.JFrame;
public class ToDoList {
public static void main(String args[])
{
AppFrame frame = new AppFrame()
}
}
OUTPUT :-
To Do List To Do List

Add Task Clear finished tasks Add Task Clear finished task
CONCLUSION:
Succeeding in today’s work environment is tough. There are too
many projects and tasks to manage. With new things popping up
and your personal commitments, things can get overwhelming.
Add the huge amount of distractions and you’re in for a difficult
climb up the ladder of success.

Having a to-do list can make things much easier. Whether you’re
looking to achieve more of your goals or controlling your time
better, a to-do list will help you. You can get a positive boost to
your career by becoming the person who is always on top of things
and feel good every day.
REFERENCES:
• todo-list-app
• To Do List: Its Benefits and Assets for Business | Hygger.io
• Case study: A Simple Todo App. I was recently fortunate to be able to… | by ann chichi |
Medium

You might also like