This project is about creating a website for the mighty Pong contest!
• 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.