A Flutter-based todo app that allows users to create, manage, and prioritize tasks. The app supports setting reminders, push notifications, sorting tasks, searching for tasks, and data persistence across app restarts.
- Features
- Getting Started
- Installation
- Usage
- Folder Structure
- Dependencies
- State Management
- Contributing
- License
- Task Management: Create, edit, delete, and toggle tasks.
- Task Prioritization: Set and manage the priority of tasks.
- Reminders: Set reminders for tasks.
- Push Notifications: Receive notifications based on task expiration.
- Sorting: Sort tasks by priority, due date, or creation date.
- Search: Search for specific tasks by title or keyword.
- Data Persistence: Save user data even if the app is closed or the phone is restarted.
- Material Design: Follows Material Design guidelines for UI/UX consistency.
To get started with this project, clone the repository and follow the installation instructions.
- Flutter SDK
- Dart
- Android Studio or Visual Studio Code with Flutter extension
- Clone the repository:
[git clone https://github.com/Nihalbagul/todoApp.git] cd todoApp
2 Install dependencies:flutter pub get 3 Run the app:flutter run Usage
Adding a Task Click on the Add Task button. Fill in the task title, description, set a due date, reminder time, and priority. Click Save. Editing a Task Tap on a task in the list to edit. Modify the details and click Save. Sorting Tasks Use the sorting options available to sort tasks by priority, due date, or creation date. Searching for a Task Use the search bar to filter tasks by title or keyword. Folder Structure
## Project Structure
\```
todoapp/
├── android/
├── ios/
├── lib/
│ ├── main.dart # Entry point of the application
│ ├── model/ # Contains model classes (e.g., TodoModel)
│ ├── providers/ # Contains provider classes for state management
│ ├── screens/ # Contains the main screens of the app
│ ├── widgets/ # Contains reusable widgets
│ └── utils/ # Contains utility classes and functions
├── test/ # Contains unit and widget tests
└── pubspec.yaml # Project configuration file
\```
The app uses the following major dependencies:
provider: For state management.
flutter_local_notifications: For handling local notifications.
intl: For date and time formatting.
shared_preferences: For data persistence.
You can find the complete list of dependencies in the pubspec.yaml file.
State Management
This app uses the Provider package for state management. The TodoProvider class is responsible for managing the state of the tasks and notifying listeners of any changes.
Contributing
Contributions are welcome! Please fork the repository and submit a pull request.
Fork the repository.
Create a new branch (git checkout -b feature-branch).
Make your changes.
Commit your changes (git commit -am 'Add new feature').
Push to the branch (git push origin feature-branch).
Create a new pull request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
### Steps to Customize:
1. **Replace the repository URL**: Update the `git clone` command with your GitHub repository URL.
2. **Feature Descriptions**: Modify the feature list to reflect any additional features or changes specific to your project.
3. **Folder Structure**: Ensure that the folder structure reflects your actual project structure.
4. **Dependencies**: Add or remove dependencies as per your `pubspec.yaml`.
5. **License**: Make sure the license section matches your chosen license type.
6. **Contributing Guidelines**: If you have specific contributing guidelines, link or elaborate on them.
This `README.md` should give users a good overview of your project, helping them understand how to set it up, use it, and contribute to it.