{"id":28103174,"url":"https://github.com/hk151109/task_manager","last_synced_at":"2025-05-13T20:27:18.856Z","repository":{"id":288942768,"uuid":"969599666","full_name":"hk151109/Task_Manager","owner":"hk151109","description":"The Task Manager GUI Application is a user-friendly desktop tool that allows users to manage their tasks efficiently through an intuitive graphical interface.","archived":false,"fork":false,"pushed_at":"2025-04-20T15:14:44.000Z","size":859,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-20T16:26:26.030Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hk151109.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-04-20T14:18:49.000Z","updated_at":"2025-04-20T15:14:47.000Z","dependencies_parsed_at":"2025-04-21T11:32:14.441Z","dependency_job_id":null,"html_url":"https://github.com/hk151109/Task_Manager","commit_stats":null,"previous_names":["hk151109/task_manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hk151109%2FTask_Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hk151109%2FTask_Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hk151109%2FTask_Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hk151109%2FTask_Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hk151109","download_url":"https://codeload.github.com/hk151109/Task_Manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254020843,"owners_count":22000793,"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":[],"created_at":"2025-05-13T20:27:10.129Z","updated_at":"2025-05-13T20:27:18.850Z","avatar_url":"https://github.com/hk151109.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Manager GUI Application\n\n## Overview\n\nThe Task Manager GUI Application is a user-friendly desktop tool that allows users to manage their tasks efficiently through an intuitive graphical interface. This application transforms the original command-line task manager into a modern, easy-to-use GUI application while maintaining all the core functionality.\n\nUsers can:\n- Register and login using their email and password\n- Add, delete, modify, and view tasks with a few clicks\n- Email their task list to themselves\n- Track task details including start date/time, end date/time, and status\n\nThis project uses `pandas` for data management, `tkinter` for the GUI interface, `tkcalendar` for date selection, `smtplib` for email functionality, and regular expressions for input validation.\n\n**System Architecture**\n![](screenshots/system_arch_1.png)\n\n![](screenshots/system_arch_2.png)\n\n**Login/Registration Page**\n\n![Login Screen](screenshots/login_screen.png)\n\n\n**Add Task**\n\n![Add Task](screenshots/add_task.png)\n\n\n**View Tasks**\n\n![View Tasks](screenshots/view_tasks.png)\n\n**Delete Task**\n\n![Delete Task](screenshots/delete_task.png)\n\n\n## Features\n\n### 1. User-Friendly Interface\n- **Modern GUI**: Clean, intuitive interface with a sidebar navigation system\n- **Form-Based Inputs**: Easy-to-use forms replace command-line prompts\n- **Visual Task Cards**: Tasks are displayed as visual cards with color-coded status indicators\n- **Calendar Widget**: Date selection via an interactive calendar widget\n\n### 2. User Authentication\n- **Registration Form**: New users can register with email, password, and name\n- **Login System**: Returning users can easily log in with their credentials\n- **Validation**: Real-time validation of email formats and password correctness\n\n### 3. Task Management\n- **Add Tasks**: Add new tasks through an intuitive form with date pickers\n- **Delete Tasks**: Delete tasks through a visual selection interface\n- **Modify Tasks**: Easy-to-use interface for modifying any aspect of existing tasks\n- **View Tasks**: Tasks are displayed in a scrollable list with visual status indicators\n\n### 4. Task Details\n- Task name\n- Start date and time\n- End date and time\n- Task status (Upcoming, Ongoing, or Completed)\n- Visual status indicators (color-coded)\n\n### 5. Email Functionality\n- Email your complete task list to your registered email address\n- Well-formatted email with all task details\n\n## Requirements\n\nTo run the application, you need the following:\n\n- Python 3.7+\n- Required Python libraries:\n  - `pandas` - for managing task and user data\n  - `tkinter` - for the GUI interface (included with standard Python)\n  - `tkcalendar` - for the date selection widget\n  - `re` - for input validation using regular expressions\n  - `datetime` - for date and time manipulation\n  - `smtplib` - for sending emails\n\nYou can install the required libraries using pip:\n\n```bash\npip install pandas tkcalendar\n```\n\n## File Structure\n\n```bash\n├── task_manager_gui.py    # Main GUI application code\n├── task_manager.py\n├── users.csv              # CSV file to store user data\n├── task_manager.csv       # CSV file to store task data\n├── README.md              # This README file\n└── screenshots/           # Optional folder containing application screenshots\n```\n\n## Installation and Setup\n\n1. **Clone or download** the repository to your local machine.\n\n2. **Install required dependencies**:\n   ```bash\n   pip install pandas tkcalendar\n   ```\n\n3. **Run the application**:\n   ```bash\n   python task_manager_gui.py\n   ```\n\n## How to Use\n\n### 1. Launch the Application\nRun the script to open the Task Manager GUI:\n```bash\npython task_manager_gui.py\n```\n\n### 2. User Registration/Login\n- **First-time users**: Enter your email address, and the application will prompt you to complete registration by providing your name and password.\n- **Returning users**: Enter your registered email and password to log in.\n\n### 3. Dashboard Navigation\nAfter logging in, you'll see the main dashboard with a sidebar containing the following options:\n- **Add Task**: Create a new task\n- **Delete Task**: Remove an existing task\n- **Modify Task**: Change details of an existing task\n- **View Tasks**: Display all your tasks\n- **Email Tasks**: Send your task list to your email\n\n### 4. Adding a Task\n1. Click on \"Add Task\" in the sidebar\n2. Fill in the task details:\n   - Task Name\n   - Start Date (select from calendar)\n   - Start Time (HH:MM format)\n   - End Date (select from calendar)\n   - End Time (HH:MM format)\n3. Click \"Add Task\" to save\n\n### 5. Deleting a Task\n1. Click on \"Delete Task\" in the sidebar\n2. Select the task you want to delete from the list\n3. Click \"Delete Selected Task\"\n4. Confirm the deletion when prompted\n\n### 6. Modifying a Task\n1. Click on \"Modify Task\" in the sidebar\n2. Follow the three-step process:\n   - Select the task to modify\n   - Choose what aspect to modify (name, dates, times, or status)\n   - Enter the new value\n3. Click \"Apply Changes\" to save\n\n### 7. Viewing Tasks\n1. Click on \"View Tasks\" in the sidebar\n2. Browse through your tasks in the scrollable list\n3. Tasks are color-coded by status:\n   - Yellow: Upcoming\n   - Blue: Ongoing\n   - Green: Completed\n\n### 8. Emailing Tasks\n1. Click on \"Email Tasks\" in the sidebar\n2. The application will automatically send your tasks to your registered email address\n3. A confirmation message will appear when the email is sent successfully\n\n### 9. Logging Out\nClick the \"Logout\" button in the top-right corner of the dashboard to return to the login screen.\n\n## Code Structure and Components\n\n### Main Classes and Functions\n\n#### `TaskManagerApp` Class\nThe primary class that manages the entire application. It initializes the GUI and handles all functionality.\n\n#### Key Methods:\n- `__init__(self, root)`: Initializes the application and loads data\n- `create_login_frame(self)`: Creates the login/registration interface\n- `process_login(self)`: Handles user authentication and registration\n- `show_task_dashboard(self)`: Displays the main dashboard after login\n- `show_add_task(self)`, `show_delete_task(self)`, `show_modify_task(self)`, `show_view_tasks(self)`: Methods for each task management screen\n- `process_add_task(self, ...)`, `process_delete_task(self, ...)`, `process_modify_task(self, ...)`: Methods that handle the actual data operations\n- `email_tasks(self)`: Sends the task list via email\n\n### GUI Components\n\n1. **Frames**:\n   - `login_frame`: Login and registration\n   - `dashboard_frame`: Main application frame\n   - `sidebar_frame`: Navigation sidebar\n   - `content_frame`: Main content area that changes based on selected action\n\n2. **Widgets**:\n   - Entry fields for text input\n   - DateEntry widgets from tkcalendar for date selection\n   - Buttons for actions\n   - Labels for displaying information\n   - Listboxes for selecting tasks\n   - Radiobuttons for options\n   - Scrollable canvas for task list\n\n3. **Dynamic Content**:\n   The application dynamically updates the content frame based on user actions without reloading the entire interface.\n\n## Data Management\n\n### CSV Files\nThe application uses two CSV files to store data:\n\n1. **users.csv**: Stores user information\n   ```csv\n   user_email,user_password,user_name\n   example@example.com,secretpassword,John Doe\n   ```\n\n2. **task_manager.csv**: Stores task details\n   ```csv\n   user_email,task_name,task_start_date,task_start_time,task_end_date,task_end_time,task_status\n   example@example.com,Task 1,2025-01-05,09:00:00,2025-01-05,11:00:00,Upcoming\n   ```\n\n### Data Handling\n- **pandas DataFrames**: All data is loaded into pandas DataFrames for efficient manipulation\n- **Real-time Updates**: Changes are immediately saved to CSV files\n- **User-specific Data**: Tasks are filtered by user email to ensure each user only sees their own tasks\n\n## Input Validation\n\nThe application includes thorough validation for all inputs:\n\n- **Email Format**: Validates email addresses using regular expressions\n- **Required Fields**: Ensures all required fields are completed\n- **Time Format**: Ensures times are entered in HH:MM format\n- **Confirmation Dialogs**: Confirms potentially destructive actions like deletion\n\n## Email Functionality\n\nThe application can send emails with the complete task list:\n\n1. **SMTP Connection**: Establishes a connection to the Gmail SMTP server\n2. **Authentication**: Uses the application's email credentials\n3. **Email Construction**: Creates a formatted email with all task details\n4. **Delivery**: Sends the email to the user's registered email address\n\n## Customization\n\nYou can customize the application in several ways:\n\n1. **Appearance**: Modify colors, fonts, and layout in the code\n2. **Email Settings**: Update the email sender credentials in the `email_tasks` method\n3. **Field Validations**: Adjust validation rules in the respective processing methods\n\n## Troubleshooting\n\n### Common Issues and Solutions\n\n1. **Application won't start**:\n   - Ensure Python 3.7+ is installed\n   - Verify all required libraries are installed\n   - Check for syntax errors if you've modified the code\n\n2. **Login issues**:\n   - Make sure users.csv exists and has the correct format\n   - Check if the email and password match exactly (case-sensitive)\n\n3. **Email sending fails**:\n   - Ensure you have internet connectivity\n   - Check if the sender email and password are correct\n   - Some email providers may block login attempts from applications\n\n4. **Date/Time issues**:\n   - Make sure dates are valid\n   - Times must be in 24-hour format (HH:MM)\n\n## Future Enhancements\n\nPotential improvements for future versions:\n\n1. **Task Categories/Tags**: Ability to categorize tasks\n2. **Search Functionality**: Search for specific tasks\n3. **Task Sorting**: Sort tasks by date, status, etc.\n4. **Dark Mode**: Add a dark mode option\n5. **Task Notifications**: Set up desktop notifications for upcoming tasks\n6. **Data Encryption**: Enhanced security for user data\n7. **Task Dependencies**: Set up dependencies between tasks\n8. **User Preferences**: Customizable settings for individual users\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhk151109%2Ftask_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhk151109%2Ftask_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhk151109%2Ftask_manager/lists"}