How bt2701/facebook-microservice-be works
This is a Facebook-like microservice backend. Users register, authenticate, and manage profiles; they form friendships through requests and confirmations, then publish and browse posts, stories, comments, and reactions. The API gateway routes client traffic to domain services, while chat uses SignalR and contact messages are persisted with encrypted content. The README documents broader capabilities than the sampled source; unsampled product areas are included where the tree supports them, but their internal wiring is not inferred.
Main entry points: Program.cs API gateway · PostController.cs Post API · FriendController.cs Friend API · UserController.cs User API
Components 23
Client entry
- API gateway
ApiGateway/Program.cs
Identity and friends
- User API
UserWebApi/Controllers/UserController.cs - User repository
UserWebApi/Repositories/UserRepository.cs - Email delivery
UserWebApi/Services/EmailService.cs - Friend API
UserWebApi/Controllers/FriendController.cs - Request API
RequestWebApi/Controllers/RequestController.cs - Request repository
RequestWebApi/Repositories/RequestRepository.cs
Social content
- Post API
PostWebApi/Controllers/PostController.cs - Post repository
PostWebApi/Repositories/PostRepository.cs - Comments, reactions, stories
PostWebApi/Controllers - Image storage
PostWebApi/Services/GoogleDriveService.cs
Communication
- Chat hub
ChatService/Hubs/ChatHub.cs - Message API
ContactWebApi/Controllers/MessageController.cs - Message repository
ContactWebApi/Repositories/MessageRepository.cs - Message encryption
ContactWebApi/Utils/EncryptData.cs - Notification API
NotificationWebApi/Controllers/NotificationController.cs - Notification repository
NotificationWebApi/Repositories/NotificationRepository.cs
Service data
- User database
UserWebApi/UserDbContext.cs - Request database
RequestWebApi/RequestDbContext.cs - Post database
PostWebApi/PostDbContext.cs - Contact database
ContactWebApi/ContactDbContext.cs - Notification database
NotificationWebApi/NotificationDbContext.cs
Other components
- Web client
Connections 25
- Web client → API gateway: sends requests
- API gateway → User API: routes requests
- API gateway → Friend API: routes requests
- API gateway → Request API: routes requests
- API gateway → Post API: routes requests
- API gateway → Message API: routes requests
- API gateway → Notification API: routes requests
- Web client → Chat hub: connects realtime
- User API → User repository: reads and writes
- User repository → User database: queries
- User API → Email delivery: sends email
- Friend API → Request API: calls requests
- Friend API → User database: reads and writes
- Request API → Request repository: reads and writes
- Request repository → Request database: queries
- Post API → Friend API: fetches friends
- Post API → Post repository: reads and writes
- Post repository → Post database: queries
- Post API → Image storage: uploads images
- Post API → Comments, reactions, stories: supports content actions
- Message API → Message repository: reads and writes
- Message repository → Contact database: queries
- Message API → Message encryption: encodes and decodes
- Notification API → Notification repository: reads and writes
- Notification repository → Notification database: queries