Build better habits, one window at a time
Habit Quokka is an online habit-tracking app that uses a unique design inspired by advent calendars. Users can create habit trackers for any habit they want to follow and open a window on the grid every time they perform that habit. This reveals a hidden image one step at a time and makes building good habits fun and playful. The app's design is a refreshing change from traditional habit trackers, and it motivates users to stick to their habits.
In the project root, there is a file named environment.json
. Copy it to development.json
.
cp environment.json development.json
and fill required values before starting the Flutter project.
Similarly, in the supabase
directory, there is a file .env
. Before running a local server, you need to create a config and fill it with your secrets.
cp ./supabase/.env ./supabase/.env.development
The frontend application is built with Flutter and uses FVM to manage Flutter versions. The easiest way is to install FVM with brew
.
brew tap leoafarias/fvm
brew install fvm
With FVM installed, head to the project directory and call
fvm use
it will download the used Flutter version and link it to the project directory. Thanks to that, you can use different Flutter versions for different projects.
All scripts in the project are managed with melos
. You have to install it with:
fvm dart pub global activate melos
Then, run melos bootstrap
in the root of the project to get all the dependencies and generate the translation files and other generated content.
Call melos run
to see other useful scripts.
The environment configuration file can be passed to Flutter on run with --dart-define-from-file=[environment].json
parameter.
Application data are stored on Supabase. To create a local environment install Docker Desktop and Supabase CLI first.
Next from the project root, call supabase start
. After a while, you will get project configuration details. If you need more info, consult this page.
To share edge functions, a separate command must be used:
supabase functions serve --env-file ./supabase/.env.development
Habit Quokka uses conventional commits to keep commits well organized and to automatically generate a changelog. Git hooks are used to ensure that the commit message has proper syntax.
Please run the following commands from the root of this repository to set it up:
git config core.hooksPath .githooks/ # To change default .git hooks directory
chmod ug+x .githooks/commit-msg # To allow execution in commit-msg file