| mestre | Heroku | |
|---|---|---|
| testes | ||
| cobertura |
Este projeto está centrado na análise de vários conjuntos de dados, incluindo dados do governo do Reino Unido sobre vendas de propriedades, dados de relatórios policiais e dados de código postal. O objetivo é aproveitar as informações geográficas para estabelecer conexões entre códigos postais usando latitude e longitude.
O objetivo principal é desenvolver um back -end de graphQL escalável capaz de fornecer os resultados solicitados rapidamente. Esse empreendimento procura iluminar aspectos complexos do uso do GraphQL, abordando desafios como o problema N+1 e os cenários de escala em que mais de um banco de dados é necessário para nós de gravar e ler.
Os principais recursos do projeto incluem um sistema robusto de garantia de qualidade automatizada (controle de qualidade), incorporando a semeadura de dados anônimos para testes abrangentes de controle de qualidade. O projeto também explora a flexibilidade do JavaScript, ultrapassando os limites do idioma. Notavelmente, ele investiga as restrições dos campos de objeto V8 padrão, que são limitados em cerca de ~ 8,4 milhões, destacando a capacidade de manuseio superior da estrutura de dados do mapa.
Além disso, o projeto incorpora um sistema de filas para melhorar a eficiência do processamento de dados. Em essência, o projeto serve como uma demonstração prática de aspectos diversos e avançados do desenvolvimento de software, refletindo um compromisso com a excelência e a inovação.
Se você estiver usando comandos make , o Docker e o Docker-Compose são necessários, e o Node.js local com NPM são opcionais
make não são necessários etapas adicionais, caso contrário você precisa executar $ npm i$ make test ou $ npm test$ npm test -- --coverage , o relatório estará localizado em ./cobertura Diretório$ npm test src/graphql/user.test.js$ npm run sql db:migrate , você também pode criar um banco de dados via ORM npm run sql db:create$ npm run sql db:seed:all$ make ou $ npm start$ make serve , não há equivalente a NPM$ make build ou $ npm run build - Os ativos gerados estarão localizados em ./build Directorymake PORT=18081| Variável | Valor padrão | Tipo | Descrição |
|---|---|---|---|
| PORTA | 8081 | número | A porta na qual o aplicativo estará disponível. |
| Ssl_key | corda | O caminho absoluto para a chave SSL (por exemplo, /home/ubuntu/private.key ). | |
| SSL_CERT | corda | O caminho absoluto para o certificado SSL (por exemplo, /home/ubuntu/certificate.crt ). | |
| *** | *** | *** | Se a configuração de uma réplica for especificada, as conexões não replicações serão usadas apenas para gravações. |
| Db_hostname | 127.0.0.1 | corda | O host no qual o banco de dados pode ser alcançado. |
| Db_username | raiz | corda | O nome de usuário para se conectar ao banco de dados. |
| Db_password | senha | corda | A senha do usuário do banco de dados. |
| Db_port | 3306 | número | A porta na qual o banco de dados pode ser alcançado. |
| Db_name | explorar | corda | O nome do esquema do banco de dados. |
| Db_dialect | mysql | corda | O dialeto do banco de dados, um dos mysql / sqlite / postgres. |
| Db_replica_hostname | 127.0.0.1 | corda | O host da réplica do banco de dados para operações somente leitura. |
| Db_replica_username | raiz | corda | O nome de usuário para se conectar à réplica do banco de dados para operações somente leitura. |
| Db_replica_password | senha | corda | A senha para o usuário que se conecta à réplica do banco de dados para operações somente leitura. |
| Comando npm | arquivo JS correspondente |
|---|---|
parse:postcodes | src/parse:postcodes |
parse:postcodes:lsoa | src/parse:postcodes:lsoa |
parse:incidents | src/parse:markers:and:incidents |
parse:properties | src/parse:markers:and:properties |
parse:areas | src/parse:areas |
parse:timelines | src/parse:timelines |
Exemplo: npm run parse:postcodes -- --file=/media/data/postcodes.csv
| banco de dados | versão | adaptador | PRINCIPAL PRINCIPAL |
|---|---|---|---|
| Mysql | 8 | mysql2 | produção |
| PostGresql | 11 | pág | produção |
| Sqlite | 4 | SQLITE3 | Automação de QA e CI |
Se você usar o MySQL 5.7+, precisará garantir que ele possa funcionar com a senha nativa do MySQL
Postrgesql e sqlite são parcialmente suportados porque algumas das consultas não são totalmente agnósticas do motor, e algumas funções não existem no sqlite, por exemplo,