hbit is a gamified task management application, built with Go and RabbitMQ on the backend and NextJS and Tailwind on the frontend.
Why would you? This is a personal (learning) project and a knockoff of a fully fledged application. Nonetheless, should you choose to run this, you will need to take these steps
- Copy the example env file
mv .env.example .env- Populate the database environment variables—several!— with your serverless SQLite service of choice and generate a new JWT secret (copy the command below).
openssl rand -base64 32- Fire off the build script
./scripts/buildscript; docker-compose up --build -d-
Marvel at the creation.
-
Ask why there's no frontend here (it's hideous and non-functional)
- Set up basic services (auth, rpg, task)
- Pub/sub messaging
- Realize mistakes were made
- Set up reverse proxy / API gateway
- Orchestrate tasks with RPG resolution and registration (kinda)
- Implement quest mechanics
- Set up a shop (quests, items?)
- Make a purdy frontend
- ???
- Profit
hbit is a Habitica clone—a task and habit-building application with gamified rpg elements. It started as an exploration of resource driven design. Not for any particular architectural fit, just as a point of reference of what an end application could or should look like.
The architecture as of now (2024-07-04) consists of an API gateway with an auth service and orchestration between registration and task resolutions (do/undo).