This project was developed as a part of the DecodeLabs Virtual Internship (Batch 2026).
My Role : Jr. Python Programming Intern @ DecodeLabs
The objective of this project was to build a command-line To-Do List Application using Python. During the training, it was emphasized that data stored in RAM is volatile and is lost once the application terminates. To overcome this limitation, I integrated MySQL for persistent storage, ensuring that tasks remain securely stored and are available every time the application is launched.
The application supports complete CRUD operations, automatic database creation, persistent storage, task management, and a clean command-line interface.
A quick preview of the application is shown below.
👆 Quick (1 min 30 sec) GIF Preview
| Successful Connection | Wrong Password |
|---|---|
![]() |
![]() |
| Cancel Removal | Removal Completed |
|---|---|
![]() |
![]() |
| Cancel Clear | Empty List |
|---|---|
![]() |
![]() |
| Database | Structure |
|---|---|
![]() |
![]() |
- Secure MySQL Password Input
- Automatic Database Creation
- Automatic Table Creation
- Persistent Task Storage
- Add New Tasks
- View Tasks
- Remove Existing Tasks
- Clear Entire To-Do List
- Automatic ID Management
- Stored Procedure for ID Renumbering
- Exception Handling
- Keyboard Interrupt Handling
- Text Wrapping for Long Tasks
- User-Friendly Command Line Interface
- Python 3
- MySQL
- MySQL Connector/Python
- SQL
- Command Line Interface (CLI)
DecodeLabs-Project-1/
│
├── assets/
│ └── demo.mp4
│
├── database/
│ ├── sample_to_do_list.csv
│ └── sql_commands_used.sql
│
├── docs/
│ └── DecodeLabs_Project_1_Guidelines.pdf
│
├── screenshots/
│ ├── authentication/
│ ├── application_menu/
│ ├── add_task/
│ ├── remove_task/
│ ├── clear_tasks/
│ ├── mysql/
│ ├── code_snippets/
│ ├── exit_application/
│ └── view_task/
│
├── main.py
├── README.md
└── requirements.txt
Clone the repository
git clone https://github.com/Satvik-Creations/DecodeLabs-Project-1.gitMove into the project
cd DecodeLabs-Project-1Install dependencies
pip install -r requirements.txtRun the project
python main.pyThe application automatically performs the following operations during its first execution.
- Creates the database
TDL - Creates the table
to_do_list - Retrieves existing tasks
- Saves newly added tasks
- Updates task IDs after deletion
No manual database setup is required.
The project makes use of SQL operations including
- CREATE DATABASE
- CREATE TABLE
- USE
- SELECT
- INSERT
- DELETE
- TRUNCATE
- CALL
- DROP PROCEDURE
- CREATE PROCEDURE
A complete reference is available inside
database/sql_commands_used.sql
- Python Functions
- Lists
- Dictionaries
- Exception Handling
- File Structure
- MySQL Connectivity
- CRUD Operations
- SQL Stored Procedures
- Data Persistence
- Command Line Applications
- Task Priorities
- Due Dates
- Categories
- Search Tasks
- Update Existing Tasks
- Export Tasks to PDF
- GUI Version using Tkinter
- Web Version using Flask
This project was completed as Project 1 (Python Programming) during my training at DecodeLabs.
The initial objective I thought was to create a command-line To-Do List application using Python. Since data stored in RAM is volatile as they mentioned in their PDF [docs/DecodeLabs_Project_1_Guidelines.pdf], and gets erased when the program exits, I integrated MySQL to provide persistent storage. This ensures that all tasks remain safely stored in the database and are available every time the application is launched.
Satvik Singhal
B.Tech CSE (AI & ML)
Jr. Python Programming Intern @ DecodeLabs
GitHub: https://github.com/Satvik-Creations
LinkedIn: https://linkedin.com/in/satvik121
If you found this repository useful or interesting, consider giving it a ⭐ on GitHub.
It motivates me to build more projects like this.
Made with ❤️ using Python & MySQL












