This project is about creating a website for the mighty Pong contest! 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 Google Chrome 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 --build
ormake
.
To attain 100% project completion, a minimum of 7 major modules is required. Two Minor Modules are equivalent to 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 Imple- menting an API.
- Major module: Enabling Pong Gameplay via CLI against Web Users with API Integration.
- Writing your first Django app, part 1
- What is a virtualenv, and why should I use one?
- What is the use of PYTHONUNBUFFERED in docker file?
- django.urls functions for use in URLconfs
- Data Migration from Monolith to Microservice in Django
- Build and run Django in Docker in 10 minutes (+ bonus tips)1
- How to create User/Database in script for Docker Postgres
- How to Use the Postgres Docker Official Image
- Dockerizing Django with Postgres, Gunicorn, and Nginx
Footnotes
-
Setting up a venv for a Django project ↩