Skip to content

A community-driven social network for fitness enthusiasts

License

Notifications You must be signed in to change notification settings

sentemon/FitnessApp

Repository files navigation

Fitness App Logo

Fitness App

A community-driven social network for fitness enthusiasts.

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.


Required Software


How to Run in Debug Mode

Run Angular Client

Instructions coming soon.

Run Required Containers

Use the provided docker-compose.yml to set up the infrastructure:

  • Keycloak: Manage authentication and user roles.
  • PostgreSQL: Relational database for core services.
  • RabbitMQ: Message broker for inter-service communication.
  • Azurite: Local emulation of Azure Blob Storage.

Run .NET Services

Instructions coming soon.


Microservices

  • Gateway: Central entry point for routing requests.
  • Auth Service: Handles user authentication and roles via Keycloak.
  • Post Service: Manages posts and user interactions.
  • Workout Planner Service: Helps users create and track workout plans.
  • Challenge Service: Supports fitness challenges.
  • Trainer Service: Connects users with trainers and personalized plans.
  • Chat Service: Enables personal and group communication.
  • Notification Service: Sends in-app, email, and push notifications.
  • File Storage Service: Manages file uploads and storage via Azurite.
  • Frontend (Angular): Modern, responsive user interface.
  • Keycloak: External identity and access management solution.
  • PostgreSQL: Primary database for storing data.
  • RabbitMQ: Manages communication between microservices.
  • Azurite: Simulates Azure Blob Storage locally.

Infrastructure Diagram

Coming soon.


Screenshots

  • Home

Fitness App Home Page


Technology Stack

  • SDK: .NET 8
  • Frontend Framework: Angular 18
  • Identity Management: Keycloak 26
  • Persistence:
    • Database: PostgreSQL 15
    • Blob Storage: Azurite (latest)
  • Microservices Communication: RabbitMQ 4
  • Containerization: Docker, Docker Compose
  • Testing:
    • Unit Tests: XUnit
    • Integration Tests: XUnit + TestContainers
  • Continuous Integration/Continuous Deployment (CI/CD): GitHub Actions

Useful Links


How to Run Docker Compose

Running the Services

  • Run the following command to start the containers:

    docker-compose up

Setting Up Keycloak Realm

  1. Import the realm configuration from ./keycloak/fitness-app-realm.json.
  2. Configure realm by localhost:8080.

Note: Automating Keycloak setup is planned for future releases.


Future Plans

  • Kubernetes Support: Planned deployment and orchestration.
  • Automated Realm Configuration: To streamline Keycloak setup.

About

A community-driven social network for fitness enthusiasts

Resources

License

Stars

Watchers

Forks

Releases

No releases published