This is a web application built with ASP.NET that allows administrators to host events and set a price to enter. Regular users have 5 different roles (Bronze, Silver, Gold, Platinum, Diamond) and a default role of Member. Every user can claim a daily reward, based on their current role. The higher the rank, the more coins they get daily. Every user can join an event and try to complete it. They have to verify that the game account they are using is actually theirs by changing their League of Legends icon to the one specified in the app. After verification, they can complete events and double their entry coins. To check if the task is completed, the app uses Riot Games' API to access their match history and validate whether they have completed the task or not. The app allows them to choose their League of Legends region. The web app has prizes, which only administrators can create, and every user can claim if they have enough coins to redeem.
- Use the Razor template engine for generating the UI
- Use sections and partial views
- Use Microsoft SQL Server as Database Service
- Use Entity Framework Core to access your database
- Use MVC Areas to separate different parts of your application (e.g. area for administration)
- Use responsive design based on Twitter Bootstrap / Google Material design
- Use the standard ASP.NET Identity System for managing Users and Roles
- Your registered users should have at least one of these roles: User and Administrator
- Implement error handling and data validation to avoid crashes when invalid data is entered
- Both client-side and server-side, even at the database(s)
- Use Dependency Injection
- Prevent security vulnerabilities like SQL Injection, XSS, CSRF, parameter tampering, etc.
- Follow the best practices for Object-Oriented design and high-quality code for the Web application:
- Use the OOP principles properly: data encapsulation, inheritance, abstraction and polymorphism
- Use exception handling properly
- Follow the principles of strong cohesion and loose coupling
- Correctly format and structure your code, name your identifiers and make the code readable
- Use caching where appropriate
- Support all major modern web browsers. Optionally, make the site as responsive as possible – think about tablets and smartphones.
- Make the user interface (UI) good-looking and easy to use. Providing a broken design will result in sanctioned functionality points
- Using Google Drive API to upload the user profile picture
- Using Riot Games API to verify tasks and link user account
- Clone this repository.
- Open the project in Visual Studio.
- Configure the database connection string in appsettings.json.
- Configure the user secrets and API Keys needed for the work of Google Drive and Riot Games APIs
- Run the database migration by running the following command in the Package Manager Console:
- Run the application.
The web app has prizes that only administrators can create, and every user can claim them if they have enough coins to redeem.
To install and use Duplex, follow these steps:
update-database
We welcome contributions to Duplex! If you find a bug, please submit an issue. If you want to contribute code, feel free to fork the repository and create a pull request.