Welcome to the Pong Contest website! This project is all about bringing the classic game of Pong to a modern, multiplayer online platform. Users can play Pong with others in real-time, connect with friends, create chat rooms, and enjoy a variety of features, all built using the latest web technologies.
The Pong Contest website allows users to play Pong with others in real-time. It provides a feature-rich user interface with integrated chat, authentication through the OAuth system of 42 intranet, two-factor authentication, friend management, and more. The backend is built with NestJS, the frontend with Angular, and the database is PostgreSQL (all in TypeScript).
Login page
Current user profile
Current user profile (friendships side)
User's Settings Interface
Activate the 2FA
Another user profile
Another user profile (this case a user that sent a friend request)
404 page (case user blocked or doesn't exist!)
Chat : DM Interface
Create Channels
Join Channels
Chat: Channels Interface
Invite To Channel Interface
Join Games Interface
Game play Interface
Here are some of the key features of the Pong Contest website:
- Real-time multiplayer Pong games.
- User-friendly interface.
- Integrated chat system.
- OAuth login via the 42 intranet.
- Two-factor authentication for added security.
- Friend management to connect with other users.
- Creation of public, private, or password-protected chat rooms (channels).
- Direct messaging between users.
- Matchmaking system for automatic game pairing.
The Pong Contest website is built using the following technologies:
- Backend: NestJS
- Frontend: Angular
- Database: PostgreSQL
- Authentication: OAuth system of 42 intranet
- Two-Factor Authentication: Tested with google authenticator and authy
- Real-time Communication: WebSockets
To run the Pong Contest website locally, follow these steps:
ACCESS_TOKEN_SECRET='as the key says'
HOST='http://{localhost Or your ip}'
TOKEN_NAME='as the key says'
FORTY_TWO_APP_UID='as the key says'
FORTY_TWO_CALLBACK_URL='as the key says'
FORTY_TWO_APP_SECRET='as the key says'
POSTGRES_USER='just use the POSTGRES default user'
POSTGRES_PASSWORD='as the key says'
POSTGRES_DB='as the key says'
docker-compose up --build || docker compose up --build
launch browser: http://{your ip}:4200
&&
Enjoy your ride with up