- Transcendence
- Requirements
- Usage
- Tech Stack
- Docker Container Setup
- Database Schema
- Features
- Contributors
Transcendence is a fullstack web project about creating a single-page web application where users can chat and play Pong against each other in real-time.
This project is part of 42/Codam's curriculum.
You can find the full list of project requirements here: Project Requirements
-
Install and run
Docker
-
Clone this repository.
git clone https://github.com/maresverbrugge/Transcendence
-
Run script or makefile to start the deployment of our project using Docker Compose.
-
Navigate here to see our application:
| localhost:ADD_PORT
| Navigate here to see frontend |
| localhost:ADD_PORT
| Navigate here to see database |
This is a full-stack single-page web application built using NestJS (backend), [ADD FRONTEND HERE] (frontend), PostgreSQL (database), and Docker (environment).
In our project, we've adopted a containerized approach using Docker to ensure consistent and portable deployment. We've set up three containers, each serving a distinct role:
Backend Container:
- This container hosts the backend of our application powered by NestJS.
- It's configured to run on port 3000 within the container.
Frontend Container:
- The frontend of our application, built with [ADD FRAMEWORK], resides within this container.
- The container is configured to listen on port 8080.
Database Container:
- Our PostgreSQL database is contained within this Docker container.
- The container communicates via port [ADD PORT].
-
Secure Login: Seamlessly log in through OAuth using the 42 intranet, ensuring both accessibility and account security.
-
Customization: Personalize your identity by choosing your own username and avatar, visible across the website.
-
Two-Factor Authentication: Strengthen account security with options like Google Authenticator or SMS verification.
-
Friend Connections: Add other users as friends to stay informed about their online status (online, offline, in a game)
-
Stats and Achievements: Showcase your gaming prowess with detailed stats, wins, losses, ladder levels, and achievements displayed on your profile.
-
Match History: Relive your gaming journey through Match History, encompassing 1v1 games, ladder matches, and more.
-
Leaderboard: See who's on top of the tournament, users go up and down in ranking after each win/loss.
-
Chatroom Creation: Create public, private, or password-protected chat rooms tailored to your preferences.
-
Direct Messaging: Establish one-on-one connections with fellow gamers through direct messaging.
-
User Blocking: Exercise control over your interactions by blocking users, ensuring a focused and comfortable environment.
-
Channel Ownership: Initiate channels and become the automatic owner, with the ability to set, change, and manage passwords.
-
Channel Administration: Channel owners can designate administrators, empowering them to maintain a respectful atmosphere and regulate user activities.
-
Banning, and muting: Chatroom administrators can ban or mute users from chatrooms.
-
Invitations and Profiles: Seamlessly send game invitations and access player profiles for a comprehensive understanding of your fellow gamers.
-
Real-time game: Engage in real-time Pong matches, bringing the classic game to life through seamless online play.
-
Game by invite: Users can invite specific users to a game of Pong via DM.
-
Matchmaking: Experience fair and exciting matchups through our automated matchmaking system. Join a queue and get paired with opponents for competitive Pong action.
hier moet nog een heel verhaal over security en tokens en weet ik wat
This is a project made by team Transcendancing Queens!
Jeroen van Halderen
Felicia Koolhoven
Flen Huisman
Mares Verbrugge