Python Report App
Python Report App
A PROJECT REPORT
Submitted by
SHREEYAA SENTHILNATHAN (RA2211008020096)
DHINAKARAN J (RA2211008020114)
BACHELOR OF TECHNOLOGY
in
INFORMATION TECHNOLOGY
NOVEMBER 2023
SRM INSTITUTE OF SCIENCE AND TECHNOLOGY,
RAMAPURAM
BONAFIDE CERTIFICATE
Certified that this project report “TO DO LIST USING PYTHON” is the
bonafide work of “SHREEYAA SENTHILNATHAN
(RA2211008020096), PRAVIN KUMAR D (RA2211008020100),
DHINAKARAN J (RA2211008020114), VANMATHI R.B
(RA2211008020120)” who carried out the 21CSC203P–Advanced
Programming Practice project work under my supervision.
SIGNATURE SIGNATURE
To the grace and generous blessing of God Almighty, I attribute the successful completion
of the 21CSC203P –Advanced Programming Practice Project. It is my duty to respectfully
offer our sincere gratitude to all the people who have kindly offer their valuable support, guidance.
I would like to extend my heartiest thanks to the Management of our college, who provided me
with necessities for the completion of the seminar.
I would like to express my deep gratitude to Dr. K.V. NARAYANAN, our Associate
Director, who has been a source of motivation to all the staffs and students of our college. I feel
highly privileged in making a mention of Dr. M. MURALI KRISHNA (DEAN, E&T) for his
co-operation and help.
I deeply and wholeheartedly thank Dr. RAJESWARI MUKESH (HOD, IT) for her
extreme valuable advice and encouragement. I thank my project coordinator S. SUBBURAJ for
his consistent guidance and mentoring throughout the project phase. Last but not the least, we
thank all others and especially our classmates who in some-way or other helped us in successful
completion of this work.
TABLE OF CONTENTS
ABSTRACT 6
1. INTRODUCTION 7
2. PROBLEM STATEMENT 8
3. SYSTEM REQUIREMENTS 9
4. SYSTEM ARCHITECTURE 10
5. SYSTEM MODULES 11
6. SYSTEM IMPLEMENTATION 13
7. CONCLUSION 16
REFERENCES 20
LIST OF FIGURE NAME
The main abstract of this project Creation Of “To Do List Using Python” is to enable the
Users to maintain and track their Daily Tasks. The Python To Do List is a lightweight and
user-friendly application designed to help individuals organize and manage their tasks
efficiently. This program leverages the power of Python to provide a simple yet effective
solution for task tracking and completion. This gives the users an easier experience to access
their tasks. The Python To Do List application provides an accessible and efficient way to
manage tasks, making it suitable for individuals looking to streamline their daily activities. It
offers a versatile platform for task management and customization while requiring minimal
system resources. The predominant features of this project is to Add Tasks, View Tasks,
In today's digital age, to-do lists have gone beyond pen and paper. There's a wide range of
digital tools and apps available that offer enhanced features like synchronization across devices,
reminders, collaboration, and more. Whether you prefer the simplicity of a physical List or the
convenience of a digital application, there's a to-do list solution to fit your lifestyle and
preferences. In today’s world, tracking and maintaining the tasks to be done by people is a
challenging one. Our project is to make it easier by Creating a To Do List Using Python. This
project of Creating a To Do List Using Python enables the users to maintain their daily tasks in
an easier way. This Application helps the users to track their every task in the most efficient
manner. The Options available for Users in this project are to Add Tasks, Delete Particular
coding, the foundations lie in the utilization of Python's standard libraries. The Tkinter module
in the Python GUI, takes center stage, allowing us to sculpt an intuitive and visually pleasing
interface for our digital application. The predominancy of Tkinter empowers us to create
buttons, checkboxes, and entry fields that seamlessly respond to the user's commands,
transforming the otherwise inert screen into a dynamic canvas awaiting the strokes of
functionality.
This To-Do List project is not just about crafting a functional tool; it's an exploration of
the artistry embedded in Python coding. The balance between simplicity and power, the dance
between abstraction and implementation—all come together to create a project that goes beyond
the surface, offering a glimpse into the depths of Python's enchanting capabilities. As we
navigate this realm of code, may our To-Do List stand as a beacon for those venturing into the
magical territories of Python programming, inspiring them to wield the language with creativity.
CHAPTER 2
PROBLEM STATEMENT
The purpose of this To Do List Application is to help users manage their tasks efficiently.
Users should be able to Add Tasks, View Tasks, Delete Particular Task, Delete All Tasks, Exit the
Application. The Problem Statement of To Do List Using Python is described in the upcoming
paragraphs. Here are some features of this Application which is stated with its role description to
solve the problem faced in the previous time without this Application.
User Interface is created in the Application to provide a clear and user friendly command-
line interface (CLI). Task Management System is the most predominant component to be present in
this Application to solve the problem of unorganized data and tasks, leading to appropriate organizing
of Tasks. This System also enables the features to Add Tasks, View the added Tasks, Edit Tasks,
Delete Particular Task, Delete All Tasks from the List and Exit the Application. The Task Persistence
allows the tasks to be stored persistently, so they are available across multiple runs of the application.
A simple database SQLite is used to manage the database for this purpose. The Documentation feature
provides clear and concise information on how to use the application. Data Import and Export allow
users to export their task list to a file and import tasks from a file.
Task Organization enables the To-do lists to offer a structured way to compile and organize
tasks. Prioritization features in To-do lists allows to assign priorities to tasks, ensuring that you tackle
the most important and time-sensitive items first. To-do lists help you allocate your time effectively.
By breaking larger tasks into smaller, manageable steps, you can optimize your workflow and reduce
the feeling of being overwhelmed. This elucidates that this application also enables Time
Management.
The project aims to address the challenge of efficient task management by developing a to-
do list application. The current lack of a personalized, user-friendly, and dynamic task management
tool necessitates the creation of a robust solution. This project will focus on implementing key features
such as task addition, deletion, prioritization, and status tracking. The goal is to deliver a Python-based
to-do list application that not only meets basic task management needs but also provides an intuitive
and seamless experience for users, enhancing overall productivity and organization.
CHAPTER 3
SYSTEM REQUIREMENTS
2. Tkinter Library
5. PyCharm
7. SQLite
3. RAM: At least 4GB of RAM is recommended for smooth execution of Python scripts
and running development tools.
4. Storage: A few gigabytes of free storage space for the Python interpreter, development
tools, and any additional libraries or packages you might install.
SYSTEM ARCHITECTURE
SYSTEM MODULES
2. To Do Model Obtaining
3. Template Creation
The Source is obtained from the memory data to the Repository space to get stored for displaying
the desired tasks in the List.
Here in this stage, the Template of the Application is created and designed accordingly.
The To Do List has many Tasks as its components from which the desired Tasks are retrieved
for the process.
Repository is the stage where the data of tasks are stored in the place to obtain and display in it the
desired part of the output.
The Tasks/Data retrieved from the inbuilt To Do List Repository is transferred to To Do List
Controller to monitor and filter specific tasks to be added or displayed in the application.
This stage where To Do List Controller has its role, the Editing Process takes places such as Add
Tasks, Delete Particular Task, Delete All Tasks, Exit.
CHAPTER 6
SYSTEM IMPLEMENTATION
The System Implementation of the project “To Do List Using Python” includes the Creation of
the features of List, the Modules imported, step by step process of creation of each option available
in the Checklist. The following Software Modules were imported and used to create this project.
Python Programming Language is the base Language used to create this project. Tkinter
is a Python library that can be used to construct basic graphical user interface (GUI) applications. As
this project has been developed as an Application, Tkinter is essential. The Integrated Development
Environment (IDE) is a software application that helps programmers develop software code
efficiently. It increases developer productivity by combining capabilities such as software editing,
building, testing, and packaging in an easy-to-use application. Visual Studio Code is a source code
editor that fully supports Python. It provides just the tools a developer needs for a quick code-build-
debug cycle and leaves more complex workflows to fuller featured IDEs, such as Visual Studio IDE.
PyCharm constantly scans your project for comments in the source code that match specific TODO
patterns and displays them in the TODO tool window. SQLite is a library that provides a lightweight
disk-based database that doesn't require a separate server process and allows accessing the database
using a nonstandard variant of the SQL query language. In this project, it is used to store the Todo
list items an SQLite database.
While coding the program, import all the required Libraries and Modules to define and
creation the parameters like Dimension, Font, Buttons, Borders, Background Colors, Layout, etc.
Define the function as ‘add_task()’ to add a task to the list and update the database. Define the Data
Types and Length of the Tasks to be entered in the List. Enter ‘Field’ if length = 0. Tasks are
Defined. Add and Append Task are initialized which adds and edits the already entered tasks. Delete
Task and Delete All Tasks are defined and initialized by the commands ‘delete_task()’ and
‘delete_all_tasks()’ respectively which enables to Delete Tasks. To Exit and Close the Application,
the Exit Button is defined by ‘exit()’.
Using Exceptions like Try and Catch blocks, the selected entries are got the store in the
database, thus displayed in the List Display Box. Error is shown if Add Task Button is clicked
without any characters in the Task space. Error is shown if Delete Task Button is clicked without
selecting the already present Task. The Tasks are retrieved from the Database storage to display it
on the Application. The length of the Tasks to be retrieved is mentioned. Appending the Tasks in
Database is also possible. The Dimensions of each Button in display, the List Display Box are
precisely entered according to the desired output. Resizing of Dimensions Option is also available.
Frames are defined in the Database as Header frame, Function frame, Listbox frame and each frame
is labelled accordingly. Finally, the Buttons and Options are created. The Retrieval of Tasks from
Database is done to initiate the working mechanism of the Application.
DESCRIPTION OF STAGES:
1. Fetch Tasks from Memory:
In this stage, we initialize an empty list named `tasks` to hold our tasks in memory. We add a
couple of example tasks, each represented as a dictionary with keys for `id`, `title`, and
`completed` status.
2. To Do Model Obtaining:
Here, we define a simple To Do class that represents the structure of a task. Each task has an
`id`, `title`, and a `completed` status. The `completed` status is set to `False` by default.
3. Template Creation:
A template function `display_task` is created to format and display a task. It takes a `task` object
as input and prints the task's id, title, and completion status in a readable format.
5. To Do List Controller:
The `To Do List Controller` class acts as an intermediary between the user interface and the `To
Do Repository`. It has methods to add, retrieve, update, and delete tasks, delegating these
operations to the repository.
The `main` function serves as the entry point for the application. It creates an instance of `To Do
Repository` and `To Do List Controller`, adds tasks, displays initial tasks, updates a task,
displays updated tasks, deletes a task, and displays the final tasks. The `display_task` function is
used to present tasks in a readable format.
CHAPTER 7
CONCLUSION
To conclude, the “To Do List” is successfully created using Python Programming Language
evidenced by the Python code being executed and desired output being displayed. Thus, our project
could definitely carve an easier, more efficient and more effective lifestyle and workplace duties for
the people of today’s busy world, thus leading to a greater social impact in this world. To put it in a
nutshell, the development of the 'To Do List Using Python' project has been a valuable learning
experience. Through this project, we gained a deeper understanding of Python programming and its
application in creating functional and user-friendly applications. This project initiates the users to have
more effective and easier worklist by playing the operations involved in Tasks.
APPENDIX 1
SAMPLE CODING
APPENDIX 2
SAMPLE SCREENSHOT
REFERENCES
1. https://www.python.org/doc/
2. https://docs.python.org/3/library/tkinter.html
3. https://www.riverbankcomputing.com/static/Docs/PyQt5
4. https://doc.qt.io/qtforpython
5. https://github.com/