This project is a high-performance User Management and Recommendation System designed to handle millions of users per second. It provides features for user registration, profile management, and a sophisticated recommendation engine that suggests connections based on user interactions.
- High Throughput: Capable of handling millions of users and requests per second.
- User Management: Efficiently manage user profiles, including registration, authentication, and updates.
- Follow System: Users can follow each other, creating a dynamic social network.
- Recommendation Engine: Uses collaborative filtering and other algorithms to suggest relevant connections to users.
- Geolocation Support: Users can be generated with random latitude and longitude within a specified radius for location-based recommendations.
- Bulk Data Operations: Supports bulk user creation and follow relationships for efficient data population.
- Backend Framework: ASP.NET Core
- Database: Entity Framework Core with SQL Server (or your choice of database)
- Data Generation: Bogus library for generating dummy data
- Recommendation Algorithms: Custom algorithms for generating user recommendations
- API Documentation: Swagger for API documentation
- .NET 9.0 SDK
- SQL Server (or any compatible database)
- Visual Studio or any IDE of your choice
- Clone the repository:
git clone (https://github.com/Pavan8374/mq-cache-example.git) cd mq-cache-example
-
Restore the NuGet packages:
-
Update the connection string in
appsettings.json
to point to your database. -
Run database migrations:
-
Start the application:
-
Create User
-
POST /api/user/register
-
Body: User details (JSON)
-
Seed Dummy Data
-
POST /api/user/seed-dummy-data?userCount={count}&maxFollowsPerUser={maxFollows}¢erLatitude={lat}¢erLongitude={lon}
-
Description: Generates dummy users and follow relationships.
- Get Recommendations
GET /api/recommendations/{userId}
- Description: Fetches recommended users based on the specified user’s followings.
To test the performance of the system under load, you can use tools like Apache JMeter or k6. Configure these tools to simulate multiple users interacting with the API simultaneously.
Contributions are welcome! Please feel free to submit issues, fork the repository, and make pull requests. Ensure that you follow best practices and include tests for new features.
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to the contributors who helped make this project possible.
- Special thanks to the open-source community for providing libraries and tools that enhance development.
For questions or feedback, please reach out via [your email] or open an issue in this repository.