0% found this document useful (0 votes)
17 views34 pages

To-Do List Manager

Uploaded by

ramphool83
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views34 pages

To-Do List Manager

Uploaded by

ramphool83
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 34

PM SHRI KENDRIYA VIDYALAYA

ARTILLERY CENTRE NASHIK ROAD


CAMP

SESSION – 2024-25
COMPUTER SCIENCE PROJECT: A
PROJECT REPORT ON: TO – DO LIST
MANAGER

SUBMITTED BY:- UTKARSHA JITENDRA PATIL

ROLL NO – 18

CLASS- XII B

SUBMIITED TO:- MRS. POOJA AGRAWAL


PGT(COMPUTER
SCIENCE)
CERTIFICATE
This is to certify that Utkarsha Jitendra
Patil studying in Class 12 ‘B’ has
satisfactorily completed Computer Science
project with the title "TO-DO LIST
MANAGER" under the Guidance of Mrs.
Pooja Agrawal (PGT Computer Science)
during the academic year 2024-25 in
partial fulfillment of Computer Science
practical examination of Central Board of
Secondary Examination (CBSE).

_________ ___________ ________


Subject Tr. External Examiner PRINCIPAL
ACKNOWLEDGEMENT
I warmly acknowledge the continuous
encouragement and timely suggestions offered
by our Principal
SH. RAMPHOOL MEENA. I extend my hearty
thanks for giving me the opportunity to make use
of the facilities available in the campus to carry
out the project successfully.

I am highly indebted to Mrs. Pooja Agrawal


(PGT Computer Science), for the constant
supervision, providing necessary information and
supporting in completing the project. I would
like to express my gratitude towards them for
their kind cooperation and encouragement.

Finally, I extend my gratefulness to one and


all who are directly or indirectly involved in the
successful completion of this project work.

Name:
Sign:
INDEX

 About Python
 About MYSQL
 Synopsis
 Project Overview/Description
 System Requirements
 Backend Details
 Python Packages And
Functions Used
 Source Code
 Output Screenshots
 User Manual
 Future Enhancements
 Bibliography
 Conclusion
ABOUT PYTHON
Python is a dynamic, high-level, free open source, and
interpreted programming language. It supports object-
oriented programming as well as procedural-oriented
programming.

Features in Python :

1. Free and Open Source

2. Easy to code

3. Easy to Read

4. Object-Oriented Language

5. GUI Programming Support

6. High-Level Language

7. Large Community Support

8. Easy to Debug

9. Python is a Portable language

10. Python is an integrated language

11. Interpreted Language:

12. Large Standard Library

13. Dynamically Typed Language

14. Frontend and backend development


15. Allocating Memory Dynamically

Advantages of Python

Programming Language

➢ Easy to read, learn and code


➢ Dynamic Typing
➢ Free, Open Source
➢ Portable
➢ Extensive Third-Party Libraries
➢ Wide Range of Applications
➢ Extensible and Integrable to Other Programming
Languages
➢ Interpreted Language
➢ Functional, Object-Oriented, and Procedural
➢ Involvement in Large Projects.
➢ Memory Management

Disadvantages of Python :

 It’s Simple in Nature


 Slow Speed and Memory Inefficient
 Weak Mobile Computation
 Poor Database Access
ABOUT MYSQL

MySQL is the world’s most popular open source database.


According to DB-Engines, MySQL ranks as the second-most-
popular database, behind Oracle Database. MySQL powers
many of the most accessed applications, including Facebook,
Twitter, Netflix, Uber, Airbnb, Shopify, and Booking.com.
Since MySQL is open source, it includes numerous features
developed in close cooperation with users over more than 25
years. So it’s very likely that your favorite application or
programming language is supported by MySQL Database.

MySQL is a Relational Database Management System

SQL is the most common standardized language used to


access databases. Depending on user’s programming
environment, user might enter SQL directly (for example, to
generate reports), embed SQL statements into code written in
another language, or use a language- specific API that hides
the SQL syntax.

MySQL is a Open Source

Open source means it’s possible for anyone to use and modify
the software. Anybody can download MySQL software from
the internet and use it without paying for it. User can also
change its source code to suit your needs.
PROJECT SYNOPSIS

The problem definition for the project is to create a To-


Do List Manager that utilizes a MySQL database for
task storage. The application allows users to perform
various operations, such as adding tasks with titles,
descriptions, and due dates, listing all tasks, setting
reminders for upcoming tasks, marking tasks as
completed, and updating task titles and due dates. The
goal is to provide users with a simple and interactive
tool for managing their tasks effectively.

Advantages of the proposed system :


The proposed To-Do List Manager system offers several
advantages:
1. Database Integration (MySQL) : Utilizing MySQL
for data storage ensures structured and organized
task management, enabling efficient retrieval and
manipulation of task information.

2. User-Friendly Interface: The program provides a


straightforward menu-driven interface, making it
easy for users to interact with the application and
perform various task management actions.

3. Task Details: Users can add detailed information about tasks,


including titles, descriptions, due dates, and completion
status, facilitating comprehensive task tracking.
4. Reminder Functionality: The system includes a
reminder feature, helping users stay on top of
upcoming tasks by notifying them based on due dates.

5. Task Status Tracking: Users can mark tasks as


completed, providing a clear visual indication of their
progress and helping them stay organized.

6. Task Updating: The system allows users to update


task titles and due dates, accommodating changes and
modifications to task details.

7. Structured Code: The code is organized into


functions, enhancing readability and
maintainability. The use of functions for different
operations promotes code reusability.

8. Clean-Up Process: The system closes the MySQL


cursor and connection after the user exits, ensuring
proper resource management and preventing
potential issues related to open connections.

Overall, the proposed system aims to enhance task


management efficiency, user experience, and data
integrity.
Project Description

The To-Do List Manager project is a simple yet


effective task management application designed to
help users organize and track their tasks. Here is a
brief project description:

Project Overview:
The To-Do List Manager is a Python-based application
that employs a MySQL database for storing and
managing tasks. Users can interact with the system
through an intuitive menu, performing various
operations such as adding tasks, listing existing tasks,
setting reminders, marking tasks as completed, and
updating task details.

Key Features:
1. Add Tasks: Users can input task titles, descriptions,
and due dates to add new tasks to the system.

2. List Tasks: The application displays a comprehensive


list of all tasks, providing users with an overview of
their to-do items.

3. Set Reminders: A reminder feature notifies users of upcoming


tasks, helping them stay organized and on schedule

4. Mark Tasks as Completed: Users can indicate


task completion, providing a visual
representation of their progress.
5. Update Task Details: The system allows users to
modify task titles and due dates, adapting to
changing priorities.

Technology Stack:
- Programming Language: Python

- Database: MySQL

- Library: mysql.connector

- Date and Time Handling: datetime module

User Interface:
The application features a user-friendly menu-driven
interface, allowing users to easily navigate and perform
desired actions.

Code Structure:
The code is organized into functions, enhancing
readability and facilitating code reuse. Proper resource
management ensures the closure of database
connections.
SYSTEM REQUIREMENTS

Minimum Hardware Requirements:

- Display: LED Monitor or above

- Processor: Pentium core or above

- Hard Disk: 100 GB

- RAM: 1 GB

- Keyboard: PS/2 or USB

- Mouse: PS/2 or USB

Software Requirements:

- Operating System: Windows 8 or above

- Python IDE: Version 3.6 or above

- MySQL Server: Version 8.0 or above


BACK END DETAILS

BACK END : MYSQL SERVER


It provides a database management
system with querying and connectivity
capabilities, as well as the ability to
have excellent data structure and
integration with many different
platforms.

It can handle large databases and


quickly in high demanding
production environments.

Database Name : todo_db


Details : Table Name: tasks
PACKAGES AND FUNCTION USED IN
THE PROJECT

PACKAGE / MODULE

Mysql.connector: Provides connectivity between


mysql server and python program.
Datetime: It is used in this software to provide date and
time.

USER DEFINED FUNCTION


Menu: this function displays the main menu of the
application , allowing user to choose from various
actions.

Display_reminders():reminders are
implemented as part of the project , this
function display reminders to the user at the
appropriate times

List_tasks(cursor):
this function lists all tasks
stored in the database.

Delete_task(cursor,taskid):func
tion deletes a task from the
database based on the task id
given by the user
Source
code
import

mysql.connector

import datetime

# MySQL

Configuration

config = {

"host": "localhost",

"user": "root",

"password":

"flash",

"database":

"todo_db",

# Connect to MySQL

conn =

mysql.connector.connect(**confi

g) cursor = conn.cursor()

# Function to Add a Task


def add_task(title, description, due_date):
sql = "INSERT INTO tasks (title, description,
due_date, completed) VALUES (%s, %s, %s, %s)"

values = (title, description,

due_date, False)

cursor.execute(sql, values)

conn.commit()

# Function to Add a Task

def add_task(title, description, due_date):

sql = "INSERT INTO tasks (title, description,


due_date, completed) VALUES (%s, %s, %s, %s)"

values = (title, description,

due_date, False)

cursor.execute(sql, values)

conn.commit()

# Function to List

Tasks def

list_tasks():

sql = "SELECT * FROM

tasks"
cursor.execute(sql)

tasks = cursor.fetchall()

if not tasks:
print("No tasks

found.") else:

print("\nAll

Tasks:") for task

in tasks:

print(f"Task {task[0]} - Title: {task[1]},


Description: {task[2]}, Due Date: {task[3]},
Completed: {task[4]}")

# Function to Set a

Reminder def

set_reminder(task_id):

current_time = datetime.datetime.now()

sql = "SELECT title, due_date FROM tasks

WHERE id = %s" cursor.execute(sql, (task_id,))

task =

cursor.fetchone()

if task:

task_title, due_date

= task if due_date >

current_time:

print(f"Reminder: Task '{task_title}' is due at


{due_date}.") else:
print(f"Task '{task_title}' is already overdue.")

# Function to Mark Task as

Completed def

mark_task_completed(task_id)

sql = "UPDATE tasks SET completed = True

WHERE id = %s" cursor.execute(sql, (task_id,))

conn.commit()

print("Task marked as completed.")

# Function to Update Task Title and Due Date

def update_task(task_id, new_title, new_due_date):

sql = "UPDATE tasks SET title = %s, due_date = %s WHERE


id =
%s"

cursor.execute(sql, (new_title,

new_due_date, task_id)) conn.commit()

print("Task updated successfully.")

# Main Menu
while True:

print("\nTo-Do List

Menu:") print("1. Add

a Task") print("2. List

Tasks") print("3. Set

Reminder")

print("4. Mark Task as

Completed") print("5. Update

Task Title and Due Date")

print("6. Exit")

choice = input("Enter your choice: ")

if choice == "1":

title = input("Enter task title: ")

description = input("Enter task description: ")

due_date = input("Enter due date and time


(YYYY-MM-DD HH:MM): ")

add_task(title, description,

due_date) print("Task added

successfully!")
elif choice

==“

2”

list_tasks()

elif choice == "3":

task_id = int(input("Enter the ID of the task for


which you want to set a reminder: "))

set_reminder(task_id)

elif choice == "4":

task_id = int(input("Enter the ID of the task to


mark as completed:”))

mark_task_completed(task_id)

elif choice == "5":

task_id = int(input("Enter the ID of the task you want

to update: ")) new_title = input("Enter the new title:

")

new_due_date = input("Enter the new due date


and time (YYYY- MM-DD HH:MM): ")

update_task(task_id, new_title, new_due_date)

elif choice==”6”:
break

#clean up
cursor.close()
conn.close()
SCREENSHOTS

Main menu:

Add task:
List tasks:

Set reminder :

Mark task as completed:


To-Do Reminder - User Manual
1. Installation:
- Ensure you have Python installed on your
system.

- Install the mysql-connector-python


library using pip install mysql-
connector-python.
2. Setup:
- Make sure your MySQL server is running.

- Modify the config dictionary in the


code with your MySQL server details.
3. Running the Program:
- Execute the Python script in your preferred
environment.

4.Main Menu:
- The program will present a menu with the
following options:

- *1. Add a Task:* Enter task details to add a


new task.

- *2. List Tasks:* Display a list of all tasks.

- *3. Set Reminder:* Set reminders for


upcoming tasks.

- *4. Mark Task as Completed:* Mark tasks as


completed.
- *5. Update Task:* Modify task titles and due
dates.
- *6. Exit:* Terminate the program.

5. Adding a Task:
- Choose option 1 from the menu.

- Enter the task title, description, and due date


as prompted.

6. Listing Tasks:
- Choose option 2 from the menu.

- All tasks will be displayed with their details.

7. Setting Reminders:
- Choose option 3 from the menu.

- Enter the task ID to set a reminder for.

8 . Marking Task as Completed:


- Choose option 4 from the menu.

- Enter the task ID to mark as completed.

9 . Updating a Task:
a. Choose option 5 from the menu.
b. Enter the task ID and provide the new
title and due date.
10 Exiting the Program:
- Choose option 6 from the menu to exit the
program.

11. Clean-Up:
- The program automatically closes database
connections upon exit.

Note: Ensure your MySQL server is


configured correctly and accessible from
the Python environment.

This user manual provides a step-by-step


guide for interacting with the To-Do List
Manager. Follow the instructions to
efficiently manage your tasks and stay
organized.
BIBLIOGRAPHY

TEXT BOOKS

1. Computer Science with Python:


Sumitha Arora

2. Computer Science with

Python: Preeti Arora Web

Sites

➢ www.cbseprojectguide.com
➢ www.python4csip.com
➢ www.codewithfaraz.com
Conclusion
The To-Do List Reminder project offers a
practical solution for individuals seeking a
straightforward and efficient way to
organize and track their tasks. The
integration of a MySQL database provides
a structured approach to task
management, while the user-friendly
interface and comprehensive set of
features contribute to a positive user
experience.

The ability to add, list, update, and mark


tasks as completed enhances the
flexibility of the system, accommodating
changes in priorities and reflecting the
user's progress. The reminder feature
adds a proactive element to task
management, helping users stay on top
of upcoming deadlines.

The clean and readable code structure,


along with proper resource management,
ensures the reliability and maintainability
of the application. Users can navigate the
menu-driven interface with ease, making
the To-Do List Manager a practical tool
for daily task organization.

Overall, this project demonstrates a


successful implementation of a To- Do List
Manager, providing a valuable resource
for individuals seeking a simple yet
effective solution for managing their tasks
efficiently.

You might also like