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.
- Description
- Technology Stack
- Microservices
- Screenshots
- Deployment
- Useful Links
- Required Software
- Running in Debug Mode
- 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
- 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)
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
- Docker Images: https://hub.docker.com/u/sentemon
- Docker Compose: Download here
- Clone the repository and navigate into it:
git clone https://github.com/sentemon/FitnessApp.git
cd FitnessApp- Build the Docker containers:
docker-compose -f docker-compose.yml build- Start the application:
docker-compose -f docker-compose.yml up -d- Stop the application:
docker-compose -f docker-compose.yml down