- Full stack Web Application
- Final project of the 42 Core Curriculum
- Including online Pong Game with matchmaking system and game invitations
- Chat rooms and personal messages with ban, mute and admin options
- Friends and ability to block users
- A customizable Profile page
- Scoreboard and match history
- Two Factor Authentication
- ./docker/db.env
POSTGRES_USER=trans
POSTGRES_PASSWORD=trans
POSTGRES_DB=transcendence
PGADMIN_DEFAULT_EMAIL=trans@trans.com
PGADMIN_DEFAULT_PASSWORD=admin
- ./backend/.env
DB_HOST='postgres'
DB_PORT=5432
DB_USERNAME='trans'
DB_PASSWORD='trans'
DB_NAME='transcendence'
TWO_FACTOR_AUTHENTICATION_APP_NAME='transcendence'
JWT_ACCESS_TOKEN_SECRET='secretllul'
JWT_ACCESS_TOKEN_EXPIRATION_TIME='2000'
JWT_REFRESH_TOKEN_SECRET='secretllul_2'
JWT_REFRESH_TOKEN_EXPIRATION_TIME='2000'
FORTYTWO_APP_ID='<UID_OF_YOUR_42_API_APP>'
FORTYTWO_APP_SECRET='<SECRET_OF_YOUR_42_API_APP>'
CALLBACK_URL='http://<HOST_URL>:3000/authentication/callback'
VUE_APP_HOST_URL='http://<HOST_URL>'
- ./frontend/.env
VUE_APP_HOST_URL='http://<HOST_URL>'
-
Go to https://profile.intra.42.fr/oauth/applications and click 'Register a new app'
-
In the field 'Redirect URI' put: http://<HOST_URL>:3000/authentication/callback
-
Go to the root of the repository and run
make
https://socket.io/get-started/private-messaging-part-1/
https://docs.nestjs.com/openapi/introduction
https://typeorm.io/ https://docs.nestjs.com/recipes/sql-typeorm
https://vuex.vuejs.org/guide/#the-simplest-store
https://frontegg.com/blog/oauth-flows
https://docs.nestjs.com/security/authorization
https://docs.nestjs.com/security/encryption-and-hashing
https://rxjs.dev/guide/overview https://jasonwatmore.com/post/2019/04/02/vuejs-rxjs-communicating-between-components-with-observable-subject
https://docs.nestjs.com/websockets/gateways https://socket.io/docs/v4/
https://orkhan.gitbook.io/typeorm/docs/many-to-many-relations