|
|
@ -34,8 +34,13 @@ Source: https://www.programmfabrik.de/en/assignment-frontend-backend-developer-j |
|
|
|
## Features |
|
|
|
## Features |
|
|
|
|
|
|
|
|
|
|
|
* Does not have any client-side dependencies, does not use any third-party libraries on the client. |
|
|
|
* Does not have any client-side dependencies, does not use any third-party libraries on the client. |
|
|
|
* Works in modern browsers as a single-page application, in offline mode. |
|
|
|
* Works in modern browsers (which includes at least 96% overall and at least 98% desktop userbase; |
|
|
|
* Works in older browsers / browsers with JS disabled as a plain old multi-page application (requiring internet connection). |
|
|
|
includes Chrome since 2017, Firefox since 2018, Safari since 2017) |
|
|
|
|
|
|
|
as a single-page application, in offline mode. |
|
|
|
|
|
|
|
* Works in older browsers / browsers with JS disabled (which, together with the previous point, |
|
|
|
|
|
|
|
covers 99.9%+ overall userbase, including text-based browsers and presumably IE6 and probably IE5) |
|
|
|
|
|
|
|
as a plain old multi-page application (requiring internet connection). |
|
|
|
|
|
|
|
* Doesn't use browser detection / sniffing, instead gracefully degrading depending on the feature set available. |
|
|
|
* Hopefully more accessible than a typical single-page application. |
|
|
|
* Hopefully more accessible than a typical single-page application. |
|
|
|
* Supports multiple games on the same page, playable at the same time, concurrently and independently. |
|
|
|
* Supports multiple games on the same page, playable at the same time, concurrently and independently. |
|
|
|
* Supports different game rules (the provided main page has two games with different rule sets). |
|
|
|
* Supports different game rules (the provided main page has two games with different rule sets). |
|
|
@ -84,6 +89,9 @@ I wanted to minimise the size of the resulting frontend application, |
|
|
|
and the best way to reduce the number of dependencies on frontend is to not have any dependencies, |
|
|
|
and the best way to reduce the number of dependencies on frontend is to not have any dependencies, |
|
|
|
to write vanilla JS. |
|
|
|
to write vanilla JS. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also, I wanted to make this work everywhere (or almost everywhere), |
|
|
|
|
|
|
|
in the spirit of GOV.UK public services: https://shkspr.mobi/blog/2021/01/the-unreasonable-effectiveness-of-simple-html/ |
|
|
|
|
|
|
|
|
|
|
|
I've been hearing a lot about Web Components lately, |
|
|
|
I've been hearing a lot about Web Components lately, |
|
|
|
so I decided to use this as an opportunity to learn more about them. |
|
|
|
so I decided to use this as an opportunity to learn more about them. |
|
|
|
But there are some major design choices to be made with Web Components too, |
|
|
|
But there are some major design choices to be made with Web Components too, |
|
|
|