Skip to content

This is a todo list and task manager for people that have trouble focusing or have ADD or ADHD

License

Notifications You must be signed in to change notification settings

apatrickegan/TodoADHD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MOST IMPORTANT

Todoist is not neccessary, it is just an idea on a way to integrate it with an app on the phone.) Google Tasks, keep, or some other task system or even a mySQL connection. I don't really care. but the concept is that tasks are updated and can be reviewed on another platform.

Join Our Community Project: Building a Python-Based Task Management Tool for ADHD!

Hello everyone in the ADHD community! πŸ‘‹

I'm excited to share a collaborative opportunity that's close to my heart. Many of us here understand the unique challenges of managing tasks and staying organized with ADHD. To make a difference, I'm spearheading a community-driven project to develop a task management tool tailored for those with ADHD, and I'm seeking fellow Python programmers to join this initiative!

Project Focus:

Creating a Specialized Tool: We aim to develop a Python application that caters to the specific needs of individuals with ADHD, helping with focus, task breakdown, and managing distractions. Open-Source Collaboration: This is an open-source project, meaning everything we create will be freely available for anyone to use and contribute to. Driven by Community: Your insights, experiences, and contributions will shape this tool to be truly beneficial for the ADHD community. Looking For:

Python Programmers:

Whether you're a seasoned developer or a beginner with a passion for Python, your coding skills can help bring this project to life. ADHD Advocates: If you have insights or ideas on what would make a task management tool genuinely helpful for those with ADHD, we need your input too! How to Get Involved:

Contribute Your Skills:

We need help with coding, testing, and refining the tool. Share Ideas and Feedback: Suggestions on features or improvements are always welcome. Test and Review: Even if you're not a coder, trying out the tool and providing feedback is a huge help. Why Participate?

Impact Lives:

Your contribution can make daily life easier for individuals with ADHD. Grow and Learn: Enhance your skills, collaborate with others, and be part of an exciting project. Community Spirit: Join a group of passionate people united by a common goal. For those interested in the technical side, we're coordinating through GitHub. It's a platform where we can collaboratively write code, track progress, and discuss the project. However, the main conversation and collaboration will happen right here in our community.

If you're interested or want to know more about how you can contribute, feel free to DM me or comment below. Let's make a positive impact together!

Looking forward to your ideas and contributions! 🌟

How It Works

1. Starting the Application

When you run the TaskMasterApp, it initializes the main window (GUI) where you can interact with various features.

2. Task Management

Adding Tasks: You can add new tasks to your list. Each task is stored and displayed in the application. Deleting Tasks: If you no longer need a task, you can delete it from your list.

3. Integration with Todoist

Synchronizing Tasks: The application connects to the Todoist API. Fetching Tasks from Todoist: It retrieves your tasks from Todoist, keeping your list updated. Adding Tasks to Todoist: You can add new tasks directly to your Todoist account through the app. Marking Tasks as Complete: When you finish a task, you can mark it as complete in Todoist via the app.

4. Timer Functionality

Tracking Task Duration: The app includes a timer to help you track how long you spend on a task. Timer Controls: You can start, pause, stop, and reset the timer as needed for each task.

5. Sound Notifications

Audible Alerts: The app can play sound notifications (beeps) to alert you at specific times, like when a task is due.

6. User Interface Interactions

Using the GUI: The app's graphical interface is built with Tkinter, allowing easy interaction through buttons and displays. Task Operations: You can perform all task-related operations like adding, deleting, and viewing tasks through the GUI. Timer and Sound Controls: Control the timer and toggle sound notifications using the interface.

7. File Handling

Task Persistence: The app reads from and writes to JSON files, ensuring your tasks are saved even when the app is closed.

8. User Settings and Preferences

Customizable Settings: You can adjust settings like the reminder interval and whether to mute sounds.

9. Error Handling and Notifications

Robust Error Management: The app includes error handling, particularly for network interactions with Todoist. User Notifications: If an error occurs or an operation is completed, the app informs you via message boxes.

this is my first application that I think I have ever published on Github and my first attempt.

this is a tool I want to build for me. but I think other people might find it useful. I just can't get my thoughts into python.

much of this code has been created using chatgpt and I have tried co-pilot unsuccessfully.

Task Management Module: To handle tasks including adding, deleting, and displaying tasks.

(not important) Todoist API Integration Module: For synchronizing tasks with Todoist, including fetching, adding, and marking tasks as complete.

Timer Module: To manage a timer for task duration tracking, with start, pause, stop, and reset functionalities.

Sound Notifications: Implementing sound notifications for time intervals or reminders.

GUI Module: Using Tkinter for creating the user interface with necessary buttons and display areas for tasks and timer.

File Handling Module: For reading and writing task data to JSON files.

User Settings and Preferences: To manage settings like reminder intervals and sound muting options.

Error Handling and Notifications: Ensuring robust error handling, especially in network interactions, and user notifications via message boxes.

TodoADHD

This is a todo list and task manager for people that have trouble focusing or have ADD or ADHD

Suggestions made by Chat GPT for improvement:

Refactoring and Modularization Suggestions

1. Split Large Classes into Smaller Ones

  • Task Management: Separate class for handling task-related functionalities.
  • Todoist Integration: TodoistManager class for Todoist specific functions.
  • Timer Functionality: Timer class for all timer-related operations.

2. Modularize Functionalities into Methods

  • Break down large methods into smaller, focused methods.
  • Follow the Single Responsibility Principle.

3. Use Utility Functions

  • Create utility functions for repetitive code blocks.
  • Utility functions for common UI patterns.

4. Implement Error Handling and Logging

  • Centralize error handling and logging.
  • Standardize API call error handling.

5. Event Handling and Callbacks

  • Organize complex event handling into separate methods or classes.

6. Configuration Management

  • Use a Config class or module for managing configuration settings.

7. Improve Code Reusability

  • Refactor repeated code patterns into reusable methods or classes.

8. UI Layout and Design

  • Consider a UILayout class for managing complex UI layouts.

9. Testing

  • Implement unit tests for various components.

10. Documentation

  • Update or add documentation to reflect code structure changes.

Suggestions for Further Refinement

Initialization of Tkinter Variables

  • Move the initialization of Tkinter variables like self.reminder_interval and self.file_path_var to the create_widgets method, if they are only related to UI elements.

Dynamic Widget Configurations

  • It's normal to have dynamic configurations (like enabling/disabling buttons) outside of create_widgets. However, ensure that their initial setup is within create_widgets.

Review self.tasks_listbox and self.pause_button Usage

  • Check if the initial setup of these widgets is inside create_widgets. Their subsequent modifications (like inserting items into self.tasks_listbox or changing the state of self.pause_button) due to events or interactions can remain outside.

Completion Window

  • If the completion window (self.completion_window) is a significant part of the UI, consider whether its setup can be modularized or initially defined within create_widgets, with a method to open it when needed.

Consistent Commenting and Documentation

  • Continue to use clear comments and documentation, especially in create_widgets, to describe the purpose and layout of the UI components.

Refactor and Modularize

  • If possible, refactor large methods or sections dealing with specific functionality into smaller methods or even separate classes for better maintainability.

About

This is a todo list and task manager for people that have trouble focusing or have ADD or ADHD

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages