-
Notifications
You must be signed in to change notification settings - Fork 0
Modules
MrFacundo edited this page Nov 19, 2024
·
1 revision
To attain 100% project completion, a minimum of 7 major modules is required.
Two Minor Modules are equivalent to one Major Module.
-
Use a Framework as backend.
- Use Django
-
Standard user management, authentication, users across tournaments.
- Users can subscribe to the website in a secure way.
- Registered users can log in in a secure way.
- Users can select a unique display name to play the tournaments.
- Users can update their information.
- Users can upload an avatar, with a default option if none is provided.
- Users can add others as friends and view their online status.
- User profiles display stats, such as wins and losses.
- Each user has a Match History including 1v1 games, dates, and relevant details
-
Implementing a remote authentication (OAuth2)
- Integrate the authentication system, allowing users to securely sign in.
- Obtain the necessary credentials and permissions to enable a secure login.
- Implement login and authorization flows that adhere to best practices and standards.
- Ensure the secure exchange of authentication tokens and user information
-
Implement Two-Factor Authentication (2FA) and JWT.
- Implement Two-Factor Authentication (2FA) as an additional layer of security for user accounts, requiring users to provide a secondary verification method, such as a one-time code, in addition to their password.
- Utilize JSON Web Tokens (JWT) as a secure method for authentication and authorization, ensuring that user sessions and access to resources are managed securely.
- Provide a user-friendly setup process for enabling 2FA, with options for SMS codes, authenticator apps, or email-based verification.
- Ensure that JWT tokens are issued and validated securely to prevent unauthorized access to user accounts and sensitive data
-
Remote players
- It is possible to have two distant players. Each player is located on a separate computer, accessing the same website and playing the same Pong game.
-
Implement WAF/ModSecurity with Hardened Configuration and HashiCorp Vault for Secrets Management.
- Configure and deploy a Web Application Firewall (WAF) and ModSecurity with a strict and secure configuration to protect against web-based attacks.
- Integrate HashiCorp Vault to securely manage and store sensitive information, such as API keys, credentials, and environment variables, ensuring that these secrets are properly encrypted and isolated.
-
Introduce an AI Opponent.
- Develop an AI opponent that provides a challenging and engaging gameplay experience.
- The AI must replicate human behavior, meaning that in your AI implementation, you must simulate keyboard input. The constraint here is that the AI can only refresh its view of the game once per second, requiring it to anticipate bounces and other actions.
- The AI must utilize power-ups if you have chosen to implement the Game customization options module.
- Implement AI logic and decision-making processes that enable the AI player to make intelligent and strategic moves. Explore alternative algorithms and techniques to create an effective AI player without relying on A*.
- Ensure that the AI adapts to different gameplay scenarios and user interactions.
-
Use a front-end framework or toolkit.
- use Bootstrap
-
Use a database for the backend -and more
- Use PostgreSQL
-
Expanding browser compatibility
- Extend browser support to include an additional web browser, ensuring that users can access and use the application seamlessly.
- Conduct thorough testing and optimization to ensure that the web application functions correctly and displays correctly in the newly supported browser.
- Address any compatibility issues or rendering discrepancies that may arise in the added web browser.
- Ensure a consistent user experience across all supported browsers, maintaining usability and functionality.
-
Game Customization Options
- Offer customization features, such as power-ups, attacks, or different maps, that enhance the gameplay experience.
- Allow users to choose a default version of the game with basic features if they prefer a simpler experience.
- Ensure that customization options are available and applicable to all games offered on the platform.
- Implement user-friendly settings menus or interfaces for adjusting game parameters.
- Maintain consistency in customization features across all games to provide a unified user experience.
-
User and Game stats dashboards
- Create user-friendly dashboards that provide users with insights into their own gaming statistics.
- Develop a separate dashboard for game sessions, showing detailed statistics, outcomes, and historical data for each match.
- Ensure that the dashboards offer an intuitive and informative user interface for tracking and analyzing data.
- Implement data visualization techniques, such as charts and graphs, to present statistics in a clear and visually appealing manner.
- Allow users to access and explore their own gaming history and performance metrics conveniently
-
Support on all devices
- Make sure the website is responsive, adapting to different screen sizes and orientations, ensuring a consistent user experience on desktops, laptops, tablets, and smartphones.
- Ensure that users can easily navigate and interact with the website using different input methods, such as touchscreens, keyboards, and mice, depending on the device they are using.