This project is about creating a website to play Pong versus other players! The subject of the project can be found here.
Important
Some of these contraints could be overriden by the choice of specific modules.
The project must comply with the following rules:
- Development of the site can be done with or without a backend.
- If a backend is included, it must be written in pure PHP, unless overridden by the Framework module.
- If a backend or framework uses a database, the constraints of the Database module must be followed.
- The frontend should be developed using Typescript, unless altered through the FrontEnd module.
- The website must be a single-page application, allowing the use of the Back and Forward buttons in the browser.
- Compatibility with the latest stable version of Mozilla Firefox is required.
- Users should not encounter any unhandled errors or warnings while browsing the website.
- The entire project must be launched with a single command line to run an autonomous container provided by Docker. Example:
docker-compose up --buildormake. - Any password stored in your database, if applicable, must be hashed.
- Your website must be protected against SQL injections/XSS attacks.
- If you have a backend or any other features, it is mandatory to enable an HTTPS connection for all aspects (use wss instead of ws for example).
Caution
The use of libraries or tools that provide an immediate and complete solution for an entire feature or module is prohibited.
Note
The use of a small library or tool that solves a simple, unique task, representing a subcomponent of a larger feature or module, is allowed.
Tip
To attain 100% project completion, a minimum of 7 major modules is required. Two Minor Modules count as one Major Module.
- Major module: Use a Framework as backend.
- Fastify with Node.js.
- Minor module: Use a front-end framework or toolkit.
- Tailwind CSS
- Minor module: Use a database for the backend.
- SQLite
- Major module: Store the score of a tournament in the Blockchain.
- Major module: Standard user management, authentication, users across tournaments.
- Major module: Implementing a remote authentication.
- Major module: Remote players.
- Major module: Multiplayers (more than 2 in the same game).
- Major module: Add Another Game with User History and Matchmaking.
- Minor module: Game Customization Options.
- Major module: Live chat.
- Major module: Introduce an AI Opponent.
- Minor module: User and Game Stats Dashboards.
- Major module: Implement WAF/ModSecurity with Hardened Configuration and HashiCorp Vault for Secrets Management.
- Minor module: GDPR Compliance Options with User Anonymization, Local Data Management, and Account Deletion.
- Major module: Implement Two-Factor Authentication (2FA) and JWT.
- Major module: Infrastructure Setup for Log Management.
- Minor module: Monitoring system.
- Major module: Designing the Backend as Microservices.
- Major module: Use of advanced 3D techniques.
- Minor module: Support on all devices.
- Minor module: Expanding Browser Compatibility.
- Minor module: Multiple language supports.
- Minor module: Add accessibility for Visually Impaired Users.
- Minor module: Server-Side Rendering (SSR) Integration.
- Major module: Replacing Basic Pong with Server-Side Pong and Implementing an API.
- Major module: Enabling Pong Gameplay via CLI against Web Users with API Integration.
