Skip to content

Commit 20eac84

Browse files
committed
lots of things again
1 parent 9cac76e commit 20eac84

7 files changed

Lines changed: 425 additions & 305 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ __pycache__/
66
*.log
77

88
# Ignore environment variables
9-
venv/
9+
venv2/
1010
.env
1111

1212
# IDE-specific files
@@ -15,6 +15,7 @@ venv/
1515

1616
# Output file
1717
tasks.json
18+
testing/test.json
1819

1920
# Not meant to be in the project
2021
Unused/

README.md

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,67 @@
1-
# TaskTracker-cli
2-
https://roadmap.sh/projects/task-tracker
1+
# CLI Task Tracker
2+
3+
CLI Task Tracker is a simple yet powerful command-line application designed to help you manage your tasks directly from your terminal. Built entirely in Python, the project uses only built-in modules (`json`, `sys`, and `datetime`), ensuring a lightweight solution with no external dependencies.
4+
5+
## Table of Contents
6+
- [Overview](#overview)
7+
- [Features](#features)
8+
- [Installation](#installation)
9+
- [Usage](#usage)
10+
- [Task Data Structure](#task-data-structure)
11+
- [Contributing](#contributing)
12+
- [License](#license)
13+
- [Contact](#contact)
14+
15+
## Overview
16+
Inspired by the [roadmap.sh Task Tracker](https://roadmap.sh/projects/task-tracker), this project provides
17+
a hands-on experience for learning CLI application development. The tool is perfect for beginners looking to solidify
18+
their Python skills or advanced users who want a quick and efficient task management solution.
19+
Importantly, it relies solely on Python’s built-in modules—`json`, `sys`, and `datetime`
20+
which means you won't need to set up any additional dependencies to run it.
21+
22+
## Features
23+
- **Task Management:** Easily add, update, and delete tasks.
24+
- **Status Tracking:** Mark tasks with statuses such as `todo`, `in-progress`, or `done` to reflect progress.
25+
- **Filtering Options:** List all tasks or filter them by their current status.
26+
- **Lightweight Persistence:** All tasks are stored in a local JSON file, preserving your data between sessions.
27+
- **Zero Dependencies:** Built purely with Python’s standard libraries (`json`, `sys`, and `datetime`),
28+
resulting in a fast and easy-to-install tool.
29+
30+
## Installation
31+
32+
### Prerequisites
33+
- **Python Environment:** Ensure you have Python 3 installed on your system.
34+
No additional packages are required since only built-in modules are used.
35+
36+
### Steps to Install
37+
1. **Clone the Repository:**
38+
``` bash
39+
git clone https://github.com/yourusername/cli-task-tracker.git
40+
cd cli-task-tracker
41+
```
42+
## Usage
43+
none
44+
45+
## Task Data Structure
46+
Each task is stored in a JSON file with the following properties:
47+
- id: A unique identifier.
48+
- description: A brief description of the task that is manually typed by the user.
49+
- status: The current status (todo, in-progress, or done).
50+
- createdAt: Timestamp when the task was created.
51+
- updatedAt: Timestamp when the task was last updated or got a description.
52+
53+
Example task record:
54+
``` json
55+
{
56+
"id": 1,
57+
"description": "Buy groceries",
58+
"status": "todo",
59+
"createdAt": "07-04-2025 15:19:48"",
60+
"updatedAt": "07-04-2025 15:19:48"
61+
}
62+
```
63+
64+
## Contributing
65+
## License
66+
## Contact
67+
For any questions, issues, or feedback, don't hesitate to open an issue on GitHub or email me at hmdoonwork71@gmail.com.

_shell.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# add description to tell other that this is for testing only not to be used by them
1+
"""This script is wrote for testing purposes only and not meant to be used by others.
2+
Commands must be written directly without writing "python cli_task_tracker.py" or "task-tracker". """
23

34
import subprocess
45
import sys
@@ -9,7 +10,7 @@ def main():
910
try:
1011
task = input("> ")
1112
if task != "q":
12-
subprocess.run(f'py main.py {task}', shell=True, text=True)
13+
subprocess.run(f'py cli_task_tracker.py {task}', shell=True, text=True)
1314
else:
1415
sys.exit()
1516
except KeyboardInterrupt:

0 commit comments

Comments
 (0)