GithubHelp home page GithubHelp logo

alphacharge / transcendence Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 68.36 MB

A nice Pong Game with local, normal and tournament mode.

License: GNU General Public License v3.0

Makefile 1.52% JavaScript 8.74% TypeScript 42.52% HTML 0.55% Vue 46.18% CSS 0.29% Shell 0.14% Dockerfile 0.06%
42projects 42school nestjs pong-game transcendence vue pong postgresql

transcendence's Introduction

transcendence

Overview

Welcome to "transcendence" a dynamic and feature-rich project aimed at enhancing the gaming experience with a focus on the following modules:

Backend Framework

  • Major Module: Use a Framework as Backend (TypeScript): Employs TypeScript as the backend language, leveraging its strong typing and modern features to enhance the development process.

Frontend Framework

  • Minor Module: Use a Front-end Framework or Toolkit (Vue): Utilizes Vue.js as the frontend framework, providing a reactive and component-based approach for building interactive user interfaces.

Database

  • Minor Module: Use a Database for the Backend (PostgreSQL): Implements PostgreSQL as the backend database, ensuring data persistence and efficient query capabilities.

User Management

  • Major Module: Standard User Management, Authentication, Users Across Tournaments: Implements standard user management functionalities, including authentication, and allows users to participate in various tournaments.

  • Major Module: Implementing Remote Authentication: Enhances user authentication by implementing a secure remote authentication mechanism.

  • Major Module: Remote Players: Introduces the concept of remote players, allowing users to engage with opponents remotely.

  • Minor Module: User and Game Stats Dashboards: Develops user-friendly dashboards that provide insights into individual gaming statistics, outcomes, and historical data.

  • Major Module: Implement Two-Factor Authentication (2FA) and JWT: Strengthens user account security by introducing Two-Factor Authentication (2FA) and utilizing JSON Web Tokens (JWT) for secure authentication and authorization.

Accessibility

  • Minor Module: Expanding Browser Compatibility: Ensures a broader user base by expanding browser compatibility, allowing users to access the application seamlessly across different web browsers (Chrome and Firefox).

  • Minor Module: Multiple Language Supports: Enhances accessibility by supporting multiple languages, accommodating a diverse international audience (de, en, it).

Gaming

  • Major Module: Replacing Basic Pong with Server-Side Pong and Implementing an API: Elevates the gaming experience by migrating the basic Pong game to the server side, providing an API for easy access to game resources and features.

Getting Started

git clone https://github.com/Alphacharge/transcendence.git
cd transcendence
//edit the .env file and fill out your data
make

Technologies Used

  • docker
  • docker compose
  • make
  • nestjs
  • vue.js
  • chart.js
  • Bootstrab
  • oauth
  • 2fa over GoogleAuthenticator
  • postgresql

Contributors

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

Acknowledgments

  • Thank you to the 42 school for providing the opportunity to work on this project.
  • Inspiration from various UNIX shells and open-source projects.

Feel free to contribute, report issues, or suggest improvements! Happy coding!

transcendence's People

Contributors

alphacharge avatar fkernbac avatar nkoelle avatar sc00bid00 avatar

Stargazers

 avatar

Watchers

 avatar

transcendence's Issues

index.html

css and javascripts should be included in the main.js instead of index.html

Safety in Login Signup

'Users can subscribe to the website in a secure way.'?
'Registered users can log in in a secure way.'?

Paddle logic

paddles wasn't working because of an if condition in the frontend (localGame)
without it's working again but are there other issues that result from this?

winning Player

winning player gets set in playerVictory,
but it's userData is null on updateGamescore.

we can't invert the order because winningplayer is getting set in playerVictory

friends disapeare after logout

add get to mounted will fix it
mounted() {
document.body.classList.remove("friend-list-visible");
this.friends = this.getUsersFriends();
},

Enter queue on second click

on a normal game,
enter queue is connecting a websocket, but not adding to queue.
it needs a second click on the button

jwt-malformed

checkLoggedIn complains jwt malformed in auth.controller

null error

local game has a crash:
TypeError: Cannot read properties of null (reading 'userData')
nestjs | at GameGateway.announceVictory (/backend/src/game/game.gateway.ts:232:86)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.