| يتقن | هيروكو | |
|---|---|---|
| الاختبارات | ||
| التغطية |
يتركز هذا المشروع حول تحليل مجموعات البيانات المختلفة ، بما في ذلك بيانات حكومة المملكة المتحدة حول مبيعات الممتلكات ، وبيانات الإبلاغ عن الشرطة ، وبيانات ما بعد الكود. الهدف من ذلك هو تسخير المعلومات الجغرافية لإنشاء اتصالات بين الرموز البريدية باستخدام خط العرض وخط الطول.
الهدف الأساسي هو تطوير الواجهة الخلفية GraphQL قابلة للتطوير قادرة على تحقيق النتائج المطلوبة بسرعة. يسعى هذا المسعى إلى إلقاء الضوء على الجوانب المعقدة لاستخدام GraphQL ، معالجة التحديات مثل مشكلة N+1 وسيناريوهات التحجيم حيث تكون هناك حاجة إلى أكثر من قاعدة بيانات واحدة لكل من العقد الكتابة والقراءة.
تتضمن الميزات الرئيسية للمشروع نظام ضمان الجودة الآلي القوي (QA) ، ويتضمن بذرة البيانات المجهولة لاختبار ضمان الجودة الشامل. يستكشف المشروع أيضًا مرونة JavaScript ، ودفع حدود اللغة. والجدير بالذكر أنه يتخلف عن قيود حقول كائن V8 الافتراضية ، والتي يتم توجها حوالي 8.4 مليون ، مع تسليط الضوء على قدرة التعامل مع بنية بيانات الخريطة المتفوقة.
بالإضافة إلى ذلك ، يشتمل المشروع على نظام قائمة انتظار لتعزيز كفاءة معالجة البيانات. في جوهرها ، يعتبر Project بمثابة عرض عملي للجوانب المتنوعة والمتقدمة لتطوير البرمجيات ، مما يعكس الالتزام بالتميز والابتكار.
إذا كنت تستخدم أوامر make ، فإن Docker و Docker-Cormns مطلوبة ، و Node.js المحلي مع NPM اختياري
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 mad$ make build أو $ npm run build - سيتم تحديد الأصول التي تم إنشاؤها في .make PORT=18081| عامل | القيمة الافتراضية | يكتب | وصف |
|---|---|---|---|
| ميناء | 8081 | رقم | المنفذ الذي سيتوفر عليه التطبيق. |
| SSL_KEY | خيط | المسار المطلق لمفتاح SSL (على سبيل المثال ، /home/ubuntu/private.key private.key). | |
| SSL_CERT | خيط | المسار المطلق إلى شهادة SSL (على سبيل المثال ، /home/ubuntu/certificate.crt certificate.crt). | |
| *** | *** | *** | إذا تم تحديد تكوين نسخة طبق الأصل ، فسيتم استخدام اتصالات غير ريبليك فقط للكتابة. |
| db_hostname | 127.0.0.1 | خيط | المضيف الذي يمكن الوصول إليه من قاعدة البيانات. |
| db_username | جذر | خيط | اسم المستخدم للاتصال بقاعدة البيانات. |
| db_password | كلمة المرور | خيط | كلمة المرور لمستخدم قاعدة البيانات. |
| DB_PORT | 3306 | رقم | المنفذ الذي يمكن الوصول إليه من قاعدة البيانات. |
| db_name | يستكشف | خيط | اسم مخطط قاعدة البيانات. |
| DB_Dialect | MySQL | خيط | لهجة قاعدة البيانات ، واحدة من mysql / sqlite / postgres. |
| 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 | ص | إنتاج |
| sqlite | 4 | SQLITE3 | أتمتة QA و CI |
إذا كنت تستخدم MySQL 5.7+ ، فأنت بحاجة إلى التأكد من أنه يمكن أن يعمل مع كلمة مرور MySQL الأصلية
يتم دعم PostrgesQL و SQLite جزئيًا لأن بعض الاستعلامات ليست غير محركية بالكامل ، وبعض الوظائف غير موجودة في SQLite على سبيل المثال