Skip to content

Smjoslin95/python-task-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

python-task-tracker-README.md

📝 Python Task Tracker

A command-line task management app built with Python. Tasks are saved locally so they persist between sessions — close the app, come back later, your list is still there.

Python Status License


📸 Demo

Task Tracker
1. List tasks
2. Add task
3. Mark task as done
4. Delete task
5. Exit
Choose an option: 2

Enter task title: Finish AWS study notes
Task added.

Task Tracker
1. List tasks
...
Choose an option: 1

1. Finish AWS study notes - Pending
2. Update GitHub README - Done
3. Apply to junior dev roles - Pending

✨ Features

  • ✅ Add tasks with a title
  • 📋 View all tasks with status (Pending / Done)
  • ✔️ Mark tasks as complete
  • 🗑️ Delete tasks
  • 💾 Persistent storage using a local JSON file — tasks survive between sessions

🛠️ Tech Stack

Tool Purpose
Python 3 Core language
json module Data persistence (read/write tasks to file)
os module File existence checking

No external libraries required — runs on any machine with Python 3 installed.


🚀 Getting Started

Prerequisites

Run the app

# Clone the repo
git clone https://github.com/Smjoslin95/python-task-tracker.git

# Navigate into the folder
cd python-task-tracker

# Run the app
python task_tracker.py

That's it — no installs, no setup. Just run and go.


📁 Project Structure

python-task-tracker/
│
├── task_tracker.py   # Main application logic
├── tasks.json        # Auto-created on first run — stores your tasks
└── README.md         # You're reading it!

💡 How It Works

The app uses a simple menu-driven loop that keeps running until you choose to exit. Here's what happens under the hood:

  • On startup, it checks for an existing tasks.json file and loads any saved tasks
  • Each task is stored as a dictionary: {"title": "...", "done": false}
  • When you exit (option 5), all tasks are written back to tasks.json
  • If the file doesn't exist yet, it starts with an empty list

🧠 What I Learned Building This

  • Working with Python's built-in json module to read and write structured data
  • Using os.path.exists() to handle first-run file creation gracefully
  • Designing a clean menu loop with input validation and error handling
  • Thinking about user experience in a CLI context — clear prompts, helpful error messages
  • Applying OOP-adjacent thinking by separating concerns into focused functions

🔮 Future Improvements

  • Add due dates to tasks
  • Filter tasks by status (show only Pending or only Done)
  • Add task priority levels (High / Medium / Low)
  • Color-coded output using the colorama library
  • Unit tests with pytest

👩‍💻 About the Author

Samantha Joslin — Software Engineering student at SNHU, transitioning into tech from 8+ years in operations and hospitality leadership.


This project is part of my public learning journey. Feel free to fork it, build on it, or reach out if you have ideas!

About

A command-line task manager built with Python and JSON storage

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages