| menguasai | Heroku | |
|---|---|---|
| tes | ||
| Cakupan |
Proyek ini berpusat di sekitar mem -parsing berbagai dataset, termasuk data pemerintah Inggris tentang penjualan properti, data pelaporan polisi, dan data kode pos. Tujuannya adalah untuk memanfaatkan informasi geografis untuk membangun koneksi antara kode pos menggunakan garis lintang dan bujur.
Tujuan utama adalah untuk mengembangkan backend graphQL yang dapat diskalakan yang mampu memberikan hasil yang diminta dengan cepat. Upaya ini berupaya menerangi aspek -aspek rumit dari penggunaan graphQL, mengatasi tantangan seperti masalah n+1 dan skenario penskalaan di mana lebih dari satu database diperlukan untuk node menulis dan membaca.
Fitur utama dari proyek ini termasuk sistem jaminan kualitas otomatis (QA) yang kuat, menggabungkan penyemaian data anonim untuk pengujian QA yang komprehensif. Proyek ini juga mengeksplorasi fleksibilitas JavaScript, mendorong batas -batas bahasa. Khususnya, ia menggali kendala bidang objek V8 default, yang dibatasi sekitar ~ 8,4 juta, sambil menyoroti kapasitas penanganan superior dari struktur data peta.
Selain itu, proyek ini menggabungkan sistem antrian untuk meningkatkan efisiensi pemrosesan data. Intinya, Project berfungsi sebagai demonstrasi praktis dari aspek pengembangan perangkat lunak yang beragam dan maju, yang mencerminkan komitmen terhadap keunggulan dan inovasi.
Jika Anda menggunakan perintah make , Docker dan Docker-Compose diperlukan, dan node.js lokal dengan NPM adalah opsional
make perintah tidak ada langkah tambahan yang diperlukan, jika tidak Anda perlu mengeksekusi $ npm i$ make test atau $ npm test$ npm test -- --coverage , Laporan akan berlokasi di ./coverage Directory$ npm test src/graphql/user.test.js$ npm run sql db:migrate , Anda juga dapat membuat database melalui orm npm run sql db:create$ npm run sql db:seed:all$ make atau $ npm start$ make serve , tidak ada yang setara dengan NPM$ make build atau $ npm run build - aset yang dihasilkan akan berlokasi di direktori ./buildmake PORT=18081| Variabel | Nilai default | Jenis | Keterangan |
|---|---|---|---|
| PELABUHAN | 8081 | nomor | Port tempat aplikasi akan tersedia. |
| Ssl_key | rangkaian | Jalur absolut ke kunci SSL (misalnya, /home/ubuntu/private.key ). | |
| Ssl_cert | rangkaian | Jalur absolut ke sertifikat SSL (mis., /home/ubuntu/certificate.crt ). | |
| *** | *** | *** | Jika konfigurasi replika ditentukan, koneksi non-replika hanya digunakan untuk penulisan. |
| Db_hostname | 127.0.0.1 | rangkaian | Host tempat database dapat dicapai. |
| Db_username | akar | rangkaian | Nama pengguna untuk menghubungkan ke database. |
| Db_password | kata sandi | rangkaian | Kata sandi untuk pengguna database. |
| Db_port | 3306 | nomor | Port tempat database dapat dicapai. |
| Db_name | mengeksplorasi | rangkaian | Nama skema database. |
| Db_dialect | mysql | rangkaian | Dialek database, salah satu mysql / sqlite / postgres. |
| Db_replica_hostname | 127.0.0.1 | rangkaian | Host dari replika database untuk operasi hanya baca. |
| Db_replica_username | akar | rangkaian | Nama pengguna untuk menghubungkan ke replika database untuk operasi baca saja. |
| Db_replica_password | kata sandi | rangkaian | Kata sandi untuk pengguna yang menghubungkan ke replika database untuk operasi read-only. |
| Perintah NPM | File JS yang sesuai |
|---|---|
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 |
Contoh: npm run parse:postcodes -- --file=/media/data/postcodes.csv
| database | versi | adaptor | tujuan utama |
|---|---|---|---|
| Mysql | 8 | mysql2 | produksi |
| PostgreSQL | 11 | hal | produksi |
| Sqlite | 4 | sqlite3 | Otomatisasi QA & CI |
Jika Anda menggunakan MySQL 5.7+, Anda perlu memastikan itu dapat bekerja dengan kata sandi asli MySQL
Postrgesql dan SQLite sebagian didukung karena beberapa kueri tidak sepenuhnya agnostik engine, dan beberapa fungsi tidak ada di SQLite misalnya