Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 DecodeLabs Project 1 - Python To-Do List Application

Python MySQL CLI Status


📌 About The Project

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.


🎥 Project Demonstration

A quick preview of the application is shown below.

Project Demo

👆 Quick (1 min 30 sec) GIF Preview


📷 Project Screenshots

Authentication

Successful Connection Wrong Password

Application Menu


Adding a Task


Viewing Tasks


Removing a Task

Cancel Removal Removal Completed

Clearing the To-Do List

Cancel Clear Empty List

MySQL Database

Database Structure

Stored Records


✨ Features

  • 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

🛠 Tech Stack

  • Python 3
  • MySQL
  • MySQL Connector/Python
  • SQL
  • Command Line Interface (CLI)

📂 Project Structure

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

⚙ Installation

Clone the repository

git clone https://github.com/Satvik-Creations/DecodeLabs-Project-1.git

Move into the project

cd DecodeLabs-Project-1

Install dependencies

pip install -r requirements.txt

Run the project

python main.py

🗄 Database

The 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.


📄 SQL Commands Used

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

📚 Concepts Covered

  • Python Functions
  • Lists
  • Dictionaries
  • Exception Handling
  • File Structure
  • MySQL Connectivity
  • CRUD Operations
  • SQL Stored Procedures
  • Data Persistence
  • Command Line Applications

🚀 Future Improvements

  • Task Priorities
  • Due Dates
  • Categories
  • Search Tasks
  • Update Existing Tasks
  • Export Tasks to PDF
  • GUI Version using Tkinter
  • Web Version using Flask

📖 Internship Information

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.


👨‍💻 Author

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 liked this project

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

About

Python-based To-Do List application with MySQL database integration for persistent task management. Built as part of the DecodeLabs Python Programming Internship.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages