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.
- .NET SDK 8.0 or later: Download here
- Angular CLI 18: Download here
- Docker Compose: Learn more
Instructions coming soon.
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.
Instructions coming soon.
- 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.
Coming soon.
- Home
- 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
- Docker Images: https://hub.docker.com/u/sentemon
-
Run the following command to start the containers:
docker-compose up
- Import the realm configuration from
./keycloak/fitness-app-realm.json
. - Configure realm by
localhost:8080
.
Note: Automating Keycloak setup is planned for future releases.
- Kubernetes Support: Planned deployment and orchestration.
- Automated Realm Configuration: To streamline Keycloak setup.