TaskMinder is a comprehensive to-do list application designed to help users manage tasks effectively while demonstrating modern Android development practices. Built with Jetpack Compose and powered by Firebase, it offers task creation, editing, prioritization, reminders, and more.
This app serves both as a productivity tool and a showcase of Android best practices, including clean architecture, robust exception handling, and a versatile theme system.
- Task Management: Add, edit, delete, and manage tasks effortlessly.
- Task Prioitization: Organize tasks by priority levels.
- Due Dates: Assign deadlines to stay on track.
- Reminders: Notify users about upcoming or overdue tasks.
- Task Completion: Mark tasks as completed and maintain focus.
-Eight Themes: Offers four distinct color themes, each available in light and dark variations, providing a total of eight customizable themes for a personalized experience. -Seamless Navigation: Thoroughly tested navigation host ensures smooth transitions between screens.
- Kotlin: Modern programming language for building Android applications.
- Jetpack Compose: Used to design and implement a highly responsive and modern UI.
- Dagger Hilt: Manages dependency injection, promoting a clean and modular architecture.
- Clean Architecture: Applied different layers for maintainability and scalability:
- Data Layer: Manages API calls and Room database operations.
- UI Layer: Renders the user interface and interacts with data through ViewModels. -Exception Handling: Ensures app stability by gracefully handling errors and unexpected conditions. -KDoc Documentation: Comprehensive documentation makes the codebase accessible to contributors and maintainers.
- Authentication: Secures user sign-ins.
- Cloud Firestore: Stores and syncs tasks across devices.
- Crashlytics: Identifies and reports app issues.
- Performance Monitoring: Provides real-time performance insights.
- Remote Config: Updates app settings remotely.
We welcome contributions to enhance the functionality of TaskMinder! Whether it's fixing a bug, adding a new feature, or improving documentation, your help is appreciated.
To contribute:
- Fork the repository.
- Create a new branch (git checkout -b feature-YourFeature).
- Make your changes and commit them (git commit -am 'Add YourFeature').
- Push the branch to your fork (git push origin feature-YourFeature).
- Create a Pull Request. Feel free to open issues if you encounter any problems or have suggestions!
The codebase is documented using KDoc, making it easier to understand the purpose and function of each class, method, and property. New contributors are encouraged to review the KDoc comments to get familiar with the structure of the project.