A menu-driven command-line application to manage personal tasks, built using Python. This project demonstrates file handling, object-oriented programming, and clean project structure. Assignment 1A — Deckzi Software Developer Pre-Recruitment Program — Section 1.
- Add tasks with title and due date
- View all tasks in a structured format
- Mark tasks as complete
- Search tasks by keyword
- Delete tasks by ID
- Persistent storage using
tasks.json
python-task-manager/ ├── src/ │ ├── task.py # Task class definition │ ├── task_manager.py # Core business logic │ ├── file_handler.py # JSON read/write │ └── validator.py # Input validation ├── data/ │ └── tasks.json # Auto-generated task storage ├── main.py # Entry point and menu ├── .env # Environment variables (not committed) ├── .env.example # Example environment variables ├── requirements.txt # Dependencies └── README.md
git clone cd python-task-manager
python -m venv venv
Windows:
venv\Scripts\activate
Mac/Linux:
source venv/bin/activate
pip install -r requirements.txt
Windows:
copy .env.example .env
Mac/Linux:
cp .env.example .env
python main.py
-
Tasks are stored in
data/tasks.json -
Each task contains:
- ID
- Title
- Due Date
- Status (pending/done)
- Created Timestamp
-
Data is automatically loaded on startup and saved after every change
- Add Task
- View Tasks
- Mark Task Complete
- Search Task
- Delete Task
- Exit
- Ensure the virtual environment is activated before running
- Do not delete
tasks.jsonwhile the application is running - All dependencies must be installed using
requirements.txt
- Add task priority levels
- Add reminders and notifications
- Convert CLI to web application (FastAPI + Angular)
- Add database support (MySQL / MongoDB)
Mr.U.VELKARTHIK., BCA
This project is created for learning and internship evaluation purposes.