This project aims to create a comprehensive online gaming platform with a focus on playing Pong versus other players. The website is designed with security, functionality, and user experience in mind.
- Backend: NestJS
- Frontend: TypeScript framework of your choice
- Database: PostgreSQL
- Deployment: Docker with a single launch command:
docker-compose up --build
- Use the latest stable versions of all libraries and frameworks.
- Ensure the website is a single-page application for smooth navigation.
- Compatibility with the latest stable version of Google Chrome and one additional web browser of your choice.
- No unhandled errors or warnings during website browsing.
- Passwords stored in the database must be hashed.
- Protection against SQL injections.
- Implement server-side validation for forms and user input.
- Utilize a strong password hashing algorithm.
- Store sensitive information in a local
.env
file, not in version control, to avoid security risks.
- Login using the OAuth system of 42 intranet.
- Choose a unique display name and upload an avatar.
- Enable two-factor authentication (e.g., Google Authenticator or text message).
- Add other users as friends, view their status, and display stats on the user profile.
- Maintain a Match History for 1v1 games, ladder, and other useful information.
- Create public, private, or password-protected chat channels.
- Send direct messages to other users.
- Block other users to avoid receiving messages.
- Channel owners/administrators can manage channel settings, including passwords and user permissions.
- Invite other users to play Pong through the chat interface.
- Access other players' profiles within the chat interface.
- Play live Pong games directly on the website.
- Implement a matchmaking system for automatic player pairing.
- Offer customization options such as power-ups or different maps.
- Ensure the game is responsive, considering network issues like disconnection or lag.