- π Overview
- π§ Objectives
- π οΈ Prerequisites
- π Setup: Your First Go + Java Project
βΆοΈ Running the App- ποΈ Project Structure
- π§ Want to Build Project from Scratch?
- π€ Contributing & License
- π Support
- π Connect with Me
Rhythmo is a Full-stack habit tracker that helps you build and maintain good habits. It features a command-line interface (CLI) built with Go, a web application powered by Java Spring Boot and PostgreSQL, and a REST API for seamless integration between the two.
The CLI allows you to manage your habits directly from the terminal, while the web app provides a user-friendly interface for tracking your progress.
This project serves as a learning resource for developers looking to explore the following:
| β | Writing clean, idiomatic Go code |
| β | Building a full REST API with Spring Boot |
| β | Designing a dual-mode application (CLI and web) |
| β | Structuring multi-language projects |
| β | CI/CD with GitHub Actions |
- Go 1.24+
- Java 17+
- Maven
- PostgreSQL
- Docker
git clone https://github.com/Sherida101/Rhythmo.git
cd Rhythmocd cli
go mod tidycd web
./mvnw clean install- Create a PostgreSQL database named
rhythmo - Run the SQL scripts in
./scripts/init.sqlto set up the initial database schema. - Update the database connection settings in
web/src/main/resources/application.propertiesif needed.
cd cli
go run main.goSee CLI documentation for details on how to use the CLI.
cd web
./mvnw spring-boot:run-
Open VS Code command palette:
Ctrl+Shift+Pβ Debug: Select and Start Debugging or click the dropdown next to the green βΆ Run button (upper-left) -
Pick: Run Rhythmo Go CLI or Run Rhythmo Spring Boot Web App
-
The app will start running, and you can access it at
http://localhost:8080in your web browser. -
To stop the server, press
Ctrl+Cin the terminal or click the red square stop button in the debug panel.
The project includes a Makefile for easy management of tasks. Here are some common commands:
# Build & run Java web app
make run-web
# Run Go CLI
make cli
# Build Go CLI binary
make build-cli
# Start everything with Docker
make docker-up
# Stop Docker services
make docker-downThe REST Client extension can be used to test the API endpoints directly from the VSCode editor. See API documentation for details on how to use the REST API.
See architecture.md for a detailed overview of the project structure.
Check out the guides:
- π Setup a Go CLI Project
- π Create a Java Spring Boot REST API
- π¬ Setup Docker for Ubuntu-based systems
- π§± Full-Stack Walkthrough
Contributions are welcome! Please read the CONTRIBUTING.md for guidelines on how to contribute to this project.
If you find any issues or have suggestions, feel free to open an issue.
The project is open-sourced under the MIT License. You can use, modify, and distribute this project as long as you include the original license.
If you like this project, please consider supporting the developer. There are no advertisements nor in-app purchases.
Your support will help keep the project free and updated. Thank you!
Star β the repository if you like what you see π.



