Work Breakdown
Training
- Typescript learning & Team training
- Material wrappers //initially 5 days overview, later when developing each component
- Grid layout // learn 5 days & practice 3 days //css grid
- Animations css & JS learning // 5 days basic animation
- Unit testing learning // 2 days & practice 1 days
- Automation testing // 5 days & practice 2 days
Client
- folder structure
- Theming & Typography
Concept
(user choice shades + gradient, error color) & Typography (user choice font increase/ decrease) as a component //shared_client
Aurelia skeleton code + bundling ..etc
localization //consider english as separate language (default) file
browserCompatibilityCheck //shared_client
UI components //shared_client
list
Points to consider :
- All just do version 1 & remaining backlog add in same readme file
- Have typical HTML experience (attributes & events - promises)
- Wrapper interface for each core element
- container responsive or css grid in json - different for each screens
- componentHelpers along with if any
PORT + add interface
material variant + schema design + schema validations + error labels
- Textbox + Multiline textbox + Textarea (merge all)
- Number box (can merge above + email + password)
- Checkbox + Checkbox group //label for, indeterminate
- radio group
- dropdown (DLL_MERGE)
- loader (add more styles) (LOADER_MERGE)
- icons
- buttons
- breadcrumbs
- tile + card //with header, footer
- toggle button (switch)
- Charts (single/ multiple/ nested)
- picture element
- Scale slider
- icon rating
- home page components
- marquee slider
- TV flipper
- image slider
- flashLike
- card_counts
- block groups
- Video element
New components
Autocomplete dropdown (DLL_MERGE)
Related / nested dropdown (DLL_MERGE) //3 or n level
Icon dropdown (DLL_MERGE)
Masker (LOADER_MERGE)
Date picker
Alerts + Summary
File upload //think of docs management structure
Menu //related dropdown ?
icon set (nested, more icons) //quick bar, nav bar, tile icon bar
navbar (horizontal, vertical modal) //rewrite
Form (nested) //edit & view form
List page //phase 1, all popup edit, so that useful in tile view
Summary page
Any component //always check parallel with each element developed
<any use-component="dropdown" load-test-data="true" on-all="allEventHandler(eventName, evtObj, data)"/>It drill downs too<cst-select load-test-data="true" on-all="allEventHandler(eventName, evtObj, data)">onBind() take data from test_data folder & assign to json-schema, json-data attributesNote: if test data, then in event call back return todo, checklist...etc JSONwrappers : //shared_csd
- logging
- caching
- crypto
- momentJs
- numeralJS
- utilities (array filter/ sort...)
- schema validations
Build management (typical aurelia application) //shared_client
shapes Material shapes
Animations //user choice on/off - variants
- https://github.com/daneden/animate.css //by css
- https://github.com/juliangarnier/anime/ //by js
- check native web animation api like https://github.com/web-animations/web-animations-js/releases
- Animated Icons
Aurelia 2 migration when released
Accessibility (atleast keyboard work around without mouse & touch) //like vs code command help window
- If content updates dynamically, do visually impaired people know about it
- quick glance
- moz
- aria
Auto save form, unsaved changes..on page navigate..use Aurelia store
bring home page as a slick concept (as needed in TW rewrite)
port feedback module as SLICK
story book
Server
DB Connection Manager //shared_server
Common CRUD data layer (via schema) //shared_server
API Docs (Any auto generator like swagger ?) //shared_server
API testing (automation ?) //shared_server
Project Docs, API, BL, DL, settings code //project
Project API Docs, API Testing //project
Build management (typical node application) //shared_server
MongoDB by RestAPI https://github.com/SoftInstigate/restheart https://github.com/pyeve/eve/
Database
- JSON Schema
- Indexing
- Test & production machine setup
- Backup & Restore //+ GIT
- Security & Advanced topics required
- Storage pointing to ?
- MongoDB hopping (get from some DB table if not from other ) // for old data
Testing
- Unit testing (Jest or simple aurelia 2 assert) //code coverage ??
- Automated UI testing (Responsive too) //puppeteer** or playwright wrapper, later accessibility automation testing tools available
- API Testing
- CI ?
IT
- Nginx, brotli & gzip compression, http2 parallel file serving
- Heartbeat
Docs
- docs must be print friendly // markdown to pdfs - give option to download.
Developer points
- Check loadash library (clone deep..etc js functions)
- Dummy / empty coding : Only docs & component interactions are checked
- Let all teams check it out & give input
- ext_repos => shared_client, without code only readme folders //then can link all shared & project documentation together
- let /examples of components be a aurelia route (loaded with chunk module)
- Auto generate page data, fill left menu from component names, load right side by any component element
- handling events in example page (just display event name & JSON data)
- let /todo shows all project todo
- constants, each component will have code & all helpers ..etc are written there itself
- debugging, logging, security, performance & other standards are built in. Add same in checklist of each component
- Define naming conventions in
- ESLINT
- VS CODE Snippets
- TS Interfaces (separate files & import, export types separately)
- Export to excel == print (in data perspective) , //JSON to HTML, JSON to EXCEL // generic wrappers
- sample folders : like new custom_element, new_page //leverage snippets
- Think Design like
- Layout 1 : Comp 1A/ 1B/ 1C
- Layout 2 : Comp 1A/ 1B/ 1C
- Send notification, if regression testing fails
GraphQL (add in separate graphql file)
- https://www.mongodb.com/blog/post/introducing-graphql-support-in-mongodb-atlas-with-stitch
- https://docs.mongodb.com/stitch/graphql/
- https://graphql.org/graphql-js/
- https://www.apollographql.com/docs/apollo-server/v1/servers/koa/
- https://medium.com/better-programming/how-to-setup-a-powerful-api-with-graphql-koa-and-mongodb-339cfae832a1
- Axios