Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

rahul2004a/ByteFit

Repository files navigation

ByteFit - Fitness Tracking Application πŸ‹οΈβ€β™‚οΈ

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.

πŸ—οΈ Architecture Overview

ByteFit follows a microservices architecture pattern with the following components:

Backend Services (Spring Boot)

  • 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

Frontend

  • React Application - Modern responsive web interface built with Vite

Infrastructure

  • PostgreSQL - User data persistence
  • MongoDB - Activity and recommendation data storage
  • RabbitMQ - Asynchronous communication between services
  • Keycloak - OAuth2/OIDC authentication provider

πŸš€ Features

Core Functionality

  • 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

Technical Features

  • 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

πŸ› οΈ Technology Stack

Backend

  • Java 24 - Modern Java with latest features
  • Spring Boot 3.4.6 - Application framework
  • Spring Cloud 202401 - 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

Frontend

  • 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

Databases

  • PostgreSQL - Relational database for user data
  • MongoDB - Document database for activities and recommendations

Message Broker

  • RabbitMQ - Asynchronous messaging

External APIs

  • Google Gemini API - AI-powered recommendations

πŸ“‹ Prerequisites

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+

πŸ™ Acknowledgments

  • Spring Boot community for excellent documentation
  • React and Material-UI teams for great developer experience
  • Google Gemini API for AI capabilities

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /