π Solution Statement- Key Outcomes
π‘ Platform Setup
πsh file Setup
chmod +x ./app/utils/serverSetup/primarySetup.sh
sed -i -e 's/\r$//' ./app/utils/serverSetup/> primarySetup.sh
chmod +x ./app/utils/serverSetup/secondarySetup.sh
sed -i -e 's/\r$//' ./app/utils/serverSetup/secondarySetup.sh
bash ./app/utils/serverSetup/primarySetup.sh
Please note if you have node/postgres/redis server installed in your instance/machine. Please comment the install information in primarySetup.sh file and then run this file
π€app Setup
node,postgres, redis and app dependencies installation
bash ./app/utils/serverSetup/primarySetup.sh
bash ./app/utils/serverSetup/secondarySetup.sh
π mocha chai tests against 20,00,000 recordsets
npm run LoginEval or yarn LoginEval
npm run ModuleEval or yarn ModuleEval
π app Run
npm run app or yarn app
π© app Usage
goto localhost:3012/employees
username : krennic and password:orson
select birthdate from dropdown and select date range any from 1982 to till date
π app SuperAdmin Usage
goto localhost:3012/black-squadron
username : krennic and password:orson
for any other controls other than textbox it is mandatory
to enter PIPE "|" separator in textbox column for e.g genderid|gendername
π API Documentation Usage(Swagger)
goto localhost:3012/getAccessToken
Click on Get AccessToken button and copy the newly generated Access Token
goto localhost:3013/api-docs/
Click on authorize and paste the access Token
π Walkthroughs : Features/Functionalities
π Dynamic pivot operation from Postgres with highchart implementation (Redis Cached)
pivot_final.mp4
π Node.js stream based CSV download for more than 2 million recordsets from PostgresSQL with socket.io as progress feature
stream_based_2_million.mp4
π Automated Swagger for each Module created By build in scaffoding accessed at
http://localhost:3013/api-docs/
yarn enable-swagger
swagger.mp4
π Basic dashboard operation
basic_dashboard.mp4
π Boilerplate walkthrough with multi control(Radio and Checkbox-Data from respective db tables) with Automated mocha test Cases
π Boilerplate walkthrough with multi control(Radio-Data from respective db table) with Automated mocha test Cases
π« Releases
Optimized Dynamic Multi Column , Multi Select filter from 5 secs to 16 ms for 2 million rows . My stack overflow solution
base and pivot Operation optimized
incremental load (pagination section loaded after report rendered) for base report
incremental load (pagination section loaded after report rendered) for pivot report
github actions Integrated CI-workflows with redis, postgres for automation mocha test cases
Implemented basic dark theme
Implemented Redis based Server-Side Caching for Pivot Operations
Superadmin scaffolding/ boilerplate Access URL http://localhost:3012/black-squadron
username : krennic and password:orson
for any other controls other than textbox it is mandatory
to enter PIPE "|" separator in textbox column for e.g genderid|gendername
boilerplate for multiselect integration with radio and checkboxes completed
Applied in boilerplate multi and single select Dynamic SQLConstruct with 360 degree coverage
for boilerplate multi and single select static mapping for edit and default rendering case scenarios completed
validations applied for bolierplate dynamic radio button and checkboxes with
applied multi control for radio scaffolding
For rbac test cases modularized
yarn mroleEval
yarn userroleEval
For rbac user-Role Mapping module migrated to fastify with its 35 mocha chai test cases respectively
yarn mroleEval
yarn userroleEval
Dynamic Bolierplate generation completed for dataType Strings , Integers and BigInt data types config based
For rbac modname,muser modules migrated to fastify with their respective 43 and 63 mocha chai test cases
For rbac role module migrated to fastify with its 43 mocha chai test cases
yarn ModEval
yarn roleEval
73 Modular Mocha test cases against 20,00,000 recordset with 360 coverage including schema,NaN,Undefined,Multi Column Search,Multi Select,Pivot X and Y for pageSize and pageNo payload Validations
yarn ModuleEval
73 Modular Mocha test cases against 20,00,000 recordset with 360 coverage including schema,NaN,Undefined,Multi Column Search,Multi Select,Pivot X and Y for pageSize and pageNo payload Validations
yarn ModuleEval
basic login tests are written and can view and evaluated by running below command
yarn LoginEval
run
yarn perfgraph
in new shell run autocannonyarn customAutocannon
when autocannon bench is completed go back to perfgraph shell and stop the shell (ctlrl+C) it will generate graph html link in same perfgraph shellmade date filter optional with code refractoring by introducing
disableDate=true
arguement in API payload.
π°οΈ Architecture
π― Server Side
πΈ Client Side
π Release Flow
πΆοΈ Performance
π§ Normal Mode (API against 2 Million Rows )[requests:2000, concurrent:100]
normal_mode.mp4
π₯ Cluster Mode (API against 2 Million Rows )[requests:2000, concurrent:100]
cluster_mode.mp4