Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Technical Debt #1

Open
12 tasks
katrinafyi opened this issue Aug 25, 2019 · 0 comments
Open
12 tasks

Technical Debt #1

katrinafyi opened this issue Aug 25, 2019 · 0 comments

Comments

@katrinafyi
Copy link
Collaborator

katrinafyi commented Aug 25, 2019

Just going to type this out and leave this here, in case we keep working on this. These are things which need to be fixed:

  • Client is spaghetti. Because of cloak, the client just blindly changes views whenever the server tells it to.
  • Client lacks validation. Switches views immediately when button clicked, without ensuring room exists/username valid, etc. This is indirectly caused by cloak.
    • Also uses Javascript in HTML onclick to switch views. Some are overriden in scripts.
  • Server is a mess. The video URL downloading is unreliable. Should switch to official APIs to have clients play the videos locally.
  • Because of cloak, pings to the server which should have responses are implemented with a "*Response" cloak message event. This is bad because the client doesn't block for them and it offers no chance for the server to reject the request. See (2).
  • On that topic, the pre-game authentication logic should be done using normal HTTP(s) endpoints in express.
  • Implementing Spotify streaming would be nice. Would require abstracting away the video player into a general audio player from a URL.
  • Waiting for players to load the song is very dodgy, especially if players disconnect or have poor internet connection. Cloak was meant to handle disconnects.
  • Scoring should be done on server-side using timers.
  • HTML is a bit inconsistent but largely functional.
  • Can we find something like cloak but it works?

Finally,

  • Rewrite in Typescript / React / mobX with an actual interface between client and server. In particular, client state could be inconsistent when changing between views.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant