DanielRendox / RoutineTracker

An Android planner calendar app and a habit tracker that aims to simplify scheduling consistent activities and tracking your progress.
GNU General Public License v3.0
189 stars 12 forks source link
android calendar-app clean-architecture habit-tracker jetpack-compose junit koin kotlin kotlin-coroutines kotlin-flow mobile mvvm offline-first planner productivity routine sql sqldelight testing to-do-app

Routine Tracker

Routine Tracker logo


GitHub Badge




Routine Tracker GitHub cover image

Routine Tracker is a planner that aims to simplify managing activities that you need to perform consistently. It combines features of a planner calendar app and a habit tracker allowing you to keep all your activities in one place.

The motivation for this project is simple. I couldn't find any planner or habit tracker that estimates how long it will take you to achieve a goal based on your progress. So I decided to build it myself. I aim to develop a universal solution for planning and tracking your projects as well as scheduling your daily tasks and events.

Features that are already available

Features that will be implemented soon

Features that will be implemented in the long term

Get the app

You can install the app from the GitHub releases page or build it yourself by cloning the project and launching it in the Android Studio.

Please note that the SQLDelight plugin v2.0.2 does not work well with the new Android Studio Koala. Since the project uses SQLDelight, this results in an internal error that disables syntax highlighting for project files. So if you have this plugin installed, you might want to disable it for smoother browsing. Alternatively, you can download an older version of Android Studio from the download archives.

What do you think?

You're welcome to share your thoughts, suggest features, and ask questions in GitHub discussions!

Tech stack

The app is built with modern Android technologies and is designed to follow the best practices.

It utilizes:

The app follows:

I embrace the possibility of utilizing Kotlin Multiplatform for porting the app to other platforms in the future, so SQLDelight, Koin, and Kotlinx-datetime are used instead of traditional Android libraries such as Hilt, Room, and java.time.

Branching strategy

The project's branching strategy is simple. All the development work takes place in the develop branch whereas the main branch contains the code that is used in production. feature branches must be first merged into develop. Once the new features are implemented and tested, they are finally merged into main followed by the release of a new version of the app. When contributing to the project, please submit your pull requests to the develop branch.

Documentation

For more information about how Routine Tracker works internally, navigate to the docs folder. You can also use AI tools like phorm.ai to ask questions about the entire repo. Make sure the develop branch is checked out because it contains the most up-to-date content.

Let’s work together!

The app currently stands at the MVP stage. Without your help, I won't be able to implement all the planned features. So, if you're inclined to offer support in any of the following areas:

and are willing to do so voluntarily, please don't hesitate to open an issue, submit a PR, or reach out to me directly.

Whether you're a seasoned developer or just looking to hone your skills, your contributions are much appreciated.

Please note, as per the GitHub Terms of Service, any code contributions will be licensed under the GPL v3, as it is the license of the original project.

License

The project is licensed under the GPL, which means that you can freely build on top of it for commercial and non-commercial purposes alike. But should you choose to incorporate its code, you must open-source your project and apply the GPL license to it as well. Check out the LICENSE file for more details.