Space Pong

Space Pong is a full-fledged web application that allows users to play pong online with other players. The project leverages modern technologies such as Angular, TypeScript, HTML/CSS/SASS, Phaser, Colyseus, PostgreSQL, TypeORM, NestJS, Docker, and Git to deliver an immersive gaming experience.

Features

  • Secure Authentication : Space Pong implements a robust JWT-based authentication system with optional two-factor authentication (2FA), ensuring the security of user accounts.

  • Real-time Chat : Users can communicate with each other using the integrated chat feature, creating a lively and engaging environment.

  • Private Messaging : Space Pong enables private messaging between users, facilitating direct communication and fostering a sense of community.

  • Friends List : Users can build their network by adding friends, allowing them to easily connect and compete with each other.

  • User Profiles : Each player has a dedicated profile page where they can showcase their achievements, game statistics, and personal information.

  • Matchmaking : The game provides a sophisticated matchmaking system that pairs players of similar skill levels, ensuring fair and challenging matches.

  • Spectator Mode : Users can spectate ongoing matches, allowing them to observe and learn from other players' gameplay strategies.

  • Customization Options : Space Pong offers a range of customization options, allowing users to personalize various elements of the game, such as the background, racket textures, and ball appearance.

Technologies Used

The project incorporates the following technologies:

  • Angular : A powerful framework for building scalable web applications.
  • TypeScript : A statically typed superset of JavaScript that enhances code maintainability and reliability.
  • HTML/CSS/SASS : Standard web technologies for structuring and styling the user interface.
  • Phaser : A popular game development framework used for creating rich and interactive game experiences.
  • Colyseus : A multiplayer game server that facilitates real-time communication between players.
  • PostgreSQL : A robust and open-source relational database management system for data storage.
  • TypeORM : An object-relational mapping (ORM) library for TypeScript and JavaScript, simplifying database interactions.
  • NestJS : A progressive Node.js framework that provides a solid foundation for building scalable server-side applications.
  • Docker : A containerization platform that ensures consistency and portability across different environments.

Getting Started

To run Space Pong locally, follow these steps:

  1. Clone the repository: https://github.com/demogam1/space_pong.
  2. Install docker
  3. Go in the folder that you have cloned
  4. Open a terminal and run the following command docker-compose up --build
  5. Access Space Pong in your web browser at http://localhost:4200.

For detailed instructions and additional setup options use your brain and do more research.

Contributing

Contributions to Space Pong are welcome and encouraged! If you would like to contribute, please send me a message on dupontj335@gmail.com

License

Space Pong is released under the MIT License. Feel free to use, modify, and distribute the code as per the terms of the license.

Acknowledgements

We would like to express our gratitude to the open-source community for providing valuable tools and libraries that made this project possible. Special thanks to our dedicated team of contributors for their efforts in developing and refining Space Pong.

Contact

For any inquiries or feedback regarding Space Pong, please reach out to our team at spacepong@example.com. We appreciate your support and interest in our project.

Let's get ready to embark on an exciting journey into the space-themed world of Pong! Enjoy playing Space Pong! 🚀