master | heroku | |
---|---|---|
tests | ||
coverage |
This project is centered around parsing various datasets, including UK government data on property sales, police reporting data, and post code data. The goal is to harness geographical information to establish connections between postcodes using latitude and longitude.
The primary objective is to develop a scalable GraphQL backend capable of swiftly delivering requested results. This endeavor seeks to illuminate intricate aspects of GraphQL use, addressing challenges like the N+1 problem and scaling scenarios where more than one database is required for both write and read nodes.
Key features of the project include a robust automated Quality Assurance (QA) system, incorporating anonymized data seeding for comprehensive QA testing. The project also explores the flexibility of JavaScript, pushing the boundaries of the language. Notably, it delves into the constraints of default V8 object fields, which are capped at around ~8.4 million, while highlighting the superior handling capacity of the Map data structure.
Additionally, the project incorporates a queue system to enhance the efficiency of data processing. In essence, project serves as a practical demonstration of diverse and advanced aspects of software development, reflecting a commitment to excellence and innovation.
if you're using make
commands, docker and docker-compose are required, and local node.js with npm are optional
make
commands no additional steps are required, otherwise you need to execute $ npm i
$ make sync
to fetch GraphQL backend as a git submodule, then $ make cypress
$ make test
or $ npm test
$ npm test -- --coverage
, report will be located in ./coverage directory$ npm test src/validation/rules.test.js
$ make
or $ npm start
$ make serve
, there is no npm equivalent$ make build
or $ npm run build
- generated assets will be located in ./build directorymake PORT=18080
variable | default value | used as | purpose |
---|---|---|---|
PORT | 8080 | number | port on which the application will be made available |
REACT_APP_GRAPHQL | //localhost:8081 | string | GraphQL backend URI |
REACT_APP_TITLE | DATA EXPLORER | string | website's title |