- Run
make
- Go to
localhost:2424
in your browser to view the website.
You can edit backend and frontend files without having to restart the server.
- NestJS backend
- Use Tailwind + daisyUI to make components
- Use Vite to send the frontend HTML/CSS/JS
- Use socket.io to connect players
- Use npm in the Makefile to install something like TypeORM, and use it to interact with Postgres
- TypeScript framework frontend
- PostgreSQL database
- Docker compose
- Single-page application means only sending the HTML/CSS/JS once, even if you change pages
- Chat and other passwords have to be hashed
- Protecting against SQL injections
- Server-side validation
- .env file
- Instead of storing passwords, only allow logging in with Intra's OAuth API using passport-42
- Choosing unique name
- Uploading avatar
- 2FA
- Adding friends
- Seeing friends' online status
- Profile stats (wins/losses, ranking system, achievements)
- Match history
- Chats that are public (optionally with a password)/private
- Direct messages
- Blocking users
- Chat owner
- Administrators
- Kicking, banning, muting
- Inviting to Pong game
- View other player profiles
- Pong
- Matchmaking system (just a queue, not necessarily ELO)
- Optional customization options