This project is about creating a website for the mighty Pong contest!
![image](https://private-user-images.githubusercontent.com/85625233/241945762-f2e80048-6223-4ed2-a38c-930273e81e62.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTAxNDgsIm5iZiI6MTczOTAwOTg0OCwicGF0aCI6Ii84NTYyNTIzMy8yNDE5NDU3NjItZjJlODAwNDgtNjIyMy00ZWQyLWEzOGMtOTMwMjczZTgxZTYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDEwMTcyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM4MTE1YTY3NWYxNGZmZWRhYzc1ZjAwYmQ2NTVjNGM0NWE0YjUwMTY3ZWNiZjRhODZhMTVlZTRkMjY3OGJmZDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Yn0fGNUmutweI2caE_Rqlj0mpnj_vVzEeFO1evVEHIY)
• Backend in NestJS
.
• Frontend in a TypeScript framework
of our choice: ReactJS
.
• Free to use any library but must be the latest stable version
• Must use PostgreSQL database. No other database.
• Must be a single-page application
. The user should be able to use the Back and Forward buttons of the browser.
• Compatible with the latest stable up-to-date version of Google Chrome (+ Mozilla and Brave).
• No unhandled errors and no warnings when browsing the website.
• Everything has to be launch by a single call to: docker-compose up --build
• Any password stored in the database must be hashed
.
• Must be protected against SQL injections
.
• Server-side validation
for forms
and any userinput
.
• User must login using the OAuth system of 42 intranet
.
• Name must be unique
and displayed.
• User should be able to upload an avatar
otherwise default
.
• The user should be able to enable two-factor authentication
(mail or app).
• Add other users as friends
and see their current status
(online, offline, in a game, and so forth).
• Stats (such as: wins and losses, ladder level, achievements, and so forth) on User Profile.
• Match History including 1v1 games, ladder, and anything else useful. Anyone who is logged in should be able to consult it.
• Create channels : public, or private, or protected by a password
.
• Send direct messages
to other users.
• Block
other users.
◦ The channel owner can set a password
required to access the channel, change
it or remove
it.
◦ Add others as administrators.
◦ Administrator of a channel can kick, ban or mute
(for alimited time), but not the channel owners.
• Invite
other users to play a Pong game through the chat.
• Access other players profiles through the chat interface.
• Play a live Pong game versus another player.
• Matchmaking
system.
• Power-ups.
• Must be responsive
!
This project was done with Charles M. and Francesco L.