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

feat: config as file, UI tweaks and refacto #52

Merged
merged 16 commits into from
May 11, 2020

Conversation

FloChehab
Copy link
Contributor

@FloChehab FloChehab commented May 11, 2020

Hi, I am back with a new PR :)

It's mainly a follow-up to our discussions on #50 (comment).

Here are the changes:

Config as file

The biggest change of this PR is that the configuration is now handled through a config file. I have deprecated the previous ways of handling config.

I'd love your input regarding the naming I have chosen inside the config file.

With this new config handling, we can tweak new settings:

  • Read-only / display info on whiteboard load
  • performance / throttling (for different number of connecter user)
  • etc.

A user can provide his/her own config file to override the values in the default one.
The resulting config is validated against a jsonSchema. (I've added tests for that)

Websockets / backend

I have cleaned some handling of whiteboard related information (smallest screen resolution & number of user connected) and stored that in WhiteboardServerSideInfo.
The information in this class is broadcasted to the corresponding whiteboard regularly (setting available in the config).

Frontend Services

I've added new services in the frontend: InfoService, ConfigService and ThrottlingService; to centralize the related behaviors.

CI

Run the new (and future) tests in CI.

Refactoring

Switch to real private fields in the frontend (with # -- ES2020) and getters (for read-only fields).

Other

Required node version is now >= 12.

* Created an InfoService to centralized the logic
* Added an info icon
* share whiteboard info only on change and at specific frequency
* front update to track nb user connected
* Also started a bit of config handling cleaning
* Config should be provided as Yaml file now
* Other way to provide configuration are now deprectaed
* The config format is checked agaist a schema with the json-schema standard
* Tests are are added to the project (in the backend for config parsing)
* ease throttling of events accross the frontend
@cracker0dks cracker0dks merged commit 3e9c318 into cracker0dks:master May 11, 2020
@cracker0dks
Copy link
Owner

Thanks! Really create stuff! 🥳

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

Successfully merging this pull request may close these issues.

2 participants