Ching-lin Lee : Developer  Front-end
  • Home
  • Portfolio
  • me.CV
Camagru
13 novembre 2022
 

Transcendence

Project Ecole 42
Team project of 5


Creation of a website for an online game “PONG”, with private and public chat and user interface

 
Technology :
Angular • Node JS - Nest JS • Prisma • PostgreSQL • HTML • CSS • Docker
Code :
github.com/ddalee75/Transcendance
Overview
• library / framework with last stable version.
• Compatible with the latest up to date version of Chrome, FireFox.
• Single-page application.

Build dev
docker-compose up --build
• Use Docker in rootless mode
• Runtimes files must be located in /goinfre or /sgoinfre
• Can’t use so called “bind-mount volumes” between the host and the container if non-root UIDs are used in the container.
• Several fallbacks exist: Docker in a VM, rebuild container after changes, craft own docker image with root as unique UID

Security
• Any password stored must be hashed
• Use a strong password hashing algorithm
• The website must be protected against SQL injection
• Implement some kind of server-side validation for forms and any user input
• Any credentials, API keys, env variables etc... must be saved locally in a .env file and ignored by git

User Account
• Using the OAuth system of 42 intranet
• User should be able to upload an avatar
• User should be able to enable two-factor authentication (Google Authenticator or sending a text message to their phone)
• User should be able to add other users as friends and see their current status online, offline, in a game, and so forth
• Stats have to be displayed on the user profile. Such as: wins and losses, ladder level, achievements, and so forth
• User should have a Match History including 1v1 games, ladder, and anything else useful
• Anyone who is logged in should be able to consult it.

Chat
• create channels (chat rooms) : public, or private, or protected by a password
• Channel owner
 - User who has created a new channel is automatically set as the channel owner
 - can set a password required to access the channel, change it, and also remove it
 - Is a channel administrator. They can set other users as administrators
 - Administrators of a channel can ban or mute users for a limited time
• Send direct messages to other users
• Block other users
• See no more messages from the account they blocked
• Invite other users to play a Pong game through the chat interface
• Should be able to access other players profiles through the chat interface

Game
• Play a live Pong game versus another player directly on the website
• Matchmaking system
- User can join a queue until they get automatically matched with someone else
• Canvas game or game rendered in 3D
- It must be faithful to the original Pong (1972)
• Customization options
- For example, power-ups or different maps
• Select a default version of the game without any extra features if they want to
• The game must be responsive
• watch a live play between other users without interfering with it
↓ Transcendence In Video ↓
 
↓ Transcendence In Screenshot ↓







Code on GitHub

Related posts

Camagru
13 novembre 2022

Camagru


Read more
Ching-lin Lee's LinkedIn , Github