A backend services for a social networking application, built with .NET Core
and deployed using Docker
& AWS
. This repository includes all the RESTful APIs and logic required to support core functionalities of the social network, including a Recommendation System and Real-Time Communication via WebRTC.
- Feeds: Personalized newsfeed based on user activity.
- Notifications: Real-time notifications for interactions.
- Real-Time Communication: Audio/video calls and real-time chat powered by WebRTC.
- Recommendation System: Personalized suggestions for friends, groups, or content using collaborative filtering and user activity analysis.
- Search: Search for users, posts, or hashtags.
- Secure Authentication: Token-based authentication using JWT.
- Social Interactions: Follow/unfollow, posting, and commenting.
- User Management: Registration, login, and profile updates.
- Framework: .NET Core (Clean Architecture)
- Database: Amazon Aurora MySQL
- Authentication: JWT (JSON Web Token)
- Recommendation System: Content-based and Collaborative Filtering (e.g., Matrix Factorization, User-Item Similarity)
- Real-Time Communication: WebRTC, SignalR
- Containerization: Docker
- Other Tools: Entity Framework Core, AutoMapper, FluentValidation
- Install Docker
- Install .NET Core SDK
-
Clone the repository:
git clone https://github.com/thanhpt1110/chit-chat-backend cd chit-chat-backend
-
Set up environment variables: Create a .env file in the
ChitChat.WebAPI
directory with the following content:SecretKey = # The secret key used for signing and verifying tokens TokenValidityInDays = # The number of days the token is valid RefreshTokenValidityInDays = # The number of days the refresh token is valid Issuer = # The issuer of the token Audience = # The audience for whom the token is issued CloudinaryCloudName = # The Cloudinary cloud name CloudinaryApiKey = # The Cloudinary API key CloudinaryApiSecret = # The Cloudinary API secret key
-
Build and run with Docker:
docker-compose up --build
-
Access the application:
The backend will be running on http://localhost:8080.
-
Build and run with Docker:
Visit http://localhost:8080/swagger/index.html to explore the API endpoints using Swagger UI.