Fsocial is a social media platform built using a microservices architecture. It's designed for scalability and maintainability, with individual services handling specific functionalities like user accounts, messaging, and posts. The project uses Docker for containerization and Docker Compose for orchestrating the services. The technology stack primarily leverages Java.
- User Account Management (registration, login, profile management)
- Post Creation and Sharing
- Messaging System (direct messaging between users)
- Notifications (alerts for new messages, follows, etc.)
- Relationship Management (following/unfollowing users)
- Timeline (displaying posts from followed users)
Backend:
- Java
- Microservices Architecture
Databases: (To be determined based on further code inspection of individual services)
DevOps:
- Docker
- Docker Compose
This setup requires Docker and Docker Compose to be installed on your system.
- Docker
- Docker Compose
-
Clone the repository:
git clone https://github.com/CangNgo/Fsocial.git cd Fsocial -
Build and run the services:
docker-compose up -d --build
This will build and start all services defined in
docker-compose.yml. You may need to adjust thedocker-configfile to specify appropriate database configurations, Kafka broker connection information, and other environment variables according to your setup. -
Access the services: (Addresses to be determined upon service identification and port mapping definition) Each microservice will be accessible via its respective container address and port (defined within
docker-compose.yml).
docker-compose downFsocial/
├── accountService/
├── apigateway/
├── docker-compose.yml
├── docker-config
├── kafka.yml
├── logs/
├── messageService/
├── notificationService/
├── postService/
├── processorService/
├── profileService/
├── relationshipService/
└── timelineService/
Configuration is managed primarily through environment variables within each service's Docker container and the docker-config file. The specific configuration options for each service needs further investigation of their respective source code.
Contributions are welcome! Please open an issue or submit a pull request. A more detailed contribution guideline would need to be created.
TODO: Add License information
TODO: Add acknowledgments if any
TODO: Add contact information
⭐ Star this repo if you find it helpful!