{"id":28959419,"url":"https://github.com/jscode-1302/task-tracker","last_synced_at":"2026-05-18T19:34:25.331Z","repository":{"id":300624357,"uuid":"1006650580","full_name":"jscode-1302/task-tracker","owner":"jscode-1302","description":"A simple Python CLI app to create, view, and manage your tasks efficiently.","archived":false,"fork":false,"pushed_at":"2025-07-01T16:52:08.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-07T23:49:14.372Z","etag":null,"topics":["beginner-project","cli","json","python","task-management"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jscode-1302.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-22T18:10:59.000Z","updated_at":"2025-07-01T16:52:11.000Z","dependencies_parsed_at":"2025-09-07T23:40:41.476Z","dependency_job_id":"2dfda007-0c8f-4da7-af06-cb3a96012bce","html_url":"https://github.com/jscode-1302/task-tracker","commit_stats":null,"previous_names":["jscode-1302/task-tracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jscode-1302/task-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscode-1302%2Ftask-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscode-1302%2Ftask-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscode-1302%2Ftask-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscode-1302%2Ftask-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jscode-1302","download_url":"https://codeload.github.com/jscode-1302/task-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscode-1302%2Ftask-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33188603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"ssl_error","status_checked_at":"2026-05-18T09:27:28.300Z","response_time":71,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beginner-project","cli","json","python","task-management"],"created_at":"2025-06-24T00:01:47.414Z","updated_at":"2026-05-18T19:34:25.312Z","avatar_url":"https://github.com/jscode-1302.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Tracker CLI\n\n[![Python](https://img.shields.io/badge/python-v3.7+-blue.svg)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![Platform](https://img.shields.io/badge/platform-windows%20|%20macOS%20|%20linux-lightgrey.svg)](https://github.com/jscode-1302/task-tracker)\n\nA simple command-line interface (CLI) application to track and manage your tasks and to-do list. Built with Python, this project demonstrates fundamental programming concepts including file I/O, JSON data persistence, object-oriented programming, and CLI development.\n\n## ✨ Features\n\n- ✅ Add new tasks with descriptions\n- ✏️ Update existing task descriptions\n- 🗑️ Delete tasks by ID\n- 📋 Mark tasks as in-progress or completed\n- 📊 List all tasks or filter by status\n- 💾 Persistent storage using JSON files\n- 🔍 Input validation and error handling\n\n## 🚀 Quick Start\n\n```bash\n# Clone the repository\ngit clone https://github.com/jscode-1302/task-tracker.git\ncd task-tracker\n\n# Run the application\npython main.py\n\n# Add your first task\nadd 'Learn Python CLI development'\n```\n\n## 📋 Requirements\n\n- **Python**: 3.7 or higher\n- **Operating System**: Windows, macOS, or Linux\n- **Dependencies**: None (uses only Python standard library)\n\n## 🛠️ Installation\n\n### Method 1: Clone from GitHub\n\n```bash\ngit clone https://github.com/jscode-1302/task-tracker.git\ncd task-tracker\npython main.py\n```\n\n### Method 2: Download ZIP\n\n1. Download the ZIP file from the [repository](https://github.com/jscode-1302/task-tracker)\n2. Extract to your desired location\n3. Navigate to the folder in your terminal\n4. Run `python main.py`\n\n## 📖 Usage Guide\n\nThe application runs in interactive mode. After starting, you'll see a welcome message and can enter commands.\n\n### 📝 Adding Tasks\n\n```bash\nadd 'Buy groceries'\n# Output: Task added successfully (ID: 1)\n\nadd 'Complete Python project'\n# Output: Task added successfully (ID: 2)\n```\n\n### ✏️ Updating Tasks\n\n```bash\nupdate 1 'Buy groceries and cook dinner'\n# Output: Task updated successfully!\n```\n\n### 🗑️ Deleting Tasks\n\n```bash\ndelete 1\n# Output: Task deleted successfully!\n```\n\n### 🏷️ Managing Task Status\n\n```bash\n# Mark as in progress\nmark-in-progress 1\n# Output: Task marked in progress successfully!\n\n# Mark as completed\nmark-done 1\n# Output: Task marked done successfully!\n```\n\n### 📋 Viewing Tasks\n\n```bash\n# List all tasks\nlist\n\n# List by status\nlist todo\nlist in-progress\nlist done\n```\n\n### 💡 Getting Help\n\n```bash\nhelp\n# Shows all available commands and usage examples\n```\n\n## 💻 Example Session\n\n```bash\nWelcome!\nEnter 'help' to see the commands\n\n\u003e add 'Learn Python OOP'\nTask added successfully (ID: 1)\n\n\u003e add 'Build a CLI app'\nTask added successfully (ID: 2)\n\n\u003e mark-in-progress 1\nTask marked in progress successfully!\n\n\u003e list\nID: 1 - Description: Learn Python OOP - Status: in-progress - Created at: 01/07/2025 - Updated at: 01/07/2025\nID: 2 - Description: Build a CLI app - Status: todo - Created at: 01/07/2025 - Updated at: 01/07/2025\n\n\u003e mark-done 1\nTask marked done successfully!\n\n\u003e list done\nID: 1 - Description: Learn Python OOP - Status: done - Created at: 01/07/2025 - Updated at: 01/07/2025\n```\n\n## 🏗️ Project Structure\n\n```\ntask-tracker-cli/\n│\n├── main.py          # Main application entry point and CLI interface\n├── models.py        # Task and TaskManager classes\n├── utils.py         # Utility functions for data handling\n├── tasks.json       # JSON file for persistent data storage (auto-generated)\n├── .gitignore       # Git ignore rules\n├── LICENSE          # MIT License\n└── README.md        # Project documentation\n```\n\n## 🔧 Technical Details\n\n### Core Classes\n\n**Task Class**\n- **Properties**: id, description, status, created_at, updated_at\n- **Validation**: Ensures task descriptions are at least 3 characters long\n- **Features**: Automatic timestamp management and string representations\n\n**TaskManager Class**\n- **Functionality**: Manages all task operations (CRUD)\n- **Data Handling**: JSON serialization/deserialization\n- **Features**: Automatic ID generation and file persistence\n\n### Data Storage Format\n\nTasks are stored in `tasks.json` with this structure:\n\n```json\n[\n    {\n        \"id\": 1,\n        \"description\": \"Sample task\",\n        \"status\": \"todo\",\n        \"created_at\": \"01/07/2025\",\n        \"updated_at\": \"01/07/2025\"\n    }\n]\n```\n\n### Available Status Types\n\n| Status | Description |\n|--------|-------------|\n| `todo` | Default status for new tasks |\n| `in-progress` | Tasks currently being worked on |\n| `done` | Completed tasks |\n\n## 🛠️ Troubleshooting\n\n**Common Issues:**\n\n- **\"Command not recognized\"**: Make sure you're using the exact command format shown in `help`\n- **\"Invalid command or format\"**: Check that task descriptions are enclosed in single quotes\n- **\"Id not found\"**: Verify the task ID exists by running `list`\n- **Python not found**: Ensure Python 3.7+ is installed and in your PATH\n\n**File Issues:**\n- The `tasks.json` file is created automatically on first use\n- If the file becomes corrupted, delete it and restart the application\n\n## 🎯 Key Programming Concepts Demonstrated\n\n- **Object-Oriented Design**: Clean separation between Task entities and TaskManager operations\n- **Data Persistence**: JSON file storage with automatic loading/saving\n- **Input Validation**: Regex-based command parsing with comprehensive error handling\n- **User Experience**: Clear success/error messages and help documentation\n- **Error Handling**: Graceful handling of invalid inputs and edge cases\n\n## 🚀 Future Enhancements\n\n- [ ] Add task priorities (high, medium, low)\n- [ ] Implement due dates and reminders\n- [ ] Add task categories/tags\n- [ ] Export tasks to different formats (CSV, TXT)\n- [ ] Add search functionality\n- [ ] Implement task completion statistics\n- [ ] Add task dependencies\n- [ ] Create a web interface version\n\n## 🤝 Contributing\n\nThis is a learning project, but contributions are welcome! Here's how you can help:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'Add some amazing feature'`)\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\n### Development Setup\n\n```bash\ngit clone https://github.com/yourusername/task-tracker.git\ncd task-tracker\n# Make your changes\npython main.py  # Test your changes\n```\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🎓 About This Project\n\nThis project was built as part of my journey learning Python and backend development. It demonstrates core programming concepts including:\n\n- Object-oriented programming principles\n- File I/O operations and JSON handling\n- Regular expressions for input parsing\n- Error handling and validation\n- CLI application development\n\n**Project inspired by:** [roadmap.sh Task Tracker CLI Project](https://roadmap.sh/projects/task-tracker)\n\n---\n\n⭐ **Found this helpful?** Give it a star on GitHub!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjscode-1302%2Ftask-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjscode-1302%2Ftask-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjscode-1302%2Ftask-tracker/lists"}