Mid-term-Python Project Ideas
Mid-term-Python Project Ideas
(i)
PROJECT: TO-DO LIST MANAGER
DESCRIPTION:
Create a command-line interface (CLI) application that allows users to manage their to-do lists.
Users can add tasks, mark tasks as complete, view their to-do list, and remove tasks. The
application will utilize data structures like lists and dictionaries to store and manipulate the to-do
list data.
FEATURES:
1. Add a task: Users can add a new task to their to-do list by providing a task description. The tasks
can be added with a priority number and with a due date or without this information so that later
this task can be modified.
2. Complete a task: Users can mark a task as complete by specifying the task number.
3. View to-do list: Users can view their entire to-do list with all the tasks and their completion
status sorted by priority number, then due date, and those do not have any due date or priority
number they will be shown at the bottom of the list.
4. Remove a task: Users can remove a task from their to-do list by specifying the task number.
5. Save tasks: Users can save the current task list with all information to a file and later load the
file to view the task with all information like, current task, completed task, task priority, task due
date.
6. Add priority: Users can modify the task by adding priority to any existing task.
7. Add due date: Users can modify the task by adding due date to any existing task.
------------------
1. Add a task
2. Complete a task
Page 2 of 19
4. Remove a task
8. Exit
To-Do List:
1. [ ] Buy groceries
2. [ ] Pay bills
To-Do List:
Page 3 of 19
1. [X] Buy groceries
2. [ ] Pay bills
To-Do List:
Exiting...
Page 4 of 19
PROJECT: EXPENSE TRACKER
DESCRIPTION:
Expense Tracker is a command-line interface (CLI) application that helps users track their
expenses. It allows users to manage their financial transactions, view expense details, and calculate
total expenses within a specified date range. The application utilizes data structures like lists and
dictionaries to store and manipulate expense data.
FEATURES:
1. Add an Expense: Users can add a new expense by entering details such as date, category,
description, and amount. The input must be validated, for example negative amount can not be
added, the category must be defined previously, if no category is found then the new category need
to be added to the category list.
2. View Expense List: Users can view their expense list, which displays all expenses with their
corresponding details, including date, category, description, and amount.
3. Filter Expenses: Users can filter expenses based on specific criteria such as date range, category,
or a combination of both. The filtered list will display expenses that match the selected criteria.
4. Calculate Total Expenses: Users can calculate the total expenses within a specified date range
or for the entire expense list.
5. Delete an Expense: Users can delete a specific expense by providing its unique identifier.
6. Export Expense Data: Users can export the expense data to a CSV file for further analysis or
record-keeping.
Page 5 of 19
USER INTERFACE (CLI):
The following is an example of how the CLI of the Expense Tracker application could look:
Expense Tracker
---------------
1. Add an Expense
3. Filter Expenses
5. Delete an Expense
7. Add categories
8. Exit
Category: Groceries
Amount: 50.00
Expense List:
-------------
Page 6 of 19
-------------------------------------------------------
Filter Expenses:
2. Filter by Category
----------------------
-------------------------------------------------------
Page 7 of 19
Total Expenses: 50.00
Exiting...
Page 8 of 19
PROJECT: CONTACT BOOK
DESCRIPTION:
Contact Book is a command-line interface (CLI) application that allows users to store and manage
their contacts. It provides functionalities to add new contacts, view the contact list, search for
contacts by name and number partially, and delete contacts. The application utilizes data structures
like lists and dictionaries to store and manipulate contact data.
FEATURES:
1. Add a Contact: Users can add a new contact by providing details such as name, phone number,
and email.
2. View Contact List: Users can view their entire contact list, which displays all contacts along
with their corresponding details, including name, phone number, and email.
3. Search Contacts: Users can search for contacts by name or number. The application will display
a list of contacts that match the search query. The name and number of the contacts can be partial
or full.
4. Delete a Contact: Users can delete a specific contact by providing their unique identifier or by
selecting from a list of contacts.
5. Edit a Contact: Users can edit a specific contact by providing their unique identifier or by
selecting from a list of contacts. For example, edit name or number of contacts.
6. Exit the Application: Users can choose to exit the Contact Book application.
Page 9 of 19
USER INTERFACE (CLI):
The following is an example of how the CLI of the Contact Book application could look:
Contact Book
------------
1. Add a Contact
3. Search Contacts
4. Delete a Contact
5. Edit a Contact
6. Exit
Email: [email protected]
Page 10 of 19
Phone Number: 9876543210
Email: [email protected]
Contact List:
--------------
---------------------------------------------
Search Contacts:
Search Results:
--------------
---------------------------------------------
Page 11 of 19
Enter the contact ID to delete: 2
Contact List:
--------------
---------------------------------------------
Exiting...
Page 12 of 19
PROJECT: QUIZ GAME
DESCRIPTION:
Quiz Game is a command-line interface (CLI) application that allows users to play multiple-choice
quizzes. The application reads questions and answer choices from a file, presents them to the user,
and calculates their score at the end. It provides an interactive and engaging way for users to test
their knowledge.
FEATURES:
1. Load Quiz: The application loads a quiz from a file, which contains questions and answer
choices.
2. Display Question: The application presents each question to the user and displays the available
answer choices.
3. Accept User Input: The user can input their answer choice for each question.
4. Calculate Score: The application calculates the user's score based on the correct answers chosen.
5. Display Final Score: At the end of the quiz, the application displays the user's final score.
6. Retry Quiz: Users can choose to retry the quiz after completing it.
The following is an example of how the CLI of the Quiz Game application could look:
Quiz Game
---------
1. Start Quiz
2. Exit
Page 13 of 19
Quiz Loaded!
-----------------
Question 1:
A. Paris
B. London
C. Rome
D. Madrid
Your Answer: A
Correct!
Question 2:
A. Mars
B. Venus
C. Jupiter
D. Saturn
Your Answer: B
Incorrect!
Question 3:
Page 14 of 19
What is the largest ocean on Earth?
A. Atlantic Ocean
B. Indian Ocean
C. Pacific Ocean
D. Arctic Ocean
Your Answer: C
Correct!
Quiz Completed!
-------------------
1. Retry Quiz
2. Exit
Exiting...
Page 15 of 19
PROJECT: TASK SCHEDULER
DESCRIPTION:
Task Scheduler is a command-line interface (CLI) application that helps users manage their tasks.
It allows users to add, view, and manage tasks by setting due dates, priorities, and descriptions.
The application provides reminders for upcoming tasks and allows users to mark tasks as complete.
It utilizes data structures and algorithms to handle task scheduling and organization efficiently.
FEATURES:
1. Add a Task: Users can add a new task by providing details such as the task description, due
date, and priority level.
2. View Task List: Users can view their task list, which displays all tasks along with their
corresponding details, including description, due date, priority, and completion status.
3. Sort Tasks: Users can sort their task list based on due date or priority to prioritize and organize
their tasks effectively.
4. Reminders: The application can provide reminders for upcoming tasks, notifying users of
approaching due dates.
5. Complete a Task: Users can mark a task as complete, updating the completion status and
removing it from the active task list.
6. Edit task: Users can edit task, change the content, date and priority.
9. Search task: Tasks can be searched by date, content, priority, reminder wise.
10. Exit the Application: Users can choose to exit the Task Scheduler application.
Page 16 of 19
USER INTERFACE (CLI):
The following is an example of how the CLI of the Task Scheduler application could look:
Task Scheduler
--------------
1. Add a Task
3. Sort Tasks
4. Complete a Task
5. Edit task
6. Delete task
7. Export task
8. Search task
9. Exit
Priority (1-9): 3
Page 17 of 19
Enter task details:
Priority (1-9): 2
Task List:
----------
----------------------------------------------------------------
-
Sort Tasks:
2. Sort by Priority
Page 18 of 19
Sorted Task List (by Due Date):
-------------------------------
----------------------------------------------------------------
-
Task List:
----------
----------------------------------------------------------------
-
Exiting...
Page 19 of 19