Welcome to ft_transcendence, a full-stack web application project. This repository is part of the 42 school curriculum and aims to combine modern web technologies to build a multiplayer Pong game platform with authentication, user profiles, live chat, and more.
- Pong Game: Play classic Pong in real-time against other users.
- Authentication: Secure login system using JWT and OAuth (42 API integration).
- User Profiles: View and edit your profile, see match history and rankings.
- Live Chat: Chat with other users in public or private rooms.
- Friends System: Add, remove, and chat with friends.
- Leaderboards: Track top players and match statistics.
- Frontend: React, TypeScript, Socket.IO, Tailwind CSS
- Backend: NestJS, TypeScript, PostgreSQL, TypeORM, Socket.IO
- Authentication: JWT, OAuth2 (42 API)
- Deployment: Docker, Nginx
- Node.js (>= 18.x)
- npm or yarn
- PostgreSQL
- Docker & Docker Compose (optional, for containerized setup)
-
Clone the repository:
git clone https://github.com/otmansabir/ft_transcendence.git cd ft_transcendence
-
Install dependencies:
cd backend npm install cd ../frontend npm install
-
Configure environment variables:
Copy.env.example
files from bothbackend
andfrontend
directories to.env
and fill in the required values. -
Start PostgreSQL:
Make sure your PostgreSQL server is running and accessible. -
Run the backend:
cd backend npm run start:dev
-
Run the frontend:
cd frontend npm run dev
-
Access the app:
By default, open http://localhost:3000 in your browser.
docker-compose up --build
ft_transcendence/
├── backend/ # NestJS server
├── frontend/ # React client
├── .github/ # Workflows and configs
├── README.md
└── docker-compose.yml
- Fork the repo & clone your fork.
- Create a feature branch:
git checkout -b feature/my-feature
- Commit your changes.
- Push and open a pull request.
This project is licensed under the MIT License.
Enjoy playing and building!