The project involves creating a single page web application featuring an interactive Pong game and a matchmaking system. Client users can create accounts, log in to chat and play.
Project Name | ft_transcendence |
---|---|
Description | A website that runs an online multiplayer pong, a real-time chat and a user management system |
Technologies |
- User's features include profile data, settings, friend lists, private chats, custom avatars, game stats, and match history.
- Authentication management is handled using the 42 API (OAuth2) and Google Authenticator for 2FA.
- Database management employs the Prisma ORM, connecting the server to a PostgreSQL database, ensuring password security and protection against injections via POST forms.
- The frontend built using React, on port 3333.
- The Backend development utilizes NestJS, providing a project architecture and tools for creating a REST API to enable coherent and structured communication between systems via HTTP. On port 3000.
- Group discussion channels management involves websockets programming, supporting both public and private channels (and channels protected by password).
- The website is responsive.
- The whole app is deployable using Docker.
- At least chrome and firefox are supported.
To run the project, you have to install docker-compose and docker. You need to rename "example.env" to ".env" and setup the file .env with your credentials and 42 API credentials.
git clone https://github.com/GSantoine/transcendence.git
cd transcendence
mv example.env .env
Here you need to modify the .env file to configure it with your credentials :
You have to put a password for the jwt secret and for the refresh jwt secret. You need also to put your 42 API credentials, if you don't it won't work.
...
JWT_SECRET=""
JWT_REFRESH_SECRET=""
API_42_UID=""
API_42_PWD=""
...
make
When the containers are done building up and are running, you can access the application in your browser on the url "localhost:3000"