ByteFit is a comprehensive fitness tracking application built with a modern microservices architecture. It allows users to track their fitness activities, receive AI-powered recommendations, and monitor their fitness journey with detailed analytics.
ByteFit follows a microservices architecture pattern with the following components:
- API Gateway - Central entry point for all client requests with OAuth2 security
- Eureka Server - Service discovery and registration
- Config Server - Centralized configuration management
- User Service - User management and authentication
- Activity Service - Activity tracking and management
- AI Service - AI-powered fitness recommendations using Google Gemini API
- React Application - Modern responsive web interface built with Vite
- PostgreSQL - User data persistence
- MongoDB - Activity and recommendation data storage
- RabbitMQ - Asynchronous communication between services
- Keycloak - OAuth2/OIDC authentication provider
- User Registration & Authentication - Secure OAuth2-based authentication
- Activity Tracking - Track various fitness activities (Running, Walking, Cycling)
- AI Recommendations - Personalized fitness recommendations based on activity data
- Activity Analytics - Detailed insights and performance metrics
- Real-time Updates - Asynchronous processing with RabbitMQ
- Microservices Architecture - Scalable and maintainable service separation
- Service Discovery - Automatic service registration and discovery with Eureka
- Centralized Configuration - External configuration management
- API Gateway - Unified API endpoint with routing and security
- Event-Driven Architecture - Asynchronous communication between services
- Java 24 - Modern Java with latest features
- Spring Boot 3.4.6 - Application framework
- Spring Cloud 2024.0.1 - Microservices toolkit
- Spring Security - OAuth2 resource server
- Spring Data JPA - PostgreSQL data access
- Spring Data MongoDB - MongoDB data access
- Spring AMQP - RabbitMQ integration
- Maven - Build and dependency management
- React 19.1.0 - UI library
- Vite - Build tool and dev server
- Material-UI - Component library
- Redux Toolkit - State management
- React Router - Client-side routing
- Axios - HTTP client
- react-oauth2-code-pkce - OAuth2 authentication
- PostgreSQL - Relational database for user data
- MongoDB - Document database for activities and recommendations
- RabbitMQ - Asynchronous messaging
- Google Gemini API - AI-powered recommendations
Before running the application, ensure you have the following installed:
- Java 24 or higher
- Node.js 18+ and npm
- PostgreSQL database
- MongoDB database
- RabbitMQ message broker
- Keycloak server (for OAuth2 authentication)
- Maven 3.6+
- Spring Boot community for excellent documentation
- React and Material-UI teams for great developer experience
- Google Gemini API for AI capabilities