Skip to content

A community-driven social network for fitness enthusiasts

License

Notifications You must be signed in to change notification settings

sentemon/FitnessApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c006718 · · Sep 3, 2025

History

778 Commits
Aug 27, 2025
Sep 3, 2025
Aug 30, 2025
Aug 23, 2025
Sep 3, 2025
Jun 2, 2025
Aug 15, 2025
Aug 15, 2025
Aug 30, 2025
Jul 26, 2025
Oct 23, 2024
Aug 23, 2025
Jul 28, 2025
Aug 30, 2025
Aug 23, 2025

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
  • Frontend 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

  • Frontend (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 & Loggingging – 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