covid.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>Covid-19</title>
  7. <link rel="icon" type="img/ico" href="/images/favicon">
  8. <link rel="stylesheet" href="/covid/style">
  9. <script src="https://cdn.plot.ly/plotly-2.4.2.min.js"></script>
  10. </head>
  11. <body>
  12. <div id="title">
  13. <div id="centerTitle">
  14. <h1>Covid-19 Data</h1>
  15. <div>
  16. <input id="from" type="date">
  17. -
  18. <input id="to" type="date">
  19. </div>
  20. <select id="country">
  21. <option value="FSM">Micronesia</option>
  22. <option value="BIH">Bosnia and Herzegovina</option>
  23. <option value="OWID_OCE">Oceania</option>
  24. <option value="CHN">China</option>
  25. <option value="BHS">Bahamas</option>
  26. <option value="CYP">Cyprus</option>
  27. <option value="LIE">Liechtenstein</option>
  28. <option value="GUY">Guyana</option>
  29. <option value="MKD">North Macedonia</option>
  30. <option value="SHN">Saint Helena</option>
  31. <option value="LCA">Saint Lucia</option>
  32. <option value="KIR">Kiribati</option>
  33. <option value="OWI"D_AFR>Africa</option>
  34. <option value="WLF">Wallis and Futuna</option>
  35. <option value="AUT">Austria</option>
  36. <option value="COK">Cook Islands</option>
  37. <option value="ZMB">Zambia</option>
  38. <option value="SEN">Senegal</option>
  39. <option value="BFA">Burkina Faso</option>
  40. <option value="USA">United States</option>
  41. <option value="VEN">Venezuela</option>
  42. <option value="NGA">Nigeria</option>
  43. <option value="NPL">Nepal</option>
  44. <option value="DMA">Dominica</option>
  45. <option value="WSM">Samoa</option>
  46. <option value="MUS">Mauritius</option>
  47. <option value="TUN">Tunisia</option>
  48. <option value="RUS">Russia</option>
  49. <option value="TTO">Trinidad and Tobago</option>
  50. <option value="ARG">Argentina</option>
  51. <option value="HUN">Hungary</option>
  52. <option value="IRN">Iran</option>
  53. <option value="NER">Niger</option>
  54. <option value="MLT">Malta</option>
  55. <option value="KAZ">Kazakhstan</option>
  56. <option value="LTU">Lithuania</option>
  57. <option value="CHE">Switzerland</option>
  58. <option value="TKL">Tokelau</option>
  59. <option value="LKA">Sri Lanka</option>
  60. <option value="NIU">Niue</option>
  61. <option value="COD">Democratic Republic of Congo</option>
  62. <option value="CAF">Central African Republic</option>
  63. <option value="GRC">Greece</option>
  64. <option value="HRV">Croatia</option>
  65. <option value="SWE">Sweden</option>
  66. <option value="MOZ">Mozambique</option>
  67. <option value="SGP">Singapore</option>
  68. <option value="BOL">Bolivia</option>
  69. <option value="UKR">Ukraine</option>
  70. <option value="AFG">Afghanistan</option>
  71. <option value="CYM">Cayman Islands</option>
  72. <option value="RWA">Rwanda</option>
  73. <option value="SVN">Slovenia</option>
  74. <option value="GRL">Greenland</option>
  75. <option value="DZA">Algeria</option>
  76. <option value="TON">Tonga</option>
  77. <option value="SWZ">Eswatini</option>
  78. <option value="ISR">Israel</option>
  79. <option value="OMN">Oman</option>
  80. <option value="DOM">Dominican Republic</option>
  81. <option value="SLV">El Salvador</option>
  82. <option value="FLK">Falkland Islands</option>
  83. <option value="MYS">Malaysia</option>
  84. <option value="ITA">Italy</option>
  85. <option value="LSO">Lesotho</option>
  86. <option value="GNB">Guinea-Bissau</option>
  87. <option value="CHL">Chile</option>
  88. <option value="HTI">Haiti</option>
  89. <option value="OWID_NAM">North America</option>
  90. <option value="NIC">Nicaragua</option>
  91. <option value="TCD">Chad</option>
  92. <option value="AUS">Australia</option>
  93. <option value="ETH">Ethiopia</option>
  94. <option value="COM">Comoros</option>
  95. <option value="KWT">Kuwait</option>
  96. <option value="PNG">Papua New Guinea</option>
  97. <option value="PCN">Pitcairn</option>
  98. <option value="DEU">Germany</option>
  99. <option value="GMB">Gambia</option>
  100. <option value="ARM">Armenia</option>
  101. <option value="PAN">Panama</option>
  102. <option value="CUW">Curacao</option>
  103. <option value="TZA">Tanzania</option>
  104. <option value="TUR">Turkey</option>
  105. <option value="OWID_CYN">Northern Cyprus</option>
  106. <option value="SSD">South Sudan</option>
  107. <option value="VNM">Vietnam</option>
  108. <option value="MDV">Maldives</option>
  109. <option value="LBR">Liberia</option>
  110. <option value="TJK">Tajikistan</option>
  111. <option value="ROU">Romania</option>
  112. <option value="BRN">Brunei</option>
  113. <option value="JAM">Jamaica</option>
  114. <option value="MDG">Madagascar</option>
  115. <option value="SUR">Suriname</option>
  116. <option value="OWID_SAM">South America</option>
  117. <option value="PER">Peru</option>
  118. <option value="FRO">Faeroe Islands</option>
  119. <option value="GGY">Guernsey</option>
  120. <option value="SVK">Slovakia</option>
  121. <option value="JPN">Japan</option>
  122. <option value="GIN">Guinea</option>
  123. <option value="KEN">Kenya</option>
  124. <option value="BLR">Belarus</option>
  125. <option value="GNQ">Equatorial Guinea</option>
  126. <option value="MNG">Mongolia</option>
  127. <option value="IND">India</option>
  128. <option value="NAM">Namibia</option>
  129. <option value="SYC">Seychelles</option>
  130. <option value="NCL">New Caledonia</option>
  131. <option value="VGB">British Virgin Islands</option>
  132. <option value="LAO">Laos</option>
  133. <option value="MAC">Macao</option>
  134. <option value="STP">Sao Tome and Principe</option>
  135. <option value="MAR">Morocco</option>
  136. <option value="MDA">Moldova</option>
  137. <option value="HKG">Hong Kong</option>
  138. <option value="PRY">Paraguay</option>
  139. <option value="CMR">Cameroon</option>
  140. <option value="ESP">Spain</option>
  141. <option value="UZB">Uzbekistan</option>
  142. <option value="MEX">Mexico</option>
  143. <option value="IRL">Ireland</option>
  144. <option value="TWN">Taiwan</option>
  145. <option value="PRT">Portugal</option>
  146. <option value="BRB">Barbados</option>
  147. <option value="GHA">Ghana</option>
  148. <option value="CAN">Canada</option>
  149. <option value="BLZ">Belize</option>
  150. <option value="ISL">Iceland</option>
  151. <option value="GEO">Georgia</option>
  152. <option value="MSR">Montserrat</option>
  153. <option value="THA">Thailand</option>
  154. <option value="ECU">Ecuador</option>
  155. <option value="ERI">Eritrea</option>
  156. <option value="LUX">Luxembourg</option>
  157. <option value="AZE">Azerbaijan</option>
  158. <option value="COG">Congo</option>
  159. <option value="JOR">Jordan</option>
  160. <option value="TKM">Turkmenistan</option>
  161. <option value="QAT">Qatar</option>
  162. <option value="BEN">Benin</option>
  163. <option value="TCA">Turks and Caicos Islands</option>
  164. <option value="OWID_ASI">Asia</option>
  165. <option value="EST">Estonia</option>
  166. <option value="OWID_WRL">World</option>
  167. <option value="BMU">Bermuda</option>
  168. <option value="KGZ">Kyrgyzstan</option>
  169. <option value="AGO">Angola</option>
  170. <option value="FJI">Fiji</option>
  171. <option value="NZL">New Zealand</option>
  172. <option value="SLB">Solomon Islands</option>
  173. <option value="PLW">Palau</option>
  174. <option value="HND">Honduras</option>
  175. <option value="ARE">United Arab Emirates</option>
  176. <option value="TLS">Timor</option>
  177. <option value="COL">Colombia</option>
  178. <option value="BDI">Burundi</option>
  179. <option value="KHM">Cambodia</option>
  180. <option value="FIN">Finland</option>
  181. <option value="SLE">Sierra Leone</option>
  182. <option value="GRD">Grenada</option>
  183. <option value="IRQ">Iraq</option>
  184. <option value="LVA">Latvia</option>
  185. <option value="MRT">Mauritania</option>
  186. <option value="NRU">Nauru</option>
  187. <option value="SXM">Sint Maarten (Dutch part)</option>
  188. <option value="ZAF">South Africa</option>
  189. <option value="NLD">Netherlands</option>
  190. <option value="LBY">Libya</option>
  191. <option value="OWID_EUR">Europe</option>
  192. <option value="CRI">Costa Rica</option>
  193. <option value="POL">Poland</option>
  194. <option value="BTN">Bhutan</option>
  195. <option value="CZE">Czechia</option>
  196. <option value="PAK">Pakistan</option>
  197. <option value="ZWE">Zimbabwe</option>
  198. <option value="CUB">Cuba</option>
  199. <option value="EGY">Egypt</option>
  200. <option value="ALB">Albania</option>
  201. <option value="SYR">Syria</option>
  202. <option value="SAU">Saudi Arabia</option>
  203. <option value="BHR">Bahrain</option>
  204. <option value="BES">Bonaire Sint Eustatius and Saba</option>
  205. <option value="MHL">Marshall Islands</option>
  206. <option value="OWID_EUN">European Union</option>
  207. <option value="BGR">Bulgaria</option>
  208. <option value="DNK">Denmark</option>
  209. <option value="CIV">Cote d'Ivoire</option>
  210. <option value="IMN">Isle of Man</option>
  211. <option value="SMR">San Marino</option>
  212. <option value="BGD">Bangladesh</option>
  213. <option value="BRA">Brazil</option>
  214. <option value="SDN">Sudan</option>
  215. <option value="MWI">Malawi</option>
  216. <option value="AND">Andorra</option>
  217. <option value="OWID_KOS">Kosovo</option>
  218. <option value="BWA">Botswana</option>
  219. <option value="MLI">Mali</option>
  220. <option value="TGO">Togo</option>
  221. <option value="ABW">Aruba</option>
  222. <option value="JEY">Jersey</option>
  223. <option value="LBN">Lebanon</option>
  224. <option value="VCT">Saint Vincent and the Grenadines</option>
  225. <option value="VAT">Vatican</option>
  226. <option value="PYF">French Polynesia</option>
  227. <option value="PSE">Palestine</option>
  228. <option value="DJI">Djibouti</option>
  229. <option value="TUV">Tuvalu</option>
  230. <option value="GIB">Gibraltar</option>
  231. <option value="KOR">South Korea</option>
  232. <option value="MNE">Montenegro</option>
  233. <option value="GTM">Guatemala</option>
  234. <option value="MCO">Monaco</option>
  235. <option value="YEM">Yemen</option>
  236. <option value="GAB">Gabon</option>
  237. <option value="SRB">Serbia</option>
  238. <option value="IDN">Indonesia</option>
  239. <option value="UGA">Uganda</option>
  240. <option value="ATG">Antigua and Barbuda</option>
  241. <option value="FRA">France</option>
  242. <option value="PHL">Philippines</option>
  243. <option value="BEL">Belgium</option>
  244. <option value="AIA">Anguilla</option>
  245. <option value="SOM">Somalia</option>
  246. <option value="MMR">Myanmar</option>
  247. <option value="NOR">Norway</option>
  248. <option value="GBR">United Kingdom</option>
  249. <option value="URY">Uruguay</option>
  250. <option value="CPV">Cape Verde</option>
  251. <option value="VUT">Vanuatu</option>
  252. <option value="KNA">Saint Kitts and Nevis</option>
  253. </select>
  254. <button id="searchButton" onclick="getData()">Search</button>
  255. </div>
  256. <div id="selectors">
  257. <label>New Cases
  258. <input id="checkNewCases" type="checkbox" onclick="createGraph()" checked>
  259. </label>
  260. <label>New Deaths
  261. <input id="checkNewDeaths" type="checkbox" onclick="createGraph()" checked>
  262. </label>
  263. <label>Total Cases
  264. <input id="checkTotalCases" type="checkbox" onclick="createGraph()">
  265. </label>
  266. <label>Total Deaths
  267. <input id="checkTotalDeaths" type="checkbox" onclick="createGraph()">
  268. </label>
  269. </div>
  270. </div>
  271. <div id="chart"></div>
  272. <script>
  273. let covids = [];
  274. let fromInput = document.getElementById("from");
  275. let toInput = document.getElementById("to");
  276. let countryInput = document.getElementById("country");
  277. let cncInput = document.getElementById("checkNewCases");
  278. let cndInput = document.getElementById("checkNewDeaths");
  279. let ctcInput = document.getElementById("checkTotalCases");
  280. let ctdInput = document.getElementById("checkTotalDeaths");
  281. let from = new Date();
  282. from.setHours(0, 0, 0, 0);
  283. from.setDate(from.getDate() - 30);
  284. fromInput.valueAsDate = from;
  285. toInput.valueAsDate = new Date();
  286. countryInput.value = "OWID_WRL";
  287. let createGraph = ()=>{
  288. let dates = covids.map(c => c.date);
  289. let lines = [];
  290. if(cncInput.checked){
  291. lines.push({
  292. x: dates,
  293. y: covids.map(c => c.new_cases),
  294. mode: "lines+markers",
  295. name: "New Cases"
  296. });
  297. }
  298. if(cndInput.checked){
  299. lines.push({
  300. x: dates,
  301. y: covids.map(c => c.new_deaths),
  302. mode: "lines+markers",
  303. name: "New Deaths"
  304. });
  305. }
  306. if(ctcInput.checked){
  307. lines.push({
  308. x: dates,
  309. y: covids.map(c => c.total_cases),
  310. mode: "lines+markers",
  311. name: "Total Cases"
  312. });
  313. }
  314. if(ctdInput.checked){
  315. lines.push({
  316. x: dates,
  317. y: covids.map(c => c.total_deaths),
  318. mode: "lines+markers",
  319. name: "Total Deaths"
  320. });
  321. }
  322. Plotly.newPlot("chart", lines);
  323. }
  324. let getData = ()=>{
  325. let data = {
  326. from: fromInput.valueAsDate,
  327. to: toInput.valueAsDate,
  328. isoCode: countryInput.value
  329. }
  330. fetch("/covid", {
  331. method: "post",
  332. headers: {
  333. "Content-Type": "application/json"
  334. },
  335. body: JSON.stringify(data)
  336. })
  337. .then(r=>r.json())
  338. .then((response)=>{
  339. covids = response;
  340. createGraph()
  341. })
  342. .catch((err)=>{});
  343. }
  344. getData();
  345. </script>
  346. </body>
  347. </html>