Skip to content

otmansabir/ft_transcendence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ft_transcendence

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.

Features

  • 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.

Tech Stack

  • Frontend: React, TypeScript, Socket.IO, Tailwind CSS
  • Backend: NestJS, TypeScript, PostgreSQL, TypeORM, Socket.IO
  • Authentication: JWT, OAuth2 (42 API)
  • Deployment: Docker, Nginx

Setup & Installation

Prerequisites

  • Node.js (>= 18.x)
  • npm or yarn
  • PostgreSQL
  • Docker & Docker Compose (optional, for containerized setup)

Local Development

  1. Clone the repository:

    git clone https://github.com/otmansabir/ft_transcendence.git
    cd ft_transcendence
  2. Install dependencies:

    cd backend
    npm install
    cd ../frontend
    npm install
  3. Configure environment variables:
    Copy .env.example files from both backend and frontend directories to .env and fill in the required values.

  4. Start PostgreSQL:
    Make sure your PostgreSQL server is running and accessible.

  5. Run the backend:

    cd backend
    npm run start:dev
  6. Run the frontend:

    cd frontend
    npm run dev
  7. Access the app:
    By default, open http://localhost:3000 in your browser.

Using Docker

docker-compose up --build

Project Structure

ft_transcendence/
├── backend/      # NestJS server
├── frontend/     # React client
├── .github/      # Workflows and configs
├── README.md
└── docker-compose.yml

Contributing

  1. Fork the repo & clone your fork.
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit your changes.
  4. Push and open a pull request.

License

This project is licensed under the MIT License.

Authors


Enjoy playing and building!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published