Skip to content

hydrasoftworks/habitquokka

Repository files navigation

Habit Quokka

Build better habits, one window at a time

Fluter Supabase Netlify Status Melos CodeFactor

License

Habit Quokka Logo

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.

Build from source code

Local environment

Flutter environment

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.

Supabase environment

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

Flutter

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.

Supabase

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

Git setup

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