Welcome to the خليها على الله
Website! This project aims to provide users with a platform to play Pong with others in real-time, featuring a user-friendly interface, chat functionality, and multiplayer online games.
- Interface Design: Figma
- Backend Framework: NestJS
- Frontend Framework: Vue.js (TypeScript)
- Database: PostgreSQL
- Authentication: OAuth system of 42 intranet and Google
- Deployment: Docker and docker-compose
- Login using the OAuth system of 42 intranet and Google.
- Choose a unique name and upload an avatar.
- Enable two-factor authentication for enhanced security.
- Add friends and view their online status.
- Display user profiles with stats, achievements, and match history.
- View the leaderboard of the top players.
- View the list of all users and search for specific users.
- Search for a specific channel and join it.
- Create public, private, or password-protected channels.
- Send direct messages to other users.
- Block other users to stop seeing their messages.
- Channel owners can set passwords, change them, and remove them.
- Channel owners can assign other users as administrators with certain privileges.
- Invite other users to play Pong through the chat interface.
- Play a live Pong game versus another player directly on the website.
- Matchmaking system for automatic pairing with other players.
- Different game modes.
- Responsive design for optimal user experience, considering network issues.
We did this project as it the final project of our school common core. It was a fun experience, we learned a lot and we are proud of what we achieved, you can meet the team members below:
- Mabenchi aka
databize
: Worked on APIs,websocket endpoints and database schema and integration. - Abouchfa aka
lfanan
: User interface design and Frontend development of the website. - Abdessamad aka
lbarid
: Implemented the chat interface and functionality. - Zakaria2 aka
lmochkile man 3andak
: Worked on the frontend and backend of the game. - m0hs1ne aka
chorti
: Implemented the oauth system and security features.
You can find the Backend documentation for this project here.
- Passwords are securely hashed before storing in the database.
- Protection against SQL injections is implemented.
- Server-side validation is in place for forms and user input.
- Credentials, API keys, and other sensitive information are stored locally in a
.env
file and ignored by Git. - Two-factor authentication is available for enhanced security.