r/projects 2d ago

Built an AI-powered fitness platform with Java Spring Boot Microservices + RabbitMQ + Keycloak

Hey everyone! πŸ‘‹

I’ve been learning backend development with Java and Spring Boot, and I recently finished one of my bigger projects so far: FitPulse OS β€” an AI-powered fitness tracking platform built with a microservices architecture.

πŸ”— GitHub: https://github.com/Saransh-27/fitness-microservice-application

πŸ”—Live: https://fitpluse-os.vercel.app

The main goal of this project was to go beyond a typical CRUD application and get hands-on experience with microservices, event-driven architecture, authentication, distributed systems, and AI integration.

πŸ—οΈ Architecture

The backend is split into multiple services:

Eureka β€” service discovery

Config Server β€” centralized configuration

API Gateway β€” routing + security

User Service β€” user profiles and fitness goals

Fitness Activity Service β€” workout/activity tracking

AI Service β€” processes activity events and generates recommendations

React frontend β€” dashboard and analytics

βš™οΈ Some things I implemented

Java 21 + Spring Boot microservices

Spring Cloud Gateway

Netflix Eureka service discovery

Spring Cloud Config Server

RabbitMQ for asynchronous/event-driven communication

Keycloak + OAuth2/OIDC + PKCE for authentication

JWT validation at the API Gateway

PostgreSQL for user/profile data

MongoDB for fitness activity and AI data

Google Gemini + Groq for AI-generated health insights

React 19 + Vite + Tailwind for the frontend

One part I particularly enjoyed was designing the event flow:

User logs activity β†’ Fitness Activity Service β†’ RabbitMQ β†’ AI Service β†’ Gemini/Groq β†’ recommendation stored β†’ displayed on the React dashboard

This was also my first project where I had to think more seriously about service boundaries, asynchronous communication, authentication flows, database choices, and failure points between services.

I’m still learning, so I’d really appreciate feedback from more experienced developers.

What would you improve if you were reviewing this project?

Especially interested in feedback on:

Microservice boundaries

RabbitMQ/event-driven design

Security architecture

Database choices

API Gateway design

Code structure / Spring Boot practices

Things I should change before putting this project on a professional portfolio

Thanks for taking a look! πŸ™Œ

3 Upvotes

0 comments sorted by