|
| 1 | +# Easy-TaskManagerCLI |
| 2 | +ITS NOT A OS TASK MANAGER ITS AN ACCTUAL TASK MANAGER FOR YOUR PERSONAL TASKS! |
| 3 | +Despite the name, this is a to-do list manager rather than a Windows task manager - it manages your personal tasks and to-do items in json form. NOT SYSTEM PROCESSES |
| 4 | +A simple and efficient command-line task manager for Windows. Manage your tasks directly from the terminal with an interactive menu or quick CLI commands. |
| 5 | + |
| 6 | +Simple is key! |
| 7 | +## Features |
| 8 | + |
| 9 | +- Interactive menu interface with keyboard navigation |
| 10 | + - Up arrow: navigating up |
| 11 | + - Down arrow: navigating down |
| 12 | + - SPACE: checks the task |
| 13 | + - ENTER: quit the tasks view |
| 14 | +- Add, remove, and edit tasks from the command line |
| 15 | +- Toggle task completion status (with SPACEBAR) |
| 16 | +- Persistent storage in JSON format |
| 17 | +- Data stored in AppData for proper Windows integration |
| 18 | +- Quick command shortcuts for power users |
| 19 | + |
| 20 | +## What It Does |
| 21 | + |
| 22 | +TaskManagerCLI is a lightweight task management tool that runs entirely in your terminal. It maintains a list of tasks with unique IDs, descriptions, and completion status. All data is automatically saved to `%appdata%\Simple-TaskManagerCLITool\tasks.json`, ensuring your tasks persist between sessions. You can easily transfer your `tasks.json` however you want as long as the naming remains the same: `tasks.json`. |
| 23 | + |
| 24 | +The tool offers two modes of operation: |
| 25 | +1. **Interactive Mode**: Launch the menu-driven interface to browse and manage tasks using arrow keys |
| 26 | +2. **Command Mode**: Execute quick actions directly from the command line |
| 27 | + |
| 28 | +## Installation |
| 29 | + |
| 30 | +### Requirements |
| 31 | + |
| 32 | +- Windows 10 or later |
| 33 | +- .NET 9.0 Runtime or SDK |
| 34 | +- Powershell :)) |
| 35 | + |
| 36 | +### Installation Steps |
| 37 | + |
| 38 | +1. Clone this repository or download the release |
| 39 | +2. Navigate to the project directory |
| 40 | +3. Run the installer script: |
| 41 | + |
| 42 | +```powershell |
| 43 | +powershell -ExecutionPolicy Bypass -File .\install.ps1 |
| 44 | +``` |
| 45 | + |
| 46 | +The installer will: |
| 47 | +- Build the project in Release mode |
| 48 | +- Copy files to `%localappdata%\Programs\TaskManagerCLI` |
| 49 | +- Rename the executable to `tasks.exe` |
| 50 | +- Add the program to your PATH environment variable |
| 51 | + |
| 52 | +4. Restart your terminal |
| 53 | +5. Type `tasks` to start using the tool |
| 54 | + |
| 55 | +Alternatively just right click the `install.ps1` and click "Run with PowerShell" to install |
| 56 | +### Uninstallation |
| 57 | + |
| 58 | +To remove TaskManagerCLI: |
| 59 | + |
| 60 | +```powershell |
| 61 | +powershell -ExecutionPolicy Bypass -File .\install.ps1 -Uninstall |
| 62 | +``` |
| 63 | + |
| 64 | +## Usage |
| 65 | + |
| 66 | +### Interactive Mode |
| 67 | + |
| 68 | +Launch the interactive menu by running: |
| 69 | + |
| 70 | +```powershell |
| 71 | +tasks |
| 72 | +``` |
| 73 | + |
| 74 | +**Keyboard Controls:** |
| 75 | +- Up/Down Arrow Keys: Navigate through tasks |
| 76 | +- Spacebar: Toggle task completion status |
| 77 | +- Enter: Exit the interactive menu |
| 78 | + |
| 79 | +### Command Line Mode |
| 80 | + |
| 81 | +**View Help:** |
| 82 | +```powershell |
| 83 | +tasks help |
| 84 | +tasks --help |
| 85 | +tasks --h |
| 86 | +``` |
| 87 | + |
| 88 | +**Add a Task:** |
| 89 | +```powershell |
| 90 | +tasks add "Buy groceries" |
| 91 | +tasks add "Finish project documentation" |
| 92 | +``` |
| 93 | + |
| 94 | +**Remove a Task:** |
| 95 | +```powershell |
| 96 | +tasks remove 1 |
| 97 | +``` |
| 98 | + |
| 99 | +**Edit a Task:** |
| 100 | +```powershell |
| 101 | +tasks edit 1 "Buy groceries and cook dinner" |
| 102 | +``` |
| 103 | + |
| 104 | +## Data Storage |
| 105 | + |
| 106 | +All tasks are stored in a JSON file located at: |
| 107 | +``` |
| 108 | +%appdata%\Simple-TaskManagerCLITool\tasks.json |
| 109 | +``` |
| 110 | + |
| 111 | +The data structure includes: |
| 112 | +- Task ID (auto-incremented) |
| 113 | +- Task description |
| 114 | +- Completion status (true/false) |
| 115 | + |
| 116 | +## Development |
| 117 | + |
| 118 | +### Building from Source |
| 119 | + |
| 120 | +```powershell |
| 121 | +dotnet build |
| 122 | +``` |
| 123 | + |
| 124 | +### Publishing |
| 125 | + |
| 126 | +```powershell |
| 127 | +dotnet publish -c Release -r win-x64 --self-contained false -o publish |
| 128 | +``` |
| 129 | + |
| 130 | +### Project Structure |
| 131 | + |
| 132 | +- `Program.cs`: Core task management logic and data persistence |
| 133 | +- `UserInterface.cs`: Interactive menu and command-line argument handling |
| 134 | +- `install.ps1`: Automated installation and uninstallation script |
| 135 | + |
| 136 | +## Technical Details |
| 137 | + |
| 138 | +- **Language**: C# |
| 139 | +- **Framework**: .NET 9.0 |
| 140 | +- **JSON Serialization**: Newtonsoft.Json |
| 141 | +- **Storage**: Local AppData directory |
| 142 | +- **Platform**: Windows (win-x64) |
| 143 | + |
| 144 | +## License |
| 145 | + |
| 146 | +This project is open source and available for personal and commercial use. |
| 147 | + |
| 148 | +## Contributing |
| 149 | + |
| 150 | +Contributions are welcome. Please fork the repository and submit pull requests for any improvements or bug fixes. This is practice for me and im still learning, so don't hesitate to point out flaws ! |
0 commit comments