├── loader ├── compare.py └── loader.py ├── public ├── robots.txt ├── assets │ └── images │ │ ├── emoji │ │ ├── hot.png │ │ ├── mask.png │ │ ├── smile.png │ │ └── sneezing.png │ │ ├── social-img.png │ │ ├── weizmann-logo.jpg │ │ ├── side-bar-icons │ │ ├── pin.svg │ │ ├── email.svg │ │ ├── bag.svg │ │ ├── info.svg │ │ ├── coding.svg │ │ ├── routh.svg │ │ ├── track.svg │ │ ├── plane.svg │ │ ├── language.svg │ │ └── city.svg │ │ ├── x-icon.svg │ │ ├── map-icons │ │ ├── allTime.svg │ │ ├── yesterday.svg │ │ ├── sick │ │ │ └── high-sick.svg │ │ ├── city-m.svg │ │ ├── city-l.svg │ │ ├── city-small.svg │ │ ├── min.svg │ │ ├── plus.svg │ │ ├── gps.svg │ │ ├── gps-blue.svg │ │ ├── plane-map-icon.svg │ │ ├── delivery-icon.svg │ │ ├── filters.svg │ │ ├── help.svg │ │ ├── street-food-icon.svg │ │ └── mapReader-he.svg │ │ ├── phone.svg │ │ ├── alarm.svg │ │ ├── form-success.svg │ │ ├── crosshair.svg │ │ └── icm.svg ├── data │ ├── 178a955d-e175-4e61-9dd2-5e3821a237f3.jpeg │ └── top-cities.js ├── embed │ └── test.html ├── js │ ├── strings.js │ ├── embed.js │ ├── utils.js │ ├── search-city.js │ ├── feedback.js │ ├── flights.js │ ├── firestore.js │ ├── info.js │ ├── admin.js │ ├── tracks.js │ └── scripts.js ├── css │ ├── embed.css │ ├── flights.css │ ├── admin.css │ ├── search-city.css │ ├── feedback.css │ └── map.css ├── languages │ ├── he.js │ ├── ar.js │ ├── en.js │ ├── ru.js │ ├── th.js │ └── i18n.js ├── search-city │ └── index.html ├── sitemap.xml ├── admin │ └── index.html └── tracks │ └── index.html ├── data-gen ├── translations │ ├── manual_translations_ar.json │ ├── translate.sh │ ├── translation_cache_ar.json │ ├── README │ ├── update.py │ └── translate.py ├── translate.py ├── format_data.py ├── process.py ├── extract.py └── compare.py ├── googlebd49e7e243f53188.html ├── push_data.sh ├── package.json ├── .eslintrc.json ├── README.md ├── project_turndown └── index.html ├── firebase.json ├── check.py ├── git_export_all_file_versions.sh ├── .gitignore └── LICENSE /loader/compare.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /data-gen/translations/manual_translations_ar.json: -------------------------------------------------------------------------------- 1 | {"מלון מגדל דוד": "fdfd"} -------------------------------------------------------------------------------- /googlebd49e7e243f53188.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googlebd49e7e243f53188.html -------------------------------------------------------------------------------- /public/assets/images/emoji/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oferb/israelcoronamap/HEAD/public/assets/images/emoji/hot.png -------------------------------------------------------------------------------- /public/assets/images/emoji/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oferb/israelcoronamap/HEAD/public/assets/images/emoji/mask.png -------------------------------------------------------------------------------- /public/assets/images/social-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oferb/israelcoronamap/HEAD/public/assets/images/social-img.png -------------------------------------------------------------------------------- /public/assets/images/emoji/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oferb/israelcoronamap/HEAD/public/assets/images/emoji/smile.png -------------------------------------------------------------------------------- /public/assets/images/weizmann-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oferb/israelcoronamap/HEAD/public/assets/images/weizmann-logo.jpg -------------------------------------------------------------------------------- /public/assets/images/emoji/sneezing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oferb/israelcoronamap/HEAD/public/assets/images/emoji/sneezing.png -------------------------------------------------------------------------------- /data-gen/translations/translate.sh: -------------------------------------------------------------------------------- 1 | # Set GOOGLE_APPLICATION_CREDENTIALS=coronavirus-il-8acf4d7b9bec.json 2 | python translate.py He $1 3 | -------------------------------------------------------------------------------- /public/data/178a955d-e175-4e61-9dd2-5e3821a237f3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oferb/israelcoronamap/HEAD/public/data/178a955d-e175-4e61-9dd2-5e3821a237f3.jpeg -------------------------------------------------------------------------------- /public/embed/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /push_data.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -ex 4 | 5 | while true 6 | do 7 | python3 loader/loader.py 8 | git add -A 9 | git commit -m 'Data update' 10 | git push 11 | firebase deploy --project coronavirus-il 12 | sleep 1800 13 | done 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-package", 3 | "scripts": { 4 | "lint": "eslint .", 5 | "lint-fix": "eslint . --fix", 6 | "precommit": "npm run lint" 7 | }, 8 | "devDependencies": { 9 | "eslint": "^6.8.0", 10 | "eslint-config-airbnb-base": "^14.0.0", 11 | "eslint-plugin-import": "^2.20.1" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /data-gen/translate.py: -------------------------------------------------------------------------------- 1 | from google.cloud import translate_v2 as translate 2 | translate_client = translate.Client() 3 | 4 | result = translate_client.translate(text, target_language='he') 5 | >>> result['translatedText'] 6 | 'שלום לך' 7 | >>> text = 'שלום לך' 8 | >>> result = translate_client.translate(text, target_language='en') 9 | >>> result['translatedText'] 10 | -------------------------------------------------------------------------------- /data-gen/translations/translation_cache_ar.json: -------------------------------------------------------------------------------- 1 | { 2 | "גן לאומי קיסריה": "حديقة قيسارية الوطنية", 3 | "מלון גבריאל": "فندق جبرائيل", 4 | "כנסיית הבשורה": "كنيسة الانجيل", 5 | "כניסת המשפחה הקדושה": "دخول العائلة المقدسة", 6 | "עין גב כפר הנופש": "الجزء الخلفي من المنتجع", 7 | "כנסיית הבכורה של פטרוס": "كنيسة القديس بطرس الأولى", 8 | "מסעדת תנורין": "مطعم فرن", 9 | "כפר נחום": "كفرناحوم" 10 | } -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "parserOptions": { 3 | "sourceType": "module" 4 | }, 5 | "extends": [ 6 | "eslint:recommended" 7 | ], 8 | "env": { 9 | "browser": true, 10 | "es2017": true, 11 | "jquery": true 12 | }, 13 | "rules": { 14 | "semi": [ 15 | 2, 16 | "always" 17 | ], 18 | "no-var": 2, 19 | "indent": [ 20 | "error", 21 | 2 22 | ], 23 | "func-style": ["error", "expression"], 24 | "space-infix-ops": ["error"] 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /public/assets/images/side-bar-icons/pin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/images/x-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/images/map-icons/allTime.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/images/map-icons/yesterday.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/images/side-bar-icons/email.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /public/assets/images/map-icons/sick/high-sick.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/assets/images/map-icons/city-m.svg: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /public/assets/images/map-icons/city-l.svg: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /public/assets/images/map-icons/city-small.svg: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /public/assets/images/phone.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /public/assets/images/map-icons/min.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Israel Coronavirus Map 2 | 3 | A website that shows you whereabouts of people with verified Coronavirus. Data is published by the Ministry of Health. 4 | 5 | Code is VanillaJS, so no framework required! 6 | 7 | ## How to run locally 8 | from the *public* dir, run: 9 | ```shell script 10 | python -m SimpleHTTPServer 11 | ``` 12 | or for python3: 13 | ```shell script 14 | python3 -m http.server 15 | ``` 16 | and navigate to http://localhost:8000. 17 | 18 | 19 | For questions, please contact Ofer Bartal: 20 | * blueofer@gmail.com 21 | * https://www.linkedin.com/in/ofer-bartal-58a50811/ 22 | * https://www.facebook.com/ofer.bartal 23 | -------------------------------------------------------------------------------- /public/js/strings.js: -------------------------------------------------------------------------------- 1 | const sickElementUpdate = (id, value) => { 2 | if (document.getElementById(id)) { 3 | document.getElementById(id).textContent = value; 4 | } 5 | }; 6 | 7 | const sickDataUpdate = (updatedTime, numberOfSickPeople, numberOfRecovered, numberOfDeaths) => { 8 | sickElementUpdate("number-of-sick-people-text", convertNumberToStringWithCommas(numberOfSickPeople)); 9 | sickElementUpdate("number-of-recovered-people-text", convertNumberToStringWithCommas(numberOfRecovered)); 10 | sickElementUpdate("number-of-deaths-text", convertNumberToStringWithCommas(numberOfDeaths)); 11 | sickElementUpdate("last-updated-time-sick", updatedTime); 12 | }; 13 | 14 | getSickPeopleData(sickDataUpdate); 15 | -------------------------------------------------------------------------------- /data-gen/translations/README: -------------------------------------------------------------------------------- 1 | To translate the hebrew data to a language: 2 | 3 | bash translate.shחיפוש מידע על חולי קורונה לפי עיר
46 |חפשו את העיר שלכם וגלו את נתוני קורונה העדכניים ביותר לגביהם
48 |אוכולוסיה נכון ל-2018
76 | 77 |חולים מאומתים
82 | 83 |מספר מחלימים
88 | 89 |תחלואה ל-100,000
95 | 96 | 97 |עדכון מצב החולים בישראל
56 |נשלח בהצלחה
88 |אנא נסה שנית
89 |99 | שם הקובץ: 100 | 101 |
102 |קובץ אקסל עלה בהצלחה
103 |אנא נסה שנית
104 |נתוני ערים עודכנו בהצלחה
107 |אנא נסה שנית
108 |