Call of Pong is a fully functional, responsive, and secure single-page web application built from scratch. It combines back-end and front-end technologies to deliver a seamless gaming experience, emphasizing real-world concepts like authentication, data persistence, real-time communication, and user interface design.
- Create and manage your account.
- Update profile information (name, profile picture, etc.).
- View your game history and other users' profiles.
- Add friends, block users, and send direct messages.
- Invite friends to play games.
- Live chat in lobbies.
- Passwords are hashed for secure storage.
- Protected against SQL injections and XSS attacks.
- Uses HTTPS and WSS for secure communication.
- Input validation on both front-end and back-end.
- Server-Side Rendering (SSR) for faster loading and improved performance.
- Cross-browser support for Chrome and Firefox.
- Languages: Python, Typescript, HTML, CSS, Shell Script,redux,axios
- Frameworks: Django
- Database: PostgreSQL
- Tools: Docker Compose
- Ensure Docker Compose is installed. You can install it via Docker Desktop.
- Clone the repository:
git clone https://github.com/aliBenhenia/ft_transcendence
- Navigate to the project directory:
cd ft_transcendence
- Start the application using Docker Compose:
docker compose up
- Open your browser (Chrome or Firefox) and visit:
https://localhost:8443/
- Note: The site uses a self-signed certificate. You can safely proceed past the security warning.
While the project is functional, there are areas that could be enhanced:
- Refactor Consumers' logic for better efficiency.
- Reorganize the code layout for improved maintainability.
- Optimize front-end code, particularly in the lobby JavaScript files.
- Improve overall application performance.
- Full-stack development
- Single-page application
- Authentication
- Real-time communication
- Data persistence
- Artificial intelligence
- Asynchronous operations
- Containerization
- Security
- Teamwork
I contributed to the project in various ways, including:
- Implementing chat functionality.
- Creating Docker files.
- Working on both back-end and front-end.
- Integrating components and debugging issues.