You are on page 1of 17

TO DO APP

Project submitted to the


SRM University – AP, Andhra Pradesh
for the partial fulfillment of the requirements to award the degree of

Bachelor of Technology/Master of Technology


In
Computer Science and Engineering
School of Engineering and Sciences

Submitted by

SWETHA MAGESH - AP21110011140

Under the Guidance of

Mohammad Miskeen Ali


TABLE OF CONTENTS:-

Certificate
Introduction
Acknowledgement
Some salient features
Modules
Description
Code
Output
Conclusion
Hardware and software requirements
CERTIFICATE:-

This is to certify that the work present in this Project entitled “TO DO
APP” has been carried out by Noore hera , Swetha magesh , Likhit kumar ,
Jaya sri Lakshmi under our supervision. The work is genuine, original, and
suitable for submission to the SRM University – AP for the award of Bachelor
of Technology in School of Engineering and Sciences.

Supervisor
(Signature)
Prof. / Dr. Mohammad Miskeen Ali Lecturer,
SRM University AP.

INTRODUCTION:-
- To-Do Lists are actually a list of daily tasks that a person keeps to remind
themselves of the tasks they  have to accomplish that day. 
- A few of the features of a good to-do list application include:·Plan and execute
simple actions.·Prioritize, manage, and reason about tasks.·Record notes, action
items and ideas.
- In this project, we are going to make a GUI based 
python to-do list with options to add and delete items in 
your list.

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. 
 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.

ACKNOWLEDGEMENT:-
I am overwhelmed in all humbleness and gratefulness to acknowledge those who
have helped me to put these ideas, well above the level of simplicity and into
something concrete.
I’d like to thank my professor, Mr. Mohammed Miskeen Ali who has given me this
opportunity to do this project and thereby improve my knowledge. I whole -
heartedly would like to thank the college management and the lab assistants for
guiding me and helping me throughout this project and my research on this project.
I’d also like to thank my parents and friends for helping me in acquiring and making
me understand the concpet of this project and for giving me the motivation and
encouragement in doing this project.

Some salient features are …

1.Create, assign, organize, prioritize and share tasks.


2.Schedule recurring meetings.
3.Create and schedule recurring tasks.
4.Manage tasks and to do lists with Kanban Boards.
5.Create and assign projects.
6.Comment on and assign tasks to projects or structure them independently.
7.Convert comments to tasks using Slack.
8.Select from multiple statuses for a task.
9.Alerts, notifications, and reminders to keep teams on track.
10.Two-Factor Authentication for extensive security.
11.A simple user interface with access to a wide range of modules.
12.Team-specific workspaces that can be managed and monitored simultaneously.
13.Extensive project management resources including project reports, Gantt charts,
and project timelines to manage and monitor project progress.
14.A dedicated time tracking module with the option of creating and managing
team-specific sections for employee task efforts and payroll.
15.A detailed meeting management module to help teams stay in sync. You can
arrange and schedule meetings, be it one-time or recurring meetings. Plus, it lets you
send invites to attendees, add meeting details and specify follow-up procedures.
16.Issue management module to facilitate the identification and listing of issues
related to multiple tasks. You can list down the issue along with the Issue owner and
relevant details to track issue maintenance.
17.Risk management module helps you identify and keep track of potential risks.
You can list down the risk and assign a risk owner in order to track risk
management.
18.Powerful search and filter tools that help you search for tasks, projects, meetings,
issues, and risks. You can even save more frequently used filters.
19.Third-party integration with Zapier, Zoom, Google Calendar, Slack, and more.
iOS and Android mobile apps.

Modules:-

To build python to-do list project, we will only need the Tkinter module to create the
GUI, which comes preinstalled with Python. 
To create a tkinter : 
Importing the module – tkinter 
 Create the main window (container) 
Add any number of widgets to the main window.
• Apply the event Trigger on the widgets. To initialize the to-do list window, you
need to initialize the Tk() class to a variable. Then, you need to set the following
attributes:   - title() method is used to give a title to the project window. 
- geometry() method is used to set the initial geometry of window. 
- padx, pady −
How many pixels to pad widget, horizontally and vertically, outside v's borders. 
The row to put widget in; default the first row that is still empty - sticky -
option specifies which edge of the cell the widget should stick to.
configure() method is used to configure some extra attributes of the
window, like bg or background to set the background color.
mainloop() method is used to put the window in a loop to prevent it from closing
nanoseconds after it opens.
 - label() is used to create a label that displays the static screen on the window and
set the following parameters to it: 
- master attribute, positional argument root in this case, is used to specify the parent
widget of the widget. - 
text attribute is used to mention the text that will be displayed on the label. 
- font is used to specify the font family, size and effects on the text. 
- Button class is used to create a button on the screen that executes a function as a
command when pressed. You need to give it the parameters as mentioned in the
code to add it to the screen. 
-In the insertTask() function, the user will give it to arguments, one an Entry object
and the other a Listbox object. In this function, we will give the Entry object’s
userprovided text to a variable and then insert that variable to the last of our listbox
object.
 - In the delete() function, the user will give the function one argument that will be a
listbox object. In this function, we will delete the item selected in the listbox object.
We will first remove that element from the list of tasks to do

Description:-

PURPOSE:-
The main purpose of a to do list is to provide yourself with a list of your
priorities in order to ensure that you don't forget anything and are able to
effectively plan out your tasks so that they are all accomplished in the correct time
frame.

Goal:-
The goal of the TO-DO APP is to keep remainder for the works to be done or
to prioratize the works in a separate app so the person can be remainded to do that
work in time

Code:-

# import all functions from the tkinter


from tkinter import *

# import messagebox class from tkinter


from tkinter import messagebox
# global list is declare for storing all the task
tasks_list = []

# global variable is declare for counting the task


counter = 1

# Function for checking input error when


# empty input is given in task field
def inputError() :

# check for enter task field is empty or not


if enterTaskField.get() == "" :

# show the error message


messagebox.showerror("Input Error")

return 0

return 1

# Function for clearing the contents


# of task number text field
def clear_taskNumberField() :

# clear the content of task number text field


taskNumberField.delete(0.0, END)

# Function for clearing the contents


# of task entry field
def clear_taskField() :
# clear the content of task field entry box
enterTaskField.delete(0, END)

# Function for inserting the contents


# from the task entry field to the text area
def insertTask():

global counter

# check for error


value = inputError()

# if error occur then return


if value == 0 :
return

# get the task string concatenating


# with new line character
content = enterTaskField.get() + "\n"

# store task in the list


tasks_list.append(content)

# insert content of task entry field to the text area


# add task one by one in below one by one
TextArea.insert('end -1 chars', "[ " + str(counter) + " ] " + content)

# incremented
counter += 1
# function calling for deleting the content of task field
clear_taskField()

# function for deleting the specified task


def delete() :

global counter

# handling the empty task error


if len(tasks_list) == 0 :
messagebox.showerror("No task")
return

# get the task number, which is required to delete


number = taskNumberField.get(1.0, END)

# checking for input error when


# empty input in task number field
if number == "\n" :
messagebox.showerror("input error")
return

else :
task_no = int(number)

# function calling for deleting the


# content of task number field
clear_taskNumberField()
# deleted specified task from the list
tasks_list.pop(task_no - 1)

# decremented
counter -= 1

# whole content of text area widget is deleted


TextArea.delete(1.0, END)

# rewriting the task after deleting one task at a time


for i in range(len(tasks_list)) :
TextArea.insert('end -1 chars', "[ " + str(i + 1) + " ] " + tasks_list[i])

# Driver code
if __name__ == "__main__" :

# create a GUI window


gui = Tk()

# set the background colour of GUI window


gui.configure(background = "light blue")

# set the title of GUI window


gui.title("To-Do")

# set the configuration of GUI window


gui.geometry("295x300")

# create a label : Enter Your Task


enterTask = Label(gui, text = "Enter Your Task", bg = "light blue")

# create a text entry box


# for typing the task
enterTaskField = Entry(gui)

# create a Submit Button and place into the root window


# when user press the button, the command or
# function affiliated to that button is executed
Submit = Button(gui, text = "Submit", fg = "Black", bg = "Red", command =
insertTask)

# create a text area for the root


# with lunida 13 font
# text area is for writing the content
TextArea = Text(gui, height = 5, width = 25, font = "lucida 13")

# create a label : Delete Task Number


taskNumber = Label(gui, text = "Delete Task Number", bg = "black")

taskNumberField = Text(gui, height = 1, width = 2, font = "lucida 13")

# create a Delete Button and place into the root window


# when user press the button, the command or
# function affiliated to that button is executed .
delete = Button(gui, text = "Delete", fg = "Black", bg = "blue", command =
delete)

# create a Exit Button and place into the root window


# when user press the button, the command or
# function affiliated to that button is executed .
Exit = Button(gui, text = "Exit", fg = "Black", bg = "Red", command = exit)

# grid method is used for placing


# the widgets at respective positions
# in table like structure.
enterTask.grid(row = 0, column = 2)

# ipadx attributed set the entry box horizontal size


enterTaskField.grid(row = 1, column = 2, ipadx = 55)

Submit.grid(row = 2, column = 2)

# padx attributed provide x-axis margin


# from the root window to the widget.
TextArea.grid(row = 3, column = 2, padx = 30, sticky = W)

taskNumber.grid(row = 4, column = 2, pady = 5)

taskNumberField.grid(row = 5, column = 2)

# pady attributed provide y-axis


# margin from the widget.
delete.grid(row = 6, column = 2, pady = 5)

Exit.grid(row = 7, column = 2)

# start the GUI


gui.mainloop()
Output
CONCLUSION:
 The to-do app developed for this project is meant to be a minimal, free and
open source application that can help improve the productivity of a user
without taking anything. It aims to solve at least some of the problems
discussed earlier.

Hardware and software requirements

Hardware :
 Intel i5 processor or above
 Minimum 6gb RAM
 Minimum 512gb SSD

Software :
 Windows 7 (32 bit) or above
 Python 3.8 or above
 Pycharm interpreter

You might also like