An intuitive SaaS platform to help users build and maintain positive habits. Users can sign up, track their daily routines, and monitor progress over time. This makes habit tracking seamless and visually engaging..
- Manage Habits – Add, edit, delete, and mark daily habits as done with a simple and intuitive workflow.
- Progress Visualization – View your habit streaks, completion history, and overall progress at a glance.
- User-friendly Interface – Instant updates, modern UI, single-page application (SPA) feel, and intuitive drag-and-drop functionality.
- Sync Across Devices – Keep your progress consistent across multiple devices with secure cloud storage.
- Authentication – Sign up, log in, and stay secure with JWT-based authentication and session management.
- Responsive Design – Works seamlessly on desktop, tablet, and mobile devices.
- Customizable Settings – Personalize your experience with app preferences, profile settings, and theme options.
- User Leaderboard – Compete with others and track top streaks to foster a habit-building community.
# Clone the repository
git clone https://github.com/DevHanza/habitzy.git
# Go to the repository folder
cd habitzy
# Install dependencies
(cd frontend && npm install) && (cd backend && npm install)Rename .env.example to .env, then fill in the required values.
Most of the variables are self-explanatory and can be understood by reading the .env file.
# Install frontend dependencies
cd frontend
npm install
# Start the dev server
npm run devFor production deployment instructions, please read here.
Rename .env.example to .env, then fill in the required values.
Most of the variables are self-explanatory and can be understood by reading the .env file.
Below are instructions for obtaining only the values that may need additional setup.
You can get this by setting up MongoDB locally or by creating a Free MongoDB account. For more information, read here.
You can use any value for these secrets. However, it is recommended to generate a strong and secure random value.
You can generate one using Node.js with the following steps:
// Run `node` in your terminal, then paste this:
require("crypto").randomBytes(64).toString("hex");
// Example output:
// d6a587c0a0ae1558081d29f292a38e0404232d2c05a16379e3ca120ab50745f2907671f1f11fa84e2f030c35bb3b3d26aa2f43348d6e1c10ec8008f2ed64922fI used Brevo to configure SMTP. You can follow their documentation for setup instructions.
