{"id":25536365,"url":"https://github.com/yashksaini-coder/task-tracker","last_synced_at":"2025-04-11T14:50:40.667Z","repository":{"id":257617187,"uuid":"850749270","full_name":"yashksaini-coder/Task-Tracker","owner":"yashksaini-coder","description":"A simple CLI tool for keeping track of your tasks. Built with Python","archived":false,"fork":false,"pushed_at":"2025-04-10T12:23:23.000Z","size":411,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T13:46:01.851Z","etag":null,"topics":["cli","command-line-tool","cosnole","python","rich"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yashksaini-coder.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}},"created_at":"2024-09-01T17:09:28.000Z","updated_at":"2025-04-10T12:23:27.000Z","dependencies_parsed_at":"2024-09-17T19:36:57.979Z","dependency_job_id":"503d7c55-5d62-4dd2-b78c-8875696bbb26","html_url":"https://github.com/yashksaini-coder/Task-Tracker","commit_stats":null,"previous_names":["yashksaini-coder/task-tracker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashksaini-coder%2FTask-Tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashksaini-coder%2FTask-Tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashksaini-coder%2FTask-Tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashksaini-coder%2FTask-Tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yashksaini-coder","download_url":"https://codeload.github.com/yashksaini-coder/Task-Tracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248424252,"owners_count":21101144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","command-line-tool","cosnole","python","rich"],"created_at":"2025-02-20T04:32:51.396Z","updated_at":"2025-04-11T14:50:40.645Z","avatar_url":"https://github.com/yashksaini-coder.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./public/demo.png\" alt=\"Task Tracker CLI\"/\u003e\n    \u003c!-- \u003cimg src=\"https://socialify.git.ci/yashksaini-coder/Task-Tracker/image?forks=1\u0026issues=1\u0026language=1\u0026name=1\u0026pulls=1\u0026stargazers=1\u0026theme=Auto\" alt=\"Task Tracker CLI\" width=\"640\" height=\"320\" /\u003e --\u003e\n\u003c/div\u003e\n\u003cbr\u003e\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg alt=\"GitHub Repo Name\" src=\"https://img.shields.io/badge/Task_Tracker-7209b7\"\u003e\n    \u003cimg alt=\"GitHub Author\" src=\"https://img.shields.io/badge/Author-Yash%20K.%20Saini-006d77\"\u003e\n    \u003cimg alt=\"GitHub commit-activity\" src=\"https://img.shields.io/github/commit-activity/t/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Created At\" src=\"https://img.shields.io/github/created-at/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Last Commit\" src=\"https://img.shields.io/github/last-commit/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Repo Size\" src=\"https://img.shields.io/github/repo-size/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/github/license/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Open Issues\" src=\"https://img.shields.io/github/issues/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Closed Issues\" src=\"https://img.shields.io/github/issues-closed/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Open PR\" src=\"https://img.shields.io/github/issues-pr/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Closed PR\" src=\"https://img.shields.io/github/issues-pr-closed/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Forks\" src=\"https://img.shields.io/github/forks/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Stars\" src=\"https://img.shields.io/github/stars/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub Watchers\" src=\"https://img.shields.io/github/watchers/yashksaini-coder/Task-Tracker\"\u003e\n    \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/yashksaini-coder/Task-Tracker\"\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cdiv align='center' style=\" display: grid;\"\u003e\n\n  [![Gmail](https://img.shields.io/badge/Gmail-D14836?style=for-the-badge\u0026logo=gmail\u0026logoColor=white)](mailto:ys3853428@gmail.com)\n  [![Github](https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/yashksaini-coder)\n  [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge\u0026logo=medium\u0026logoColor=white)](https://medium.com/@yashksaini)\n  [![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)](https://www.linkedin.com/in/yashksaini/)\n  [![Bento](https://img.shields.io/badge/Bento-768CFF.svg?style=for-the-badge\u0026logo=Bento\u0026logoColor=white)](https://bento.me/yashksaini)\n[![Instagram](https://img.shields.io/badge/Instagram-%23FF006E.svg?style=for-the-badge\u0026logo=Instagram\u0026logoColor=white)](https://www.instagram.com/yashksaini.codes/)\n  [![X](https://img.shields.io/badge/X-%23000000.svg?style=for-the-badge\u0026logo=X\u0026logoColor=white)](https://twitter.com/EasycodesDev) \n\u003c/div\u003e\n\n---\n\n# Task Tracker CLI Project\n\nThe **Task Tracker** is a command-line interface (CLI) project designed to help you track and manage tasks. It allows you to add, update, and delete tasks, as well as mark tasks as \"in-progress\" or \"done.\" This project will help you practice essential programming skills, including working with the filesystem, handling user inputs, and building a basic CLI application.\n\n## Requirements\n\nThe application should run from the command line, accept user actions and inputs as arguments, and store the tasks in a JSON file. The user should be able to:\n\n- Add, Update, and Delete tasks\n- Mark a task as \"in-progress\" or \"done\"\n- List all tasks\n- List all tasks that are marked as \"done\"\n- List all tasks that are marked as \"todo\"\n- List all tasks that are marked as \"in-progress\"\n\n### Constraints\n\n- You can use any programming language to build this project.\n- Use **positional arguments** in the command line to accept user inputs.\n- Use a **JSON file** to store the tasks in the current directory.\n- The JSON file should be created if it does not exist.\n- Use the **native filesystem module** of your programming language to interact with the JSON file.\n- Do not use any external libraries or frameworks to build this project.\n- Ensure to handle errors and edge cases gracefully.\n\n## Example Commands\n\nHere are some example commands and their usage:\n\n```bash\n# Adding a new task\ntaskr add \"Buy groceries\"\n# Output: Task added successfully (ID: 1)\n\n# Updating and deleting tasks\ntaskr update 1 \"Buy groceries and cook dinner\"\ntaskr delete 1\n\n# Marking a task as in-progress or done\ntaskr mark-in-progress 1\ntaskr mark-done 1\n\n# Listing all tasks\ntaskr list\n\n# Listing tasks by status\ntaskr list done\ntaskr list todo\ntaskr list in-progress\n```\n\n## Task Properties\n\nEach task should have the following properties:\n\n- `id`: A unique identifier for the task\n- `description`: A short description of the task\n- `status`: The status of the task (`todo`, `in-progress`, `done`)\n- `createdAt`: The date and time when the task was created\n- `updatedAt`: The date and time when the task was last updated\n\nThese properties should be stored in the JSON file when adding a new task and updated when modifying a task.\n\n## Conclusion\n\nThis project is an opportunity to improve your programming and CLI development skills. It allows you to practice interacting with the filesystem, handling JSON data, and managing user input via the command line—all while building a useful task-tracking tool.\n\nOriginal Project Link: [Task Tracker CLI](https://roadmap.sh/projects/task-tracker)\n\n---\n\n## Getting Started\n\n### Prerequisites\n\nMake sure you have Python installed on your system. You can download it from [python.org](https://www.python.org/).\n\n### Installation\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/yashksaini-coder/Task-Tracker.git\n    cd Task-Tracker\n    ```\n\n2. Create a virtual environment:\n    ```sh\n    python -m venv venv\n    ```\n\n3. Activate the virtual environment:\n    - On Windows:\n        ```sh\n        venv\\Scripts\\activate\n        ```\n    - On macOS/Linux:\n        ```sh\n        source venv/bin/activate\n        ```\n\n4. Install the required dependencies:\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n### Usage\n\n1. Run the Task Tracker CLI:\n    ```sh\n    pip install -e .\n    task-tracker    \n    ```\n\n2. Follow the on-screen instructions to add, view, update, or delete tasks.\n\n### Basic Commands\n\n- **Add a Task**: \n    ```sh\n    taskr add \"Task Description\"\n    ```\n\n- **View All Tasks**: \n    ```sh\n    taskr list [status]\n    ```\n\n- **Update a Task**: \n    ```sh\n    taskr update \u003ctask_id\u003e \"New Task Description\"\n    ```\n\n- **Delete a Task**: \n    ```sh\n    taskr delete \u003ctask_id\u003e\n    ```\n\n### License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashksaini-coder%2Ftask-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyashksaini-coder%2Ftask-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashksaini-coder%2Ftask-tracker/lists"}