8000 GitHub - Vpekdas/ft_transcendence: A project from the 42 Common Core curriculum to create a Single Page Application (SPA) with features like a Pong game, tournament system, and user management, using Django and Bootstrap without abstract libraries like React.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

A project from the 42 Common Core curriculum to create a Single Page Application (SPA) with features like a Pong game, tournament system, and user management, using Django and Bootstrap without abstract libraries like React.

Notifications You must be signed in to change notification settings

Vpekdas/ft_transcendence

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ft_transcendence

Table of Contents

  1. Description
  2. Installation
  3. Run
  4. Credits
  5. Contributing

Description

ft_transcendence_compressed.mp4

ft_transcendence is a project from the 42 Common Core curriculum. The goal is to create a Single Page Application (SPA) that includes core features such as a Pong game, a tournament system, and user login/registration management and some additional features are added to enhance the user experience. The project allows the use of Django and Bootstrap as frameworks, but forbids libraries like React or other tools that abstract away most of the development work.

To validate the project, some features were considered major, while others were deemed minor based on their workload and complexity. Below, you can find the list of features.

Feature Authors
Web: Django (major) @FirePh0enix
Web: Bootstrap (minor) @Vpekdas
Web: PostgreSQL (minor) @FirePh0enix
User: Standard user (major)o @FirePh0enix
User: Remote Authentication (42) (major) @FirePh0enix
Gameplay: Remote players (major) @FirePh0enix
Gameplay: Game customization (minor) @FirePh0enix and @Vpekdas
Gameplay: Live Chat (major) @Lebronen and @Vpekdas
AI: User stats (minor) @FirePh0enix
Cybersec: 2FA (major) @Lebronen and @FirePh0enix
Graphics: ThreeJS (major @Vpekdas
Accessibility: Expanding Browser Compatibility (minor) @Vpekdas
Accessibility: Multiple language (minor) @Vpekdas and @FirePh0enix

Purpose

The website is locally hosted using Vite. Each required service runs in its own Docker container, making the setup modular and isolated. This allows you to run the full application including the Pong game and all other features directly from your local machine with no external dependencies.

Technologies used

  • Django (Python) – Handles server-side logic, APIs, and database interactions.
  • JavaScript, HTML, CSS (Bootstrap) – Builds a responsive and interactive user interface.
  • Vite – Provides fast frontend bundling and development tooling.
  • PostgreSQL – Stores and manages structured relational data.
  • Docker – Containerizes the app for consistent development and deployment.
  • Nginx – Serves static files and acts as a reverse proxy to the backend.

Challenges and Future Features

As I was responsible for the frontend and had already practiced JavaScript, the main challenges included understanding how a Single Page Application (SPA) functions, how APIs work, and how to create both efficient and visually appealing components. Additionally, I worked on mastering CSS animations to make the website more intereactive and cool.

I'm not planning to add new features.

Installation

  • Ensure Docker is installed. You can verify this running the command below.
docker --version
  • Make sure you have created a .env at roots of the project. You can find an env example is same folder.

Run

  1. Build and start the containers:
docker-compose up
  1. Access the application: Open your browser and go to https://localhost:8080 to access the website and start using the features.

I primarily code using the Arc browser, but the application is generally compatible with most modern browsers. However, it's worth noting that the particle system behaves strangely on browsers other than Arc.

Credits

  • @FirePh0enix: Lead backend developer, contributed to Web (Django, PostgreSQL), User features, Gameplay, AI, and Cybersecurity.
  • @Vpekdas: Lead frontend developer, contributed to Graphics (ThreeJS), Accessibility, Gameplay, and Web (Bootstrap).
  • @Lebronen: Backend developer, contributed to Gameplay (Live Chat) and Cybersecurity (2FA).

Contributing

To report issues, please create an issue here: issue tracker.

To contribute, follow these steps:

  1. Fork the repository: Start by forking the repository to your own GitHub account.

  2. Clone the repository: Clone the forked repository to your local machine.

git clone https://github.com/Vpekdas/ft_transcendence
  1. Create a new branch: Create a new branch for each feature or bug fix you're working on.
git checkout -b your-branch-name
  1. Commit your changes: Commit your changes.
git commit -m "Your commit message"
  1. Push your changes: Push your changes to your forked repository on GitHub.
git push origin your-branch-name
  1. Create a pull request: Go to your forked repository on GitHub and create a new pull request against the master branch.

About

A project from the 42 Common Core curriculum to create a Single Page Application (SPA) with features like a Pong game, tournament system, and user management, using Django and Bootstrap without abstract libraries like React.

Topics

Resources

Stars

Watchers

Forks

Languages

  • JavaScript 58.4%
  • Python 18.3%
  • CSS 15.4%
  • GLSL 7.6%
  • Dockerfile 0.2%
  • HTML 0.1%
0