Project idea
Build a complete Python application that lets users:
- manage tasks
- manage events with dates
- save data permanently in SQLite
- organize code using modules and packages
- handle errors safely
- work with dates and time
- use functions and OOP properly
This project combines concepts from:
- Lesson 3 — Advanced Functions
- Lesson 4 — OOP
- Lesson 5 — File/Data handling mindset
- Lesson 6 — Error Handling & Debugging
- Lesson 8 — Modules & Packages
- Lesson 9 — Dates & Time
- Lesson 10 — SQLite & Databases
🧩 Features of the app
The app will allow the user to:
- add a task
- view all tasks
- mark a task as completed
- add an event with a date
- view all events
- show days remaining until each event
- save everything in a SQLite database
- use a clean modular project structure
📁 Real Project Structure
task_event_manager/
│
├── main.py
├── database/
│ └── app.db
├── app/
│ ├── __init__.py
│ ├── db.py
│ ├── models.py
│ ├── task_service.py
│ ├── event_service.py
│ └── utils.py
└── README.md✅ Full Solution
▶️ How to run the project
- Create the folders exactly as shown.
- Save each file in its correct location.
- Make sure the
database/folder exists. - Run:
python main.py🧠 Example usage
Add a task
Choose an option: 1
Enter task title: Finish Python capstone
Task added successfully.View tasks
--- Tasks ---
[✗] (1) Finish Python capstoneAdd an event
Choose an option: 4
Enter event name: Final Exam
Enter event date (YYYY-MM-DD): 2026-12-20
Event added successfully.View events
--- Events ---
(1) Final Exam - 2026-12-20
Days remaining: 45🔍 What this capstone teaches
This project combines multiple course lessons in one real application.
From Lesson 3 — Functions
The app uses several functions like:
handle_add_task()handle_view_tasks()handle_add_event()
This keeps the code modular and reusable.
From Lesson 4 — OOP
The Task and Event classes represent real objects.
From Lesson 6 — Error Handling
The app uses try/except for:
- invalid task IDs
- invalid date formats
From Lesson 8 — Modules & Packages
The code is split into:
- models
- database logic
- services
- utilities
- main program
From Lesson 9 — Dates & Time
The app calculates how many days remain until each event.
From Lesson 10 — SQLite
The project stores tasks and events permanently in a real SQLite database.
🛠 Possible improvements
You can extend this project with:
- delete tasks
- delete events
- edit tasks and events
- add event time, not just date
- sort events by nearest date
- export tasks/events to CSV
- add priorities to tasks
- create a Tkinter GUI
- build a Django web version
- add login/user accounts
💬 Comments
No comments yet. Be the first to comment!
Login to comment.