Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/achrafelkhnissi/ft_transcendence
ft_transcendence is a web application platform for users to play Pong with others in real-time multiplayer online games. The project includes features such as user authentication, user profiles, a chat system, and game functionality.
https://github.com/achrafelkhnissi/ft_transcendence
1337 1337cursus 1337fil 1337school 42 42born2code 42cursus 42projects 42school transcendence
Last synced: about 1 month ago
JSON representation
ft_transcendence is a web application platform for users to play Pong with others in real-time multiplayer online games. The project includes features such as user authentication, user profiles, a chat system, and game functionality.
- Host: GitHub
- URL: https://github.com/achrafelkhnissi/ft_transcendence
- Owner: achrafelkhnissi
- Created: 2023-06-18T07:24:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-11T14:53:26.000Z (8 months ago)
- Last Synced: 2024-04-22T15:20:42.432Z (8 months ago)
- Topics: 1337, 1337cursus, 1337fil, 1337school, 42, 42born2code, 42cursus, 42projects, 42school, transcendence
- Language: TypeScript
- Homepage:
- Size: 20.8 MB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
PongTime
Project developed at 1337 Khouribga coding school.
Authors: @fathjami & @achrafelkhnissi & @zsarir
---
## Table of Contents
- [Table of Contents](#table-of-contents)
- [Introduction](#introduction)
- [Authors](#authors)
- [Technologies](#technologies)
- [Features](#features)
- [Usage](#usage)
- [Screenshots](#screenshots)## Introduction
PongTime is a simple web application platform that allow users to play classic ping-pong with other users in real-time.
## Authors
- [Fathiya Olatokunbo Jamia](https://github.com/fathjami) - Frontend & UX/UI Design
- [Achraf El Khnissi](https://twitter.com/ashrafelkhnissi) - Backend & DevOps
- [Zaineb Sarir](https://github.com/zsarir23) - Game (Frontend & Backend)## Technologies
- Frontend: Next.js, Typescript, Tailwind CSS, Socket.io
- Backend:
- API: Nest.js
- Real-time communication: Socket.io
- Database: PostgreSQL
- ORM: Prisma
- Authentication: Passport.js
- 2FA: Twilio
- Infrastructure: Docker, Docker Compose
- Game: Phaser.js, Matter.js, Next.js, Nestjs## Features
- [x] Real-time multiplayer game
- [x] User authentication
- [x] Friendship system
- [x] Notification system
- [x] Achievements
- [x] Search system
- [x] Two Factor Authentication (2FA)
- [x] Leaderboard
- [x] Private chat
- [x] Chat rooms (public, private, protected with a password)
- [x] User profile (avatar, stats, achievements, friends, etc.)## Usage
1. Clone the repository
```sh
git clone [email protected]:achrafelkhnissi/ft_transcendence.git
```2. In the `.env.example` file at the root of the project, fill in the environment variables and rename the file to `.env` \
Notes:
- Put your hostname or IP address in the `DOMAIN_NAME` variable
- In case of production build, set `NODE_ENV` to `production` and comment `backend` and `frontend` bind mounts volumes in `docker-compose.yml` file because those volumes are only needed for development because of hot-reloading.3. Run the following command to start the project
```sh
make
```4. Open your browser and go to `http://${DOMAIN_NAME}:${NEXT_PORT}` to access the application and `http://${DOMAIN_NAME}:${NEXT_PORT}/api` to access the API
- Change `${DOMAIN_NAME}` and `${NEST_PORT}` with your environment variables set in the `.env` file
---
## Screenshots
- Dashboard
- Profile
- Messages
- Game Invite
- Game
- Game win