Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A community-driven social network for fitness enthusiasts

License

sentemon/FitnessApp

Repository files navigation

Fitness App Logo

Fitness App

A community-driven social network for fitness enthusiasts.

Description

Fitness App empowers users to share posts, track workouts, plan meals, and engage in personal or group chats. The platform fosters collaboration through challenges, personalized training plans, and comprehensive profile systems, promoting an engaging fitness journey for all users.


Table of Contents

  1. Description
  2. Technology Stack
  3. Microservices
  4. Screenshots
  5. Deployment
  6. Useful Links
  7. Required Software
  8. Running in Debug Mode

Technology Stack

  • SDK: .NET 8
  • Web Framework: Angular 18
  • Identity Management: Keycloak 26
  • Persistence: PostgreSQL 15, Azurite 3.35.0
  • Microservices Communication: RabbitMQ 4
  • Containerization: Docker, Docker Compose, Kubernetes
  • Testing: XUnit, XUnit + TestContainers
  • CI/CD: GitHub Actions

Microservices

  • Web (Angular) – modern, responsive user interface for users.
  • Gateway – central entry point, routes requests to the appropriate services.
  • Auth Service – manages users and roles, integrated with Keycloak.
  • Post Service – handles creating and managing user posts.
  • Chat Service – real-time messaging between users.
  • File Storage Service – manages file and image storage via Azurite/Azure Blob Storage.
  • Workout Service – helps users plan and track workouts. (in progress)
  • Notification Service – sends notifications to users (email, push, in-app). (in progress)
  • Challenge Service – supports fitness challenges and competitions. (in progress)
  • Meal Planner Service – assists users in meal planning and tracking. (in progress)
  • PostgreSQL – relational database for storing user and application data.
  • Keycloak – external service for identity and access management.
  • RabbitMQ – message broker for inter-service communication.
  • Azurite – local Azure Blob Storage emulator.
  • Seq – centralized logging and monitoring.
  • Nginx-proxy – routes incoming requests to the correct service. (for production)
  • Nginx-letsencrypt – automatic SSL certificate management. (for production)

Screenshots

  • Login

    Fitness App Login Page
  • Home

    Fitness App Home Page
  • Search

    Fitness App Search Page
  • Chats

    Fitness App Chats Page
  • Workouts

    Fitness App Workouts Page
  • Create Post

    Fitness App Create Post Page
  • Profile

    Fitness App Profile Page

Deployment

The Fitness App is deployed on AWS EC2 instances using Docker Compose. The application is accessible via https://sentemon.me

Highlights:

  • AWS EC2 – Hosting Dockerized microservices
  • Nginx + Let's Encrypt – Reverse proxy with automatic SSL certificate management
  • Docker Compose – Orchestration for local and production services
  • Monitoring & Logging – Centralized via Seq

Useful Links


Required Software


Running in Debug Mode

  1. Clone the repository and navigate into it:
git clone https://github.com/sentemon/FitnessApp.git
cd FitnessApp
  1. Build the Docker containers:
docker-compose -f docker-compose.yml build
  1. Start the application:
docker-compose -f docker-compose.yml up -d
  1. Stop the application:
docker-compose -f docker-compose.yml down

About

A community-driven social network for fitness enthusiasts

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •