| マスター | ヘロク | |
|---|---|---|
| テスト | ||
| カバレッジ |
このプロジェクトは、不動産販売に関する英国政府のデータ、警察の報告データ、および郵便番号データを含む、さまざまなデータセットの解析に集中しています。目標は、地理的情報を活用して、緯度と経度を使用してポストコード間の接続を確立することです。
主な目的は、要求された結果を迅速に配信できるスケーラブルなGraphQLバックエンドを開発することです。この努力は、GraphQLの使用の複雑な側面を照らし、N+1の問題や、書き込みノードと読み取りノードの両方に複数のデータベースが必要なシナリオのスケーリングシナリオなどの課題に対処することを目指しています。
プロジェクトの主な機能には、包括的なQAテストのための匿名化されたデータシードを組み込む堅牢な自動品質保証(QA)システムが含まれます。このプロジェクトでは、言語の境界を押し広げるJavaScriptの柔軟性も調査します。特に、マップデータ構造の優れた取り扱い容量を強調しながら、約840万人に制限されているデフォルトのV8オブジェクトフィールドの制約を掘り下げます。
さらに、このプロジェクトには、データ処理の効率を高めるためのキューシステムが組み込まれています。本質的に、プロジェクトは、卓越性と革新へのコミットメントを反映した、ソフトウェア開発の多様で高度な側面の実用的なデモとして機能します。
makeコマンドを使用している場合、 DockerとDocker-Composeが必要であり、 npmのローカルnode.jsがオプションです
makeと手順が追加されていない場合、それ以外の場合は$ npm i$ make testまたは$ npm test$ npm test -- --coverage 、レポートは./Coverageディレクトリにあります$ npm test src/graphql/user.test.js$ npm run sql db:migrate 、orm npm run sql db:create$ npm run sql db:seed:all$ makeまたは$ npm start$ make serve 、 NPMに相当するものはありません$ make buildまたは$ npm run build -generatedアセットは./buildディレクトリにありますmake PORT=18081| 変数 | デフォルト値 | タイプ | 説明 |
|---|---|---|---|
| ポート | 8081 | 番号 | アプリケーションが利用可能になるポート。 |
| ssl_key | 弦 | SSLキーへの絶対パス(eg、 /home/ubuntu/private.key private.key)。 | |
| SSL_CERT | 弦 | SSL証明書への絶対パス( /home/ubuntu/certificate.crt )。 | |
| *** | *** | *** | レプリカの構成が指定されている場合、非レプリカ接続は書き込みにのみ使用されます。 |
| db_hostname | 127.0.0.1 | 弦 | データベースに到達できるホスト。 |
| db_username | 根 | 弦 | データベースに接続するためのユーザー名。 |
| db_password | パスワード | 弦 | データベースユーザーのパスワード。 |
| db_port | 3306 | 番号 | データベースに到達できるポート。 |
| DB_NAME | 探検する | 弦 | データベーススキーマの名前。 |
| db_dialect | mysql | 弦 | MySQL / SQLite / Postgresの1つ、データベース方言。 |
| db_replica_hostname | 127.0.0.1 | 弦 | 読み取り専用操作用のデータベースレプリカのホスト。 |
| db_replica_username | 根 | 弦 | 読み取り専用操作のためにデータベースレプリカに接続するためのユーザー名。 |
| db_replica_password | パスワード | 弦 | 読み取り専用操作のためにデータベースレプリカに接続するユーザーのパスワード。 |
| NPMコマンド | 対応するJSファイル |
|---|---|
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 |
例: npm run parse:postcodes -- --file=/media/data/postcodes.csv
| データベース | バージョン | アダプタ | 主な目的 |
|---|---|---|---|
| mysql | 8 | mysql2 | 生産 |
| postgreSql | 11 | pg | 生産 |
| sqlite | 4 | sqlite3 | QAオートメーション&CI |
MySQL 5.7+を使用する場合は、MySQLネイティブパスワードで動作できることを確認する必要があります
一部のクエリは完全にエンジンに依存せず、たとえばSQLiteには存在しないため、PostresgeSQLとSQLiteは部分的にサポートされています。