TaskMate is a powerful and user-friendly task management system built with Java. It helps users manage their tasks efficiently, with features like task creation, editing, filtering, and completion. The application stores tasks in an SQLite database and supports both command-line and TUI-based interaction, making it flexible for different use cases.
- Task Management: Create, edit, delete, and mark tasks as complete.
- Task Filtering: Filter tasks based on status, tags, or due date.
- Tag-Based Search: Search for tasks using specific tags in their descriptions.
- Autocomplete: Speed up task creation and editing using JLine Reader's autocomplete functionality.
- TUI (Text User Interface): Integrated TUI using TMUX and Bash to create a streamlined workflow.
- Persistent Storage: All tasks are stored in an SQLite database for persistence.
- Java 11 or above.
- SQLite 3.
- Maven
- TMUX (for TUI support).
- Bash (for TUI startup script).
git clone https://github.com/yourusername/taskmate.git
- Ensure you have SQLite installed. Check by running:
sqlite3
- Ensure maven is installed. Check by running:
mvn --version
- For TUI to work, you need to install tmux To install tmux, run:
sudo apt install tmux
To check tmux version use:
tmux --version
- Go to the TaskMate directory
cd path/to/directory/Taskmate/
- Run the following command:
mvn compile
chmod +x TaskMate.sh
It'd take around 30 seconds to configure for the fist time and now you're all set to keep track of your tasks using TaskMate.
To use the TUI, run the Bash startup script:
./TaskMate.sh
Create Table Rename Table Delete Table Edit Task rename Project delete project Filter Task Insert Task - 4 methods Display all Task Mark task as done Delete task via Task Delete task via Id Search Id Search Task SearchTag searchInDates searchInToday searchInWeek searchInMonth SortDue disconnect
- User Authentication: Add multi-user support with login functionality.
- Recurring Tasks: Allow users to add recurring tasks.
- File Handling: Add functionality for attaching files or documents to tasks.
- Notifications: Implement reminder notifications for upcoming or overdue tasks.
- Project Sharing: Implement functionality to share a common project and all the tasks attached with it.
- User Dashboard: Add a stastical view in User Dashboard
- Task Add-ons: Implement feature to include sub-tasks and file attachments in description
- Multi-line Editor: Add feature for multi-line description editor.
- Edit Buffer: Implement feature so that any editing doesn't require complete rewriting of that field.
- Filter: Improve the task filtering logic currently available.
And if I sometime decide to learn Go then:
- Implement using Charm
We welcome contributions to improve the TaskMate project! Feel free to fork the repository and submit a pull request. Please ensure that your code follows our guidelines and is properly documented.
For any questions or feedback, feel free to reach out to the project maintainer:
- Email: [email protected]
- GitHub: Vijha742