Connect, Share, Engage: Transform Your Social Experience
This project is a distributed social media application project, with event driven architecture.
Core functionaries include
- π Distributed Architecture: Supports scalability and resilience.
- π Event-Driven Design: Facilitates real-time interactions, enhancing user engagement and responsiveness.
- βοΈ Microservices Deployment with Kubernetes: Simplifies management and orchestration of services.
- π οΈ Health Monitoring with Heartbeat: Ensures system reliability by continuously checking service health.
- π Centralized Logging with Elasticsearch: observability and debugging capabilities, making it easier to track issues.
- π¬ Real-Time Messaging with WebSockets: Provides instant messaging features, crucial for social media applications.
- The
sm-k8s
folder contains the objects code needed to deploy the microservices to kubernetes. - The microservices are deployed to both
Minikube
andAWS EKS Cluster
.
- The
server
folder contains all the backend code for the application's services. - The services can be started either individually from the terminal or via docker compose.
- The
volumes
folder contains files that are used to run services for local development. - Volumes README file
Build social-media from the source and install dependencies:
- Clone the repository:
git clone https://github.com/LibenHailu/social-media
- Navigate to social-media directory:
cd social-media
-
To start the services locally, you need to first start the required services inside the docker compose file.
-
redis
docker compose up -d redis
-
mongodb
docker compose up -d mongodb
-
mysql
docker compose up -d mysql
-
rabbitmq
docker compose up -d redis
-
elasticsearch
docker compose up -d elasticsearch
Please start the microservices.
follow service
reaction service
chat service
post service
users service
auth service
notification service
- Before you start the
gateway service
, make sure all other services are running without errors.
Navigate to each service folder.
npm run dev
docker compose up -d follow reaction chat post users auth notification