Task-Master is a desktop application built with Python and Tkinter GUI toolkit. It allows users to manage their tasks efficiently by providing features like adding tasks with deadlines, marking tasks as complete, to do, or in progress, deleting tasks, and prioritizing important tasks.
- User Authentication: The application requires users to log in with a username, which is stored in a configuration file.
- Task Management: Users can add tasks by specifying the task name, deadline date and time, and status (To Do, In Progress, or Complete).
- Task Treeview: All tasks are displayed in a treeview with columns for Task, Deadline, and Status.
- Task Status Manipulation: Users can mark tasks as complete, in progress, or to-do using dedicated buttons.
- Task Deletion: Users can delete selected tasks from the treeview.
- Task Prioritisation: Task prioritisation is now stored in the cloud database, ensuring it saves over sessions and devices.
- Edit Existing Tasks: Added support for editing existing tasks intuitively.
- Input Validation: Input validation has been implemented to improve data integrity.
- Error Handling: Implemented error handling for database operations to provide a smoother user experience.
- Improved User Interface: Improving the user interface and user experience with features such as resizable window and better layout.
- Code Refactoring: Refactored the code to follow best practices, including separating concerns and using functions/methods for better maintainability.
- Python 3.11.x
- tkcalendar (a calendar widget for Tkinter)
- firebase_admin (Python Firebase Admin SDK)
- Ensure you have Python 3.11.x installed on your system.
- Install the required Python packages by running the following command:
pip install tkcalendar firebase_admin python-dotenv
- Follow the instructions inside
credentials.json
file to set up the database.
- Run the
Task-Master.py
script using Python. - If this is your first time using the application, enter a username in the provided field and click the "Login" button.
- The main window of the Task Manager application will appear.
- Enter the task details, including the task name, deadline date, deadline time, and status (To Do or In Progress).
- Click on the "Add Task" button to add the task to the list.
- Tasks will be displayed in the treeview with columns for Task, Deadline, and Status.
- Right-click on a task to access the context menu with the option to prioritise the task.
- Use the "Mark Complete," "Mark In Progress," and "Mark To Do" buttons to change the status of a task.
- Use the "Delete Selected" button to delete selected tasks.
- The application uses a graphical user interface (GUI) built with Tkinter.
- Task data is stored in a Firebase Realtime Database, ensuring data persistence across devices and sessions.
- The application logs activity to a file named
task_manager.log
in the same directory as the script. - Tooltips are provided for input fields to guide users on their usage.
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.
This project is licensed under the MIT License.
- The Firebase Realtime Database integration utilizes the Firebase Admin SDK for Python.
- The tkcalendar package provides the calendar widget used for selecting deadline dates.
- Circuit
- Gelvey