-
Notifications
You must be signed in to change notification settings - Fork 1
Requirements
Michelle Jiam edited this page Mar 30, 2023
·
1 revision
- The backend must be written in NestJS.
- The frontend must be written in a TypeScript framework.
- The usage of a PostgreSQL database is required.
- The website must be a single-page application and the user should be able to use the back and forward buttons in the browser.
- The website should be responsive and offer the best user experience possible.
- Launch the application by a single call to
docker-compose up --build
.
Security concerns
- Any password stored in the database must be hashed.
- The website must be protected against SQL injections.
- Implement server-side validation for forms and any user input.
User Account
- The user must login using the OAuth system of 42 intranet.
- The user should be able to choose a unique name, upload an avatar and enable two-factor authentication.
- The user should be able to add other users as friends and see their current status.
- Stats have to be displayed on the user profile.
- Each user should have a match history including 1v1 games and a ladder. Anyone who is logged in should be able to consult it.
Chat
- The user should be able to create channels (chat rooms) that can be either public, or private, or protected by a password.
- The user should be able to send direct messages to other users.
- The user should be able to block other users.
- The user who has created a new channel is automatically set as the channel owner until they leave it. The channel owner can set a password required to access the channel, change it, and also remove it. The channel owner is a channel administrator. They can set other users as administrators. A user who is an administrator of a channel can kick, ban or mute (for a limited time) other users, but not the channel owners.
- The user should be able to invite other users to play a Pong game through the chat interface.
- The user should be able to access other players profiles through the chat interface.
Game
- Users should be able to play a live Pong game versus another player.
- There must be a matchmaking system: the user can join a queue until they get automatically matched with someone else.
- The game must be faithful to the original Pong (1972).
- You must offer some customization options.