/web_project

Primary LanguageTypeScript

Overview

This project aims to create a comprehensive online gaming platform with a focus on playing Pong versus other players. The website is designed with security, functionality, and user experience in mind.

Technology Stack

  • Backend: NestJS
  • Frontend: TypeScript framework of your choice
  • Database: PostgreSQL
  • Deployment: Docker with a single launch command: docker-compose up --build

Development Guidelines

  • Use the latest stable versions of all libraries and frameworks.
  • Ensure the website is a single-page application for smooth navigation.
  • Compatibility with the latest stable version of Google Chrome and one additional web browser of your choice.
  • No unhandled errors or warnings during website browsing.

Security Concerns

  • Passwords stored in the database must be hashed.
  • Protection against SQL injections.
  • Implement server-side validation for forms and user input.
  • Utilize a strong password hashing algorithm.
  • Store sensitive information in a local .env file, not in version control, to avoid security risks.

User Account Management

  • Login using the OAuth system of 42 intranet.
  • Choose a unique display name and upload an avatar.
  • Enable two-factor authentication (e.g., Google Authenticator or text message).
  • Add other users as friends, view their status, and display stats on the user profile.
  • Maintain a Match History for 1v1 games, ladder, and other useful information.

Chat Functionality

  • Create public, private, or password-protected chat channels.
  • Send direct messages to other users.
  • Block other users to avoid receiving messages.
  • Channel owners/administrators can manage channel settings, including passwords and user permissions.
  • Invite other users to play Pong through the chat interface.
  • Access other players' profiles within the chat interface.

Pong Game Integration

  • Play live Pong games directly on the website.
  • Implement a matchmaking system for automatic player pairing.
  • Offer customization options such as power-ups or different maps.
  • Ensure the game is responsive, considering network issues like disconnection or lag.
# Project Screenshots
auth.mov
rest.mov

Landing Page

Landing Page

Sign Up

Sign Up

Sign In

Sign In

Profile

Profile

Notifications

Notifications

Leaderboard

Leaderboard

Friends

Friends

Channels

Channels

Chat

Chat

Game

Game