Fela Maslen 5537e98267 feat: updated readmes 5 лет назад
..
public 9f66df06de feat: login portal styling 5 лет назад
src 9e494b1c9e feat: interactive client list and master/slave status 5 лет назад
.env.example e2f37eb5c6 feat: barebones http server, websocket API and react app 5 лет назад
.env.test e2f37eb5c6 feat: barebones http server, websocket API and react app 5 лет назад
.eslintrc.js e2f37eb5c6 feat: barebones http server, websocket API and react app 5 лет назад
.gitignore e2f37eb5c6 feat: barebones http server, websocket API and react app 5 лет назад
.prettierrc.js e2f37eb5c6 feat: barebones http server, websocket API and react app 5 лет назад
README.md 5537e98267 feat: updated readmes 5 лет назад
package.json 9e494b1c9e feat: interactive client list and master/slave status 5 лет назад
tsconfig.json e2f37eb5c6 feat: barebones http server, websocket API and react app 5 лет назад
yarn.lock 9e494b1c9e feat: interactive client list and master/slave status 5 лет назад

README.md

gmus-web client

This is a frontend web app for use with the go-music-player server.

Scripts

yarn start

Runs the app in the development mode.

yarn test

Runs tests

yarn build

Builds app

Architecture

Global app

This is the main part of the app. It is responsible for handling:

  • Global state such as which song is playing, and the current time
  • Connections to the API, through a websocket
  • Sharing state with other clients, and responding to updates from the API
  • Playing music, through an HTML element
  • UI

    This is the part of the app which implements user interaction. It is responsible for handling:

    • User input, to decide which actions to take
    • Display, to let the user know the state of things

    UIs follow a common model and are built into separate bundles, then lazily loaded.

    The following UIs are implemented:

    cmus

    This is based heavily on the cmus ncurses-based music player, and is essentially a web-based client with vim-like bindings for navigation.