Ip Project - To-Do-List

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

Content

1.Introduction.
2.Objectives.
3.Uses of the programming 4.language .
5.Modules used.
6.System requirements.
7.Working description.
8.Flow of execution.
9.Code.
10.Output screens.
11.Scope of execution.
12.Conclusion.
13.Bibliography.
Introduction
Welcome to the "To-Do List" application, a
user-friendly and efficient software designed to help
individuals organise their tasks .
In our fast-paced lives, juggling multiple
responsibilities and commitments can be challenging,
so having a to-do list may help you prioritise your
work and personal tasks.
This allows you to organise and complete the most
crucial tasks first. To-do lists can be used to improve
time management because all of your tasks are laid
out clearly in advance.
Objectives

Task organisation: This project provides a clear


overview of all the tasks you need to accomplish,
helping you stay organised and preventing things
from slipping through the cracks.

Goal tracking: To-do lists can be used to break


down large goals into smaller, actionable tasks,
making it easier to track progress and work towards
achieving those goals.

Daily planning: Creating a daily to-do list allows


you to plan your day in advance, making sure we
have a clear roadmap and minimising wasted time.

Task delegation: If we are working with a team


or collaborating with others, a to-do list can help
delegate tasks and track their completion.

Time Management: We can allocate our time more


efficiently throughout the day. This prevents
overloading yourself with tasks and helps you
realistically plan your schedule.
Mental Well-being: Include tasks related to
mindfulness, meditation, journaling, or other activities
that promote mental health.

Accountability: A to-do list holds you


accountable for completing tasks you've set out to
do, as you can check off items as they're done.

Flexibility: To-do lists can be adapted and


adjusted as circumstances change, allowing you to
accommodate new tasks or changes in priorities.
Uses of the programming language

We have used the programming language Python.


Python is a case-sensitive, high level and a
widely-used programming language known for its
simplicity and readability.
Python's design philosophy emphasises code
readability and a clear, straightforward syntax, which
makes it an excellent choice for both beginners and
experienced developers.

● Readable and Elegant Syntax: Python's


syntax is designed to be easy to read and write,
resembling natural language, which makes it
accessible for programmers of all skill levels.

● Interpreted Language: Python is an


interpreted language, meaning that the code is
executed line by line by an interpreter without the
need for compilation. This allows for quicker
development and testing.

● Dynamically Typed: Python is dynamically


typed, which means you don't need to declare
variable types explicitly. Variables can change
their type during runtime.
● Large Standard Library: Python comes
with a comprehensive standard library that
provides modules and functions for a wide range
of tasks, from web development to data analysis,
networking, and more.

● Cross-Platform Compatibility: Python is


available on various platforms (Windows,
macOS, Linux), allowing developers to write
code that can run on different operating systems
without major modifications.

● Open Source: Python is an open-source


language, which means its source code is freely
available and can be modified and distributed by
anyone.
Modules used
● tkinter: It is used for creating the graphical
user interface (GUI) for the "To-Do List"
application.

● tkinter.messagebox: It is a submodule of
tkinter and is used to display popup message
boxes

● pickle: It is used for serialising and
deserializing Python objects, allowing tasks to be
saved and loaded from a file.

● random: It is used to randomly select an
inspirational quote from the quotes list.
System requirements
Operating System: 64-bit Microsoft® Windows®
11, 10 or Apple macOS
RAM: 4 GB
Processor: 2,5 GHz
Disk Space: 5 GB free (suggested SSD)
Display Resolution: 1920 x 1080 with True
Color or higher
Display Card: 1 GB GPU with 29 GB/s Bandwidth
and DirectX 11 compliant
Working description
GUI Setup:
● The application's main window is created with a
fixed size of 400x600 pixels and a title "To-Do
List."

Add Task:
● Users can enter a task description in the input
field and select a category from the dropdown
menu.

Delete Task:
● Users can select a task from the listbox by
clicking on it and remove the selected task from
the listbox.

Load Task:
● Clicking the "Load Task" button loads previously
saved tasks from a file named "task.txt" and
displays them in the listbox.
Save Task:
● Clicking the "Save Task" button saves the current
list of tasks in the listbox to a file named
"task.txt."

Show Inspiration:
● Clicking the "Show Inspiration" button displays a
random inspirational quote in a popup message
Flow of execution
Code
import tkinter
from tkinter import *
import tkinter.messagebox
import pickle
import random

root = tkinter.Tk()
root.geometry("400x600")
root.resizable(False, False)
root.title("To-Do List")

quotes = [
"The future belongs to those who believe in the
beauty of their dreams. - Eleanor Roosevelt",
"Believe you can and you're halfway there. -
Theodore Roosevelt",
"The only limit to our realisation of tomorrow will be
our doubts of today. - Franklin D. Roosevelt",
"Your time is limited, don't waste it living someone
else's life. - Steve Jobs",
"Success is not final, failure is not fatal: It is the
courage to continue that counts. - Winston Churchill"
]

task_categories = ["Groceries", "Studies", "Health",


"Finance", "Work"]

def show_inspiration():
random_quote = random.choice(quotes)
tkinter.messagebox.showinfo(title="Inspiration",
message=random_quote)

def add_task():
task = entry_task.get()
category = category_variable.get()
try:
if task != "":
listbox_tasks.insert(tkinter.END, f"{task} -
[{category}]")
entry_task.delete(0, tkinter.END)
except:

tkinter.messagebox.showwarning(title="Warning!",
message="You must enter a task")

def delete_task():
try:
task_index = listbox_tasks.curselection()[0]
listbox_tasks.delete(task_index)
except:

tkinter.messagebox.showwarning(title="Warning!",
message="You must select a task")

def load_task():
try:
tasks = pickle.load(open("D://task.txt", 'rb'))
listbox_tasks.delete(0, tkinter.END)
for task in tasks:
listbox_tasks.insert(tkinter.END, task)
except:

tkinter.messagebox.showwarning(title="Warning!",
message="Cannot find task.txt")

def save_task():
tasks = listbox_tasks.get(0, listbox_tasks.size())
pickle.dump(tasks, open("D://task.txt", 'wb'))

frame_tasks = tkinter.Frame(root)
frame_tasks.pack()

listbox_tasks = tkinter.Listbox(frame_tasks,
height=25, width=50)
listbox_tasks.pack(side=tkinter.LEFT)
scrollbar_tasks = tkinter.Scrollbar(frame_tasks)
scrollbar_tasks.pack(side=tkinter.RIGHT,
fill=tkinter.Y)

listbox_tasks.config(yscrollcommand=scrollbar_tasks
.set)
scrollbar_tasks.config(command=listbox_tasks.yview
)

entry_task = tkinter.Entry(root, width=50)


entry_task.pack()

button_add_task = tkinter.Button(root, text="Add


Task", width=48, command=add_task)
button_add_task.pack()

button_delete_task = tkinter.Button(root, text="Delete


Task", width=48, command=delete_task)
button_delete_task.pack()
button_load_task = tkinter.Button(root, text="Load
Task", width=48, command=load_task)
button_load_task.pack()

button_save_task = tkinter.Button(root, text="Save


Task", width=48, command=save_task)
button_save_task.pack()

category_variable = tkinter.StringVar(root)
category_variable.set(task_categories[0])

category_dropdown = tkinter.OptionMenu(root,
category_variable, *task_categories)
category_dropdown.pack()

button_show_inspiration = tkinter.Button(root,
text="Show Inspiration", command=show_inspiration)
button_show_inspiration.pack()

root.mainloop()
Output screen
GUI setup

Add and load tasks

Displays inspirational quotes


Scope of execution
We are actively seeking to enhance our to-do list
application by further emphasising specific aspects
that can augment its functionality, streamline its
usability, and infuse an element of enjoyment. Our
ongoing focus revolves around refining the user
experience, optimising ease of interaction, and
introducing elements of gamification to ensure that
utilising our to-do list becomes not only an efficient
task management solution but also an engaging and
satisfying endeavour.

We would like to improve our code

1. Customization: Allows the users to customise the


to do list to their own liking by changing the colours,
themes and layouts of their to do list.

2. Budget management: Allows the user to keep track


of their finance and keep a track of their bills.
3. Prioritisation: Allows the user to prioritise the task
from most important to least important.

4. Mark when task completed: Allows the user to mark


the task when it is completed.

5. Dead-lines: Allows the user to estimate a particular


time when the task should be completed.

6. Reminders: Provides the user with timely


notification as the dead-line approaches.

7. Pomodoro clock: Adds a timer for which a user can


focus and complete their tasks with breaks in
between.

8. Data Visualization: Displays user data in visual


appealing graphs and charts for better
understanding.
9. Voice assistants: Enable integration with
voice-activated virtual assistants for hands-free task
management.

10.Automated Task Creation : Allow users to create


tasks automatically based on triggers, events, or
specific conditions.
Conclusion
● In summary, the "To-Do List" app helps you stay

organised by managing your tasks With its

easy-to-use interface, you can add, delete, and

prioritise tasks. Plus, it gives you a motivational

boost with random inspirational quotes. It's a

helpful tool to improve your productivity and keep

everything in order.

● We learned about Tkinter, an important GUI

library in Python, and various widgets that it

offers to manipulate and get the desired tasks

done through this python to-do list project. We

also learned about the basics of python

programming and in this way we have been


successful in building our very own To-do list

app.
Bibliography

1. https://www.google.com/

2. https://pythontutor.com/

3. https://replit.com/new/python3.

4. https://stackoverflow.com/

5. Computer science with python by Sumita Arora

You might also like