GithubHelp home page GithubHelp logo

dueet-live / frontend Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 0.0 10.82 MB

Play a piano duet with your friend online in real-time!

Home Page: https://dueet-live.netlify.app

HTML 2.23% CSS 0.99% TypeScript 96.76% Shell 0.02%
react typescript material-ui music-game real-time socket-io canvas webaudio

frontend's Introduction

Dueet Live Frontend

Dueet Live Logo

The frontend of Dueet Live.

Setup guide

  1. Clone the repository

  2. Run

    cp .env.example .env

    and fill in the environment variables based on how the backend is set up.

  3. Install dependencies

    yarn install
  4. Run the app in development mode

    yarn start

frontend's People

Contributors

gary-lgy avatar jonchan51 avatar na-nazhou avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

frontend's Issues

UI improvements

Duet

  • Let the user know when the other user has pressed ready - #73
  • Highlight the user avatar when the user is playing #67

Solo

General

  • Disable zoom, user selection
  • Add sound effect/notifications when other user join a room / leave a room
  • Make text responsive
    image

MouseLeave event not captured

Did not investigate further, but using on desktop, if you just click on a note and drag to other notes quickly, sometimes the note remains held down.

Hmm there should be a mouseLeave event once your mouse leave a key, let me do more testing

Originally posted by @Na-Nazhou in #2 (comment)

After further testing, I observed that it only occurs when I'm on FireFox, Chrome is okay to me...

Play song

Clients should be able to tell the server that they are ready, then allow the server to tell them to start

Improve game end view

image

here are some of the current designs

but we should definitely show the accuracy/stars in a more obvious way

App tutorial

image

This should show up for users first visiting our site.
Maybe add a button on the home page, this show up when user clicks on it as well.
image

Touch events on mobile

Also, testing it on mobile, I'm having issues holding down a key; I can only tap on keys, which might be a problem, When trying to long tap a key as a hold, it ends up selecting the text instead..

Probably need another library for handling gestures on mobile. The default touchEvents might be insufficient. Its also a bit hard to test on browser device simulator sometimes the behaviour is a bit different from what you'll see on real devices.

Originally posted by @Na-Nazhou in #2 (comment)

Resizable piano

Resize still doesnt seem that great yet, we will definitely need to work on it to improve it in the future. ideally the keyboad should always take up the (width of screen - some padding) i think

Yea I did not manage to find a good formula to calculate the exact range of keys to render given the screen width (because the white key and the black key have different widths and when you shift octave, the total width might change). I just did a rough calculation first, will investigate further.

Originally posted by @Na-Nazhou in #2 (comment)

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.