Client
Browser support
Ever green browsers
- Google Chrome | Microsoft Edge | Mozilla Firefox | Apple Safari* | Opera
Must drop IE11
- New Edge available in older operating system too (Win 7,8, 8.1 & 10) & Microsoft is pushing towards it. So IE11 support will end in near future.
- Extra polyfill for ES modules (bundle size increases)
- Lack of new features like css variables support (theming) ..etc (as it's not auto updated & no more patch releases)
- Unified automation tools & other libraries support for ever green browsers only
Core Browser Technologies
- HTML for structuring (modular)
- CSS for styling (modular)
- Javascript (+ ES Next) for logic
- TypeScript(Not available Temporarily)
MVVM Framework
Framework | Type | WHY | Comments |
---|---|---|---|
Aurelia (detached google) | MVVM | Modern JavaScript (high standards compliance), Commercially Backed, get out of your way | Selected |
Angular (google) | MVVM | Popular, framework controlled code | |
React (facebook) | View | Popular, JSX files + Virtual DOM (non standard compliance) |
Note: Migration plan for Aurelia2 with typescript (Mid 2020)
Tools
Name | Choices | Selected | Comments |
---|---|---|---|
package manager | bower, jspm, npm | npm | Same for front & backend with huge community (may change after deno adoption) |
Transpiler | Babel | Babel | converting Modern javascript to old |
Bundler | grunt, gulp, Webpack | Webpack | configuration over code |
css processor | sass (pre), post css* | all | structured css (pre), vendor specific & modern css (post) |
Version control | svn, GIT | GIT | distributed & powerful CLI |
Code editor | visual studio, visual studio code | visual studio code | open source & multi OS support |
Linters | CSSlint/stylelinit, eslint, webhint* | CSSlint/stylelinit* | error identification during development/ build management (JS errors handled by typescript) |
Note : * denotes to be explored
Standards & Others
- Web components* (use & publish our components too)
- Responsive design
- Material design
- components by wrapper interface (later can add multi frameworks)
- also check government https://designsystem.digital.gov/
- Accessibility*
- Theming (colour blindness..etc)
- Single colour (Primary/ Secondary)
- Gradients (Primary/ Secondary)
- Default Dark & Light theme
- Refs :
- colorbox
- also check material design color selector
- Neumorphism shadows
- Internationalization (i18n)
- Localization*
- PWA (offline apps)* //POC shown (Now even Modi Site)
- Animation framework*
- Application State management (fb-Redux / aureliaStore*)
- Server side rendering
- Grafana charts //can give JSON data source
- Alternate to email/sms : open source app notifications like slack or other chat app
Note : * denotes to be explored
caching
- https://github.com/localForage/localForage (prefer) //don't depend on browser cache (think of cleared scenarios)
- https://github.com/pouchdb/pouchdb
Note : * denotes to be explored
Auto Build management
- Build with versioning & auto release notes (GIT) //future devops*
- build time eslint
Third party libs/ tools used
- popper js : Positioning tooltips and popovers //3kb
- https://lodash.com/
- Explore https://semantic-ui.com/
- Instead of jquery try new dom query selectors..etc
- Uppy File Upload
- axios //70k
- Get Schema from data
Temp developer references
Transparent wrapper //diff between raw property & custom prop
https://storybook.js.org/ for our components after aurelia2 //create a from from JSON schema, so use similar concepts
https://jsonforms.io/ //beautiful
https://github.com/brutusin/json-forms //sample form generator
create aurelia validation object from JSON schema by a method or just have custom Validate in class which takes jsonSchema. SO using promises style - let's mimic like aurelia validation
- https://github.com/fullcalendar/fullcalendar //for todo list, appointments..etc