├── src ├── requirement.txt ├── local_image.png ├── repo_data.py ├── readme.md ├── repo-collection.csv ├── heroes │ ├── readme.md │ ├── heroes.py │ └── heroes2.py └── test.py ├── CNAME ├── _data ├── stars │ └── zhou-xiaojun-jd_mask.yml ├── summary.zip ├── summary_total.json ├── summary_areas.json ├── summary_china.json ├── summary_global.json ├── tags.yml ├── heroes.yml ├── readme.md ├── unclassified.yml └── meta.yml ├── .gitignore ├── Gemfile ├── assets ├── screenshot1.png ├── screenshot2.png ├── page_summary │ ├── world_repos_count.svg │ ├── world_forks_count.svg │ ├── world_stars_count.svg │ ├── world_projects_count.svg │ ├── areas_repos_count.svg │ ├── china_repos_count.svg │ ├── global_repos_count.svg │ ├── total_repos_count.svg │ ├── areas_forks_count.svg │ ├── areas_stars_count.svg │ ├── china_forks_count.svg │ ├── china_stars_count.svg │ ├── total_forks_count.svg │ ├── areas_projects_count.svg │ ├── china_projects_count.svg │ ├── global_forks_count.svg │ ├── global_stars_count.svg │ ├── total_stars_count.svg │ ├── global_projects_count.svg │ └── total_projects_count.svg ├── css │ └── style.scss └── shields │ ├── github-covid19dashboards.svg │ ├── wertycn-nCoV.svg │ ├── BlankerL-DXY-2019-nCoV-Data.svg │ ├── nf-core-covid19.svg │ ├── BlankerL-DXY-2019-nCoV-Crawler.svg │ ├── gcreddy42-hiring2020.svg │ ├── ricnov-COVID-19-ITALY.svg │ ├── sorxrob-2019-ncov-api.svg │ ├── sydrawat-covid19.in.svg │ ├── zhou-xiaojun-jd_mask.svg │ ├── Academic-nCoV-2019-nCoV.svg │ ├── Pratitya-wuhan2020-timeline.svg │ ├── alessiodl-COVID19Dashboard.svg │ ├── alessiodl-COVID19Feed2Json.svg │ ├── github-covid19-dashboards.svg │ ├── sorxrob-2019-ncov-frontend.svg │ ├── kenlog-coronavirusinfections.org.svg │ ├── patilatharva-covid19tokyo.live..svg │ ├── TheWanderingCoel-WuhanPneumoniaBotTelegram.svg │ ├── kenlog-italy.coronavirusinfections.org.svg │ ├── mattroconnor-deep_learning_coronavirus_cure.svg │ ├── jriou-wcov.svg │ ├── veaba-ncov.svg │ ├── JanLikar-covid.svg │ ├── byrwiki-jiayou.svg │ ├── goinvo-COVID19.svg │ ├── Moyck-2019NCOV.svg │ ├── digiphilo-covid.svg │ ├── geohot-corona.svg │ ├── laomocode-yiqin.svg │ ├── liu-zoe-wuhancv.svg │ ├── p-j-r-covid-19.svg │ ├── par6n-ncov-19.svg │ ├── pzhaonet-ncov.svg │ ├── pzhaonet-ncovr.svg │ ├── NovelCOVID-API.svg │ ├── dsfsi-covid19za.svg │ ├── green512-2019nCoV.svg │ ├── hack-fang-nCov.svg │ ├── jakobzhao-virus.svg │ ├── openZH-covid_19.svg │ ├── pomber-covid19.svg │ ├── sangyx-nCoV-Map.svg │ ├── soorichu-coronako.svg │ ├── yjlou-2019-nCov.svg │ ├── Bost-corona_cases.svg │ ├── IliasPap-COVIDNet.svg │ ├── MhdHejazi-Corona.svg │ ├── azurini-data_public.svg │ ├── calthaus-ncov-cfr.svg │ ├── cuihuan-2019_nCov.svg │ ├── elcronos-COVID-19.svg │ ├── lispczz-pneumonia.svg │ ├── nextstrain-ncov.svg │ ├── pcm-dpc-COVID-19.svg │ └── pennsignals-chime.svg ├── _includes ├── footer.md ├── navigation.md ├── github_icon.md ├── search_repo.md ├── github_icon_with_name.md ├── repo.md ├── page_summary_china.md ├── page_summary_global.md ├── page_summary_total.md ├── page_summary_areas.md ├── site_recommendation.md ├── projects.md ├── post-comments.html ├── tags_projects.md ├── forks.svg ├── badge.svg └── repo-collection.md ├── _config.yml ├── index.md ├── world.md ├── areas.md ├── start_server.sh ├── .github ├── ISSUE_TEMPLATE │ ├── ----.md │ └── site-recommendation.md └── workflows │ ├── shields.yml │ └── counting.yml ├── search.md ├── unclassified.md ├── china.md ├── tags.md ├── heroes.md ├── sitemap.xml ├── about.md └── contribute.md /src/requirement.txt: -------------------------------------------------------------------------------- 1 | pyyaml 2 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | open-source-covid-19.weileizeng.com 2 | -------------------------------------------------------------------------------- /_data/stars/zhou-xiaojun-jd_mask.yml: -------------------------------------------------------------------------------- 1 | 190 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | _site/ 3 | \_site/ 4 | *~ 5 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | gem "github-pages", group: :jekyll_plugins 2 | source 'https://rubygems.org' 3 | -------------------------------------------------------------------------------- /_data/summary.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WeileiZeng/Open-Source-COVID-19/HEAD/_data/summary.zip -------------------------------------------------------------------------------- /src/local_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WeileiZeng/Open-Source-COVID-19/HEAD/src/local_image.png -------------------------------------------------------------------------------- /assets/screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WeileiZeng/Open-Source-COVID-19/HEAD/assets/screenshot1.png -------------------------------------------------------------------------------- /assets/screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WeileiZeng/Open-Source-COVID-19/HEAD/assets/screenshot2.png -------------------------------------------------------------------------------- /_includes/footer.md: -------------------------------------------------------------------------------- 1 | About [Open Source COVID-19](about) 2 | 3 | [Back to top](#top) 4 | 5 | 6 | 7 | {% include post-comments.html %} -------------------------------------------------------------------------------- /_data/summary_total.json: -------------------------------------------------------------------------------- 1 | { 2 | "forks_count": 49831, 3 | "projects_count": 246, 4 | "repos_count": 184, 5 | "stars_count": 121311 6 | } -------------------------------------------------------------------------------- /_data/summary_areas.json: -------------------------------------------------------------------------------- 1 | { 2 | "forks_count": 14510, 3 | "projects_count": 58, 4 | "repos_count": 51, 5 | "stars_count": 32491 6 | } -------------------------------------------------------------------------------- /_data/summary_china.json: -------------------------------------------------------------------------------- 1 | { 2 | "forks_count": 4157, 3 | "projects_count": 60, 4 | "repos_count": 45, 5 | "stars_count": 17724 6 | } -------------------------------------------------------------------------------- /_data/summary_global.json: -------------------------------------------------------------------------------- 1 | { 2 | "forks_count": 31164, 3 | "projects_count": 128, 4 | "repos_count": 88, 5 | "stars_count": 71096 6 | } -------------------------------------------------------------------------------- /_includes/navigation.md: -------------------------------------------------------------------------------- 1 | | Global | [Countries](areas) | [China](china) | tags | [About](about) | -------------------------------------------------------------------------------- /_includes/github_icon.md: -------------------------------------------------------------------------------- 1 | github 2 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-leap-day 2 | 3 | exclude: 4 | - src 5 | 6 | github: 7 | is_project_page: false 8 | 9 | google_analytics: UA-155170936-3 10 | 11 | 12 | disqus: opensourcewuhan 13 | -------------------------------------------------------------------------------- /_includes/search_repo.md: -------------------------------------------------------------------------------- 1 | | {{ repo.stargazers_count }} | {% if repo.fork %} forked {% endif %} | {{ repo.forks }} | {{ repo.full_name }} | -------------------------------------------------------------------------------- /_includes/github_icon_with_name.md: -------------------------------------------------------------------------------- 1 | {{ repo_name }} github 2 | -------------------------------------------------------------------------------- /_includes/repo.md: -------------------------------------------------------------------------------- 1 | * {% if include.repo-name %} ![](https://img.shields.io/github/stars/{{ include.repo-name }}?color=yellow&label=%E2%AD%90%EF%B8%8F&logoColor=blue&style=plastic) [{{ include.repo-name }}](https://github.com/{{ include.repo-name }}) {% endif %} {{ include.content }} -------------------------------------------------------------------------------- /src/repo_data.py: -------------------------------------------------------------------------------- 1 | # use Github API to get the data of repos, including star_counts 2 | # do some post processing like statistics of all stars and all forks. 3 | 4 | # TODO: 5 | # use curl to download data for repo listes in _data 6 | # use python json lib to read and process data 7 | -------------------------------------------------------------------------------- /src/readme.md: -------------------------------------------------------------------------------- 1 | this fold has several python scripts 2 | * counting.py 3 | * read entries in _data/*.yml, culr github API to get data for each repo, and do some statistic analysis. 4 | * output: total repo, total star, total forks, etc 5 | * sampel.json 6 | * a sample result of github api for a repo -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | comments: true 3 | --- 4 | 5 | {% include navigation.md %} 6 | 7 | {% include page_summary_global.md %} 8 | 9 | 10 | {% assign projects = site.data.global %} 11 | 12 | {% include projects.md %} 13 | 14 | 15 | 16 | {% include site_recommendation.md %} 17 | 18 | 19 | 20 | 21 | {% include footer.md %} -------------------------------------------------------------------------------- /world.md: -------------------------------------------------------------------------------- 1 | --- 2 | comments: true 3 | --- 4 | 5 | {% include navigation.md %} 6 | 7 | {% include page_summary_global.md %} 8 | 9 | 10 | {% assign projects = site.data.global %} 11 | 12 | {% include projects.md %} 13 | 14 | 15 | 16 | {% include site_recommendation.md %} 17 | 18 | 19 | 20 | 21 | {% include footer.md %} -------------------------------------------------------------------------------- /areas.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Countries/areas" 3 | comments: false 4 | --- 5 | 6 | {% include navigation.md %} 7 | 8 | {% include page_summary_areas.md %} 9 | 10 | 11 | {% assign projects = site.data.areas %} 12 | 13 | {% include projects.md %} 14 | 15 | 16 | 17 | {% include site_recommendation.md %} 18 | 19 | 20 | 21 | {% include footer.md %} -------------------------------------------------------------------------------- /_includes/page_summary_china.md: -------------------------------------------------------------------------------- 1 | China: 2 | summary 3 | summary 4 | summary 5 | summary -------------------------------------------------------------------------------- /start_server.sh: -------------------------------------------------------------------------------- 1 | echo this script will start the server at local host. this may take 10 seconds 2 | 3 | echo if "ERROR /sw.js not found." happens, it is probabalty due to googale analytics, which can be ignored. 4 | 5 | # another bug 6 | # jekyll 3.8.5 | Error: No such file or directory 7 | # @Weileis-Air.attlocal.net.23492 8 | # save some modify files. then it will fix by removing #files 9 | 10 | bundle exec jekyll serve --verbose 11 | -------------------------------------------------------------------------------- /_includes/page_summary_global.md: -------------------------------------------------------------------------------- 1 | Global: {% assign page_name = "global" %} 2 | summary 3 | summary 4 | summary 5 | summary -------------------------------------------------------------------------------- /_includes/page_summary_total.md: -------------------------------------------------------------------------------- 1 | Total: {% assign page_name = "total" %} 2 | summary 3 | summary 4 | summary 5 | summary -------------------------------------------------------------------------------- /_includes/page_summary_areas.md: -------------------------------------------------------------------------------- 1 | Countries/Areas: {% assign page_name = "areas" %} 2 | summary 3 | summary 4 | summary 5 | summary -------------------------------------------------------------------------------- /src/repo-collection.csv: -------------------------------------------------------------------------------- 1 | name,repo,website,decription 2 | wuhan2020,https://github.com/wuhan2020/wuhan2020,https://wh.opensource-service.cn/#/, 3 | wuhan2020-timeline,https://github.com/Pratitya/wuhan2020-timeline,,记录自2019年12月起武汉新冠肺炎疫情进展的时间线 4 | nCoV,https://github.com/wertycn/nCoV,http://nav.werty.cn/,2019-nCoV 武汉新冠状病毒肺炎疫情信息导航 5 | ,,http://charity.foodblockchain.com.cn/?from=timeline&isappinstalled=0, 6 | chinatimeline,https://github.com/chinatimeline/chinatimeline.github.io,, 7 | ,,, 8 | ,,, -------------------------------------------------------------------------------- /_data/tags.yml: -------------------------------------------------------------------------------- 1 | # automated file. please do not edit 2 | - others 3 | - dashboard 4 | - data 5 | - analysis 6 | - organization 7 | - API 8 | - news 9 | - map 10 | - python 11 | - R 12 | - javascript 13 | - twitter 14 | - supply 15 | - research 16 | - ventilator 17 | - paper 18 | - AI 19 | - crowdsourced-list 20 | - ipynb 21 | - hackathon 22 | - visualization 23 | - APP 24 | - IOS 25 | - CLI 26 | - react-native 27 | - academic 28 | - epidemiology 29 | - handbook 30 | - WFH 31 | - lockdown 32 | - education 33 | - community 34 | - nonopensource 35 | - android 36 | - csv 37 | - report 38 | -------------------------------------------------------------------------------- /_includes/site_recommendation.md: -------------------------------------------------------------------------------- 1 | 2 | ### Site recommendation 3 | [Open Source COVID-19](https://weileizeng.github.io/Open-Source-COVID-19/) collects all open source sites related to nCoV/COVID-19. It is hosted on [GitHub](https://github.com/WeileiZeng/Open-Source-COVID-19). You are welcome to recommend a site by 4 | * [open an issue at GitHub](https://github.com/WeileiZeng/Open-Source-COVID-19/issues/) 5 | * [contact me](https://weileizeng.com/news/1992/06/29/contact/) 6 | * Edit [_data/*.yml](https://github.com/WeileiZeng/Open-Source-COVID-19/tree/master/_data) and send a pull request 7 | 8 | -------------------------------------------------------------------------------- /_data/heroes.yml: -------------------------------------------------------------------------------- 1 | # any member who has contributed to the open source community. Your contribution could be either a line of a code, an idea. 2 | 3 | - name: name 4 | home_page: https://example.com/mainpage 5 | repos: 6 | - repo_name: user/repo 7 | - repo_name: org/repo 8 | projects: 9 | - project_name: 10 | project_url: 11 | description: more about you. 12 | 13 | - name: WZ 14 | home_page: https://github.com/WeileiZeng 15 | repos: 16 | - repo_name: WeileiZeng/OpenSourceWuhan 17 | - repo_name: WeileiZeng/OpenSourceCOVID-19 18 | description: wuhan jiayou 19 | 20 | 21 | -------------------------------------------------------------------------------- /_data/readme.md: -------------------------------------------------------------------------------- 1 | ### data files: (edit those to add your projects) 2 | * global.yml 3 | * projects applying to global scale. used in homepage index.md 4 | * areas.yml 5 | * projects focusing on some countries or areas. used in countries/areas page, area.md 6 | * china.yml 7 | * data entries for the projects in china.md 8 | * unclassified.yml 9 | * temp/test file for unclassified data entries. not used anywhere 10 | 11 | ### automated files: (do not edit, will be overwritten automatically) 12 | * tags.yml 13 | * all tags 14 | * tags_projects.yml 15 | * all projects classified by tags. Used in tags.md 16 | -------------------------------------------------------------------------------- /_includes/projects.md: -------------------------------------------------------------------------------- 1 | 2 | {% for group in projects %} 3 | ## {{ group.group_name }} 4 | {% for repo in group.repos %} 5 | * {% if repo.repo_name %} {% assign repo_name = repo.repo_name %} {% include github_icon.md %}{% endif %} {% if repo.repo2_name %} {% assign repo_name = repo.repo2_name %} {% include github_icon.md %}{% endif %} {% if repo.web_name %}{{ repo.web_name }}{% endif %} {% if repo.web2_name %}{{ repo.web2_name }}{% endif %} {{ repo.content }} {% for tag in repo.tags %} {{ tag }} {% endfor %} {% endfor %} 6 | {% endfor %} 7 | 8 | 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/----.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 项目推荐 3 | about: 欢迎提交新项目 4 | title: 项目推荐:项目名称 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **请用如下格式填写,每条目各占一行,若无对应条目请空置或者删除,谢谢** 11 | **Please use the following format. You can leave any of them blank. Thanks** 12 | - repo_name: 13 | repo2_name: 14 | web_name: 15 | web_url: 16 | web2_name: 17 | web2_url: 18 | content: 19 | tags: 20 | 21 | 例如:example: 22 | - repo_name: WeileiZeng/OpenSourceWuhan 23 | web_name: 武汉开源OpenSourceWuhan 24 | web_url: https://weileizeng.github.io/OpenSourceWuhan/ 25 | content: A collection of all Open Source project for defending Wuhan/world during COVID-19 支援武汉开源项目汇总 26 | tags: 27 | - navigation 28 | - crowdsourcing-list 29 | -------------------------------------------------------------------------------- /_includes/post-comments.html: -------------------------------------------------------------------------------- 1 | {% if site.disqus and page.comments != false %} 2 |
3 | 16 | 17 | {% endif %} 18 | -------------------------------------------------------------------------------- /search.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Search 3 | --- 4 | 5 | Search some keywords to see repos which are not includes in my list. Some of them may show up here due to changing of repo name 6 |
7 | Current keywords used: COVID, nCoV, covid19 8 |
9 | Total number of repos: {{ site.data.github_search | size }}. We only show 200 of them here. 10 | 11 | | stars | forks | name | description | homepage | easy_copy| 12 | |-|-|-|{% for repo in site.data.github_search limit: 200 %} 13 | | {{ repo.stargazers_count }} | {{ repo.forks }} | {{ repo.full_name }} | {{ repo.description }}| {{ repo.homepage }} | - repo_name: {{repo.full_name}}
web_url: {{repo.homepage}}
content: {{repo.description}} | {% endfor %} -------------------------------------------------------------------------------- /_data/unclassified.yml: -------------------------------------------------------------------------------- 1 | #not classified yet 2 | # for example: not open source, community based, or not directly related to the disease 3 | - group_name: closed source 4 | description: community based, non open source 5 | repos: 6 | 7 | 8 | - group_name: academic 9 | description: academics get affected 10 | repos: 11 | - web_name: VIRTUAL APS MARCH 2020 12 | web_url: https://virtualmarchmeeting.com/ 13 | content: A free community-driven virtual platform to support speakers at the 2020 APS March Meeting. Supported by Q-ctrl. 14 | tags: 15 | - communication 16 | - repo_name: virtualscienceforum/virtualscienceforum 17 | web_name: Organization for hosting of online conferences 18 | web_url: https://virtualscienceforum.org 19 | tags: 20 | - communication 21 | -------------------------------------------------------------------------------- /_includes/tags_projects.md: -------------------------------------------------------------------------------- 1 | 2 | {% assign projects_sorted = projects | sort: "group_name" %} 3 | {% for group in projects_sorted %} 4 | ## {{ group.group_name }} 5 | {% for repo in group.repos %} 6 | * {% if repo.repo_name %}{% assign repo_name = repo.repo_name %} {% include github_icon_with_name.md %}{% endif %} {% if repo.repo2_name %}{% assign repo_name = repo.repo2_name %} {% include github_icon_with_name.md %}{% endif %} {% if repo.web_name %}{{ repo.web_name }}{% endif %} {% if repo.web2_name %}{{ repo.web2_name }}{% endif %} {{ repo.content }} {% for tag in repo.tags %} {{ tag }} {% endfor %} {% endfor %} 7 | 8 | {% endfor %} 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/site-recommendation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Site Recommendation 3 | about: self-submission welcome 4 | title: 'site recommendation: project name' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Please use the following format. You can leave any of them blank. But a web_name is needed if web_url is provided. Thanks** 11 | - repo_name: 12 | repo2_name: 13 | web_name: 14 | web_url: 15 | web2_name: 16 | web2_url: 17 | content: 18 | tags: 19 | 20 | which area the projects is working on? Global or some particular area? 21 | 22 | 23 | example: 24 | - repo_name: WeileiZeng/Open-Source-COVID-19 25 | web_name: Open-Source-COVID-19 26 | web_url: https://weileizeng.github.io/Open-Source-COVID-19/ 27 | content: A collection of all Open Source project during COVID-19 开源项目汇总 28 | tags: 29 | - navigation 30 | - crowdsourcing-list 31 | -------------------------------------------------------------------------------- /_includes/forks.svg: -------------------------------------------------------------------------------- 1 | projectsprojects5858 2 | -------------------------------------------------------------------------------- /assets/page_summary/world_repos_count.svg: -------------------------------------------------------------------------------- 1 | reposrepos6868 -------------------------------------------------------------------------------- /_includes/badge.svg: -------------------------------------------------------------------------------- 1 | {{ label }}{{ label }}58{{ number }} 2 | -------------------------------------------------------------------------------- /assets/page_summary/world_forks_count.svg: -------------------------------------------------------------------------------- 1 | forksforks85198519 -------------------------------------------------------------------------------- /assets/page_summary/world_stars_count.svg: -------------------------------------------------------------------------------- 1 | starsstars2473524735 -------------------------------------------------------------------------------- /assets/page_summary/world_projects_count.svg: -------------------------------------------------------------------------------- 1 | projectsprojects8888 -------------------------------------------------------------------------------- /.github/workflows/shields.yml: -------------------------------------------------------------------------------- 1 | name: Update shields 2 | 3 | on: [push] 4 | #schedule: 5 | #- '0 8 * * *' 6 | 7 | jobs: 8 | build: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v2 14 | 15 | - name: Regenerating content. The commit would fail if nothing changes 16 | run: | 17 | echo this is a simple workflow which will run automatically upon each push. 18 | cd src 19 | pip3 install --upgrade setuptools 20 | pip3 install -r requirement.txt 21 | python3 tags.py 22 | python3 shields.py 23 | 24 | 25 | - name: Commit files 26 | run: | 27 | git config --local user.email "action@github.com" 28 | git config --local user.name "GitHub Action" 29 | git add -A 30 | git commit -m "update shields" 31 | - name: Push changes 32 | uses: ad-m/github-push-action@master 33 | with: 34 | github_token: ${{ secrets.GITHUB_TOKEN }} 35 | -------------------------------------------------------------------------------- /unclassified.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Unclassified 3 | --- 4 | Unclasssified projects, not directly related, or not open source yet. 5 | 6 | See also [projects for Wuhan, China](index) 7 | 8 | 9 | 10 | {% for group in site.data.unclassified %} 11 | ## {{ group.group_name }} 12 | {% for repo in group.repos %} 13 | * {% if repo.repo_name %} ![](https://img.shields.io/github/stars/{{ repo.repo_name }}?color=yellow&label=%E2%AD%90%EF%B8%8F&logoColor=blue&style=plastic) [{{ repo.repo_name }}](https://github.com/{{ repo.repo_name }}) {% endif %} {% if repo.repo2_name %} ![](https://img.shields.io/github/stars/{{ repo.repo2_name }}?color=yellow&label=%E2%AD%90%EF%B8%8F&logoColor=blue&style=plastic) [{{ repo.repo2_name }}](https://github.com/{{ repo.repo2_name }}) {% endif %} {% if repo.web_name %}[{{ repo.web_name }}]({{ repo.web_url }}){% endif %} {% if repo.web2_name %}[{{ repo.web2_name }}]({{ repo.web2_url }}){% endif %} {{ repo.content }} {% endfor %} 14 | {% endfor %} 15 | 16 | 17 | 18 | 19 | 20 | {% include footer.md %} -------------------------------------------------------------------------------- /china.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: China 3 | comments: false 4 | --- 5 | {% include navigation.md %} 6 | 7 | 8 | {% include page_summary_china.md %} 9 | 10 | 11 | {% assign projects = site.data.china %} 12 | 13 | {% include projects.md %} 14 | 15 | 16 | 17 | ### Gitee 18 | * [dcloud/xinguan2020](https://gitee.com/dcloud/xinguan2020) 抗疫防疫项目大汇总:出入管理、访客登记、健康统计、疫情查询、物资管理、社区代购、消毒登记、同乘查询... 19 | * [更多项目列表](https://www.dcloud.io/ncp.html) 20 | 21 | 22 | ### 推荐网页 Site recommendation 23 | [Open Source COVID-19](https://weileizeng.github.io/Open-Source-COVID-19/) 24 | 集结了支援武汉的开源项目,是一个连接各个开源项目的入口。本站托管于[GitHub](https://github.com/WeileiZeng/Open-Source-COVID-19),持续更新中。 25 | * 给本站推荐项目请点这里 [Open issue at GitHub](https://github.com/WeileiZeng/Open-Source-COVID-19/issues/new?assignees=&labels=&template=------.md&title=%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E6%8E%A8%E8%8D%90%3A+%E9%A1%B9%E7%9B%AE%E5%90%8D%E7%A7%B0) 26 | * 也可评论或者[Contact me](https://weileizeng.com/news/1992/06/29/contact/) 27 | 28 | 29 | 30 | 31 | {% include footer.md %} 32 | 33 | -------------------------------------------------------------------------------- /.github/workflows/counting.yml: -------------------------------------------------------------------------------- 1 | name: Counting summary once a day 2 | 3 | on: 4 | schedule: 5 | - cron: '0 8 * * *' 6 | 7 | jobs: 8 | build: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v2 14 | 15 | - name: Regenerating content. The commit would fail if nothing changes 16 | run: | 17 | echo this is a simple workflow which will run automatically upon each push. 18 | cd src 19 | pip3 install --upgrade setuptools 20 | pip3 install -r requirement.txt 21 | python3 counting.py 22 | python3 shields.py 23 | cd heroes 24 | python3 search_repo.py 25 | 26 | 27 | - name: Commit files 28 | run: | 29 | git config --local user.email "action@github.com" 30 | git config --local user.name "GitHub Action" 31 | git add -A 32 | git commit -m "Counting summary once a day" 33 | - name: Push changes 34 | uses: ad-m/github-push-action@master 35 | with: 36 | github_token: ${{ secrets.GITHUB_TOKEN }} 37 | -------------------------------------------------------------------------------- /src/heroes/readme.md: -------------------------------------------------------------------------------- 1 | ## process of OpenSourceHeroes projects 2 | 3 | idea: 4 | * I wrote that "10000+ people have contributed to these projects, which have received 10000+ stars". I am confident that these number is more than the truth, but how do I get the numbers? The star part is easy, which has been done by src/counting.py and was shown in the bottom of each page as a page summary. But I don't know how to get the "10000+" people yet. 5 | * My idea is that, instead of the projects listed in my list, we can focus on a broad range. Simply by searching "nCoV" or "COVID" on github, one can get hundreds of projects. as shown by the two json file in this folder (which is generated by searching.py). 6 | * Meanwhile, I notice that, the owner cannot fully represent the contributors. We can include all forks as well, or pull request and issue contributions. 7 | 8 | 9 | 10 | TODO: 11 | 12 | - [ ] Get repo owners 13 | - [ ] Get repo contributors 14 | - [ ] visualization 15 | - [ ] option1: markdown table 16 | - [ ] option2: [pyecharts](https://gallery.pyecharts.org/#/Graph/graph_weibo) 17 | -------------------------------------------------------------------------------- /assets/page_summary/areas_repos_count.svg: -------------------------------------------------------------------------------- 1 | repos: 51repos51 -------------------------------------------------------------------------------- /assets/page_summary/china_repos_count.svg: -------------------------------------------------------------------------------- 1 | repos: 45repos45 -------------------------------------------------------------------------------- /assets/page_summary/global_repos_count.svg: -------------------------------------------------------------------------------- 1 | repos: 88repos88 -------------------------------------------------------------------------------- /assets/page_summary/total_repos_count.svg: -------------------------------------------------------------------------------- 1 | repos: 184repos184 -------------------------------------------------------------------------------- /assets/page_summary/areas_forks_count.svg: -------------------------------------------------------------------------------- 1 | forks: 14510forks14510 -------------------------------------------------------------------------------- /assets/page_summary/areas_stars_count.svg: -------------------------------------------------------------------------------- 1 | stars: 32491stars32491 -------------------------------------------------------------------------------- /assets/page_summary/china_forks_count.svg: -------------------------------------------------------------------------------- 1 | forks: 4157forks4157 -------------------------------------------------------------------------------- /assets/page_summary/china_stars_count.svg: -------------------------------------------------------------------------------- 1 | stars: 17724stars17724 -------------------------------------------------------------------------------- /assets/page_summary/total_forks_count.svg: -------------------------------------------------------------------------------- 1 | forks: 49831forks49831 -------------------------------------------------------------------------------- /assets/page_summary/areas_projects_count.svg: -------------------------------------------------------------------------------- 1 | projects: 58projects58 -------------------------------------------------------------------------------- /assets/page_summary/china_projects_count.svg: -------------------------------------------------------------------------------- 1 | projects: 60projects60 -------------------------------------------------------------------------------- /assets/page_summary/global_forks_count.svg: -------------------------------------------------------------------------------- 1 | forks: 31164forks31164 -------------------------------------------------------------------------------- /assets/page_summary/global_stars_count.svg: -------------------------------------------------------------------------------- 1 | stars: 71096stars71096 -------------------------------------------------------------------------------- /assets/page_summary/total_stars_count.svg: -------------------------------------------------------------------------------- 1 | stars: 121311stars121311 -------------------------------------------------------------------------------- /assets/page_summary/global_projects_count.svg: -------------------------------------------------------------------------------- 1 | projects: 128projects128 -------------------------------------------------------------------------------- /assets/page_summary/total_projects_count.svg: -------------------------------------------------------------------------------- 1 | projects: 246projects246 -------------------------------------------------------------------------------- /tags.md: -------------------------------------------------------------------------------- 1 | --- 2 | comments: true 3 | --- 4 | 5 | {% include navigation.md %} 6 | 7 | 8 | {% include page_summary_total.md %} 9 | 10 | Here lists all projects classified by tags. A project may appear under multiple tags. Help me to add [more.](https://github.com/WeileiZeng/Open-Source-COVID-19/issues/68) 11 | {% assign tags_sorted = site.data.tags | sort %}{% for tag in tags_sorted %} 12 | {% endfor %} 13 | 14 | 15 | 16 | {% assign projects = site.data.tags_projects %} 17 | 18 | {% include tags_projects.md %} 19 | 20 | -------------------------------------------------------------------------------- /src/test.py: -------------------------------------------------------------------------------- 1 | #!/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 2 | 3 | 4 | import json 5 | import requests 6 | # now use json file to produce shields 7 | 8 | import shutil 9 | def download_svg_by_url(image_url, save_filename): 10 | resp = requests.get(image_url, stream=True) 11 | local_file = open(save_filename, 'wb') 12 | resp.raw.decode_content = True 13 | shutil.copyfileobj(resp.raw, local_file) 14 | local_file.close() 15 | del resp 16 | 17 | 18 | def update_summary_badge(page_name): 19 | filename='../_data/summary_'+page_name+'.json' 20 | summary={} 21 | with open(filename,'r') as f: 22 | summary=json.load(f) 23 | print(summary) 24 | for k,v in summary.items(): 25 | print(k) 26 | #print(v) 27 | label=k[:-6] 28 | counts=v 29 | url="https://img.shields.io/static/v1?label="+label+"&message="+str(counts)+"&color=brightgreen" 30 | print(url) 31 | save_filename='../assets/page_summary/'+page_name+'_'+k+'.svg' 32 | download_svg_by_url(url, save_filename) 33 | requests.get 34 | 35 | 36 | update_summary_badge('world') 37 | update_summary_badge('china') 38 | -------------------------------------------------------------------------------- /_data/meta.yml: -------------------------------------------------------------------------------- 1 | #this one define the format. Each item in the [repos] array is a project. A project may have 0-2 repo, and 0-2 website. 2 | - group_name: group_name 3 | repos: 4 | - repo_name: owner/name 5 | repo2_name: owner/name 6 | web_name: website name 7 | web_url: https://www.example.com/ 8 | web2_name: 9 | web2_url: 10 | content: this is a description of the projects, or anything else you want to add in the end 11 | tags: 12 | # though single tag is much cleaner for organization, it may be hard to classify all projects. At this point, multiple tags are allowed for each project 13 | - dashboard 14 | # track current cases, may also include visualization and maps 15 | - map 16 | # similar to dashboard, but some may only have a map 17 | - visualization 18 | # similar to dashboard, but some may only have visualization of data 19 | - data 20 | # collected data (json, yaml, csv, etc) avaliable for further analysis, visualization, or research 21 | - api 22 | # data avaliable by curl or wget 23 | - analysis 24 | # predictions, timeline review 25 | - apps 26 | # applications on andorid or iphones 27 | - communication 28 | - community 29 | - academic 30 | # related to academic and education 31 | - health 32 | -------------------------------------------------------------------------------- /assets/css/style.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | @import "{{ site.theme }}"; 5 | /* Radial Out */ 6 | .hvr-radial-out { 7 | display: inline-block; 8 | vertical-align: middle; 9 | -webkit-transform: perspective(1px) translateZ(0); 10 | transform: perspective(1px) translateZ(0); 11 | box-shadow: 0 0 1px rgba(0, 0, 0, 0); 12 | position: relative; 13 | overflow: hidden; 14 | background: #e1e1e1; 15 | -webkit-transition-property: color; 16 | transition-property: color; 17 | -webkit-transition-duration: 0.3s; 18 | transition-duration: 0.3s; 19 | } 20 | .hvr-radial-out:before { 21 | content: ""; 22 | position: absolute; 23 | z-index: -1; 24 | top: 0; 25 | left: 0; 26 | right: 0; 27 | bottom: 0; 28 | background: #2098D1; 29 | border-radius: 100%; 30 | -webkit-transform: scale(0); 31 | transform: scale(0); 32 | -webkit-transition-property: transform; 33 | transition-property: transform; 34 | -webkit-transition-duration: 0.3s; 35 | transition-duration: 0.3s; 36 | -webkit-transition-timing-function: ease-out; 37 | transition-timing-function: ease-out; 38 | } 39 | .hvr-radial-out:hover, .hvr-radial-out:focus, .hvr-radial-out:active { 40 | color: white; 41 | } 42 | .hvr-radial-out:hover:before, .hvr-radial-out:focus:before, .hvr-radial-out:active:before { 43 | -webkit-transform: scale(2); 44 | transform: scale(2); 45 | } 46 | -------------------------------------------------------------------------------- /heroes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Heroes 3 | --- 4 | We try to list all people who contributed to the open source community during COVID-19. This page is under development. 5 | 6 | search "COVID" on GitHub, one can see {{ site.data.github_search_COVID.total_count }} repos. The first 30 are 7 | 8 | {% for repo in site.data.github_search_COVID.items %} 9 | * ![](https://img.shields.io/github/stars/{{ repo.full_name }}?color=yellow&label=%E2%AD%90%EF%B8%8F&logo\ 10 | Color=blue&style=plastic) [{{ repo.full_name }}](https://github.com/{{ repo.full_name }}) {% endfor %} 11 | 12 | 13 | search "nCoV" on GitHub, one can see {{ site.data.github_search_nCoV.total_count }} repos. The first 30 are 14 | 15 | {% for repo in site.data.github_search_nCoV.items %} 16 | * ![](https://img.shields.io/github/stars/{{ repo.full_name }}?color=yellow&label=%E2%AD%90%EF%B8%8F&logo\ 17 | Color=blue&style=plastic) [{{ repo.full_name }}](https://github.com/{{ repo.full_name }}) {% endfor %} 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 34 | 35 | 36 | 37 | 38 | --- 39 | 40 | {% include footer.md %} -------------------------------------------------------------------------------- /sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | http://open-source-covid-19.weileizeng.com/ 12 | 2020-03-31T08:44:30+00:00 13 | 1.00 14 | 15 | 16 | http://open-source-covid-19.weileizeng.com/index 17 | 2020-03-31T08:44:30+00:00 18 | 0.80 19 | 20 | 21 | http://open-source-covid-19.weileizeng.com/areas 22 | 2020-03-31T08:44:30+00:00 23 | 0.80 24 | 25 | 26 | http://open-source-covid-19.weileizeng.com/china 27 | 2020-03-31T08:44:30+00:00 28 | 0.80 29 | 30 | 31 | http://open-source-covid-19.weileizeng.com/tags 32 | 2020-03-31T08:44:30+00:00 33 | 0.80 34 | 35 | 36 | http://open-source-covid-19.weileizeng.com/about 37 | 2020-03-31T08:44:30+00:00 38 | 0.80 39 | 40 | 41 | http://open-source-covid-19.weileizeng.com/search 42 | 2020-03-31T08:44:30+00:00 43 | 0.64 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /src/heroes/heroes.py: -------------------------------------------------------------------------------- 1 | ''' 2 | save data to data_heroes/heroes.json 3 | file structure 4 | [ 5 | { 6 | full_name: 7 | contributors: 8 | [ 9 | { 10 | login: 11 | id: 12 | contributions: 13 | } 14 | ] 15 | } 16 | ] 17 | ''' 18 | import requests 19 | import json 20 | 21 | def save(api_content,username): 22 | with open('data_heroes/'+username.replace('/','.')+'.json','w') as f: 23 | f.write( 24 | json.dumps(api_content, sort_keys=True, indent=4) 25 | ) 26 | 27 | keyword="COVID" 28 | keyword="nCoV" 29 | keyword="covid19" # a lot of repos start with that name 30 | 31 | #response=requests.get("https://api.github.com/search/repositories?q="+keyword+"&sort=stars&order=desc") 32 | 33 | 34 | heroes=[] 35 | 36 | #res = response.json() 37 | f = open('github_search_COVID.json','r') 38 | res = json.load(f) 39 | f.close() 40 | #information keys to save 41 | contributor_keys=['login','id','contributions'] 42 | repo_keys=['id','full_name','fork'] 43 | for repo in res['items']: 44 | #print(repo) 45 | repo2={} 46 | for k in repo_keys: 47 | repo2[k]=repo[k] 48 | contributors = requests.get(repo['contributors_url']).json() 49 | #print(contributors) 50 | #break 51 | repo_heroes=[] 52 | for contributor in contributors: 53 | #save(contributor, contributor.login) 54 | #print(json.dumps(contributor,indent=2)) 55 | hero={} 56 | for k in contributor_keys: 57 | hero[k]=contributor[k] 58 | repo_heroes.append(hero) 59 | repo2['contributors']=repo_heroes 60 | #print(json.dumps(repo_heroes, indent = 2)) 61 | heroes.append(repo2) 62 | print(json.dumps(heroes, indent = 2)) 63 | 64 | with open('list_heroes.json','w') as f: 65 | f.write(json.dumps(heroes, indent = 2)) 66 | 67 | -------------------------------------------------------------------------------- /_includes/repo-collection.md: -------------------------------------------------------------------------------- 1 | | name | repo | website | decription | 2 | |------------------|----------------------------------------------------------------|-------------------------------------------------------------------------------|----------------------------------------------| 3 | |wuhan2020 |[repo](https://github.com/wuhan2020/wuhan2020) |[website](https://wh.opensource-service.cn/#/) | | 4 | |wuhan2020-timeline|[repo](https://github.com/Pratitya/wuhan2020-timeline) | |记录自2019年12月起武汉新冠肺炎疫情进展的时间线| 5 | |nCoV |[repo](https://github.com/wertycn/nCoV) |[website](http://nav.werty.cn/) |2019-nCoV 武汉新冠状病毒肺炎疫情信息导航 | 6 | | | |[website](http://charity.foodblockchain.com.cn/?from=timeline&isappinstalled=0)| | 7 | |chinatimeline |[repo](https://github.com/chinatimeline/chinatimeline.github.io)| | | 8 | | | | | | 9 | | | | | | 10 | -------------------------------------------------------------------------------- /about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About 3 | --- 4 | {% include navigation.md %} 5 | 6 | {% include page_summary_total.md %} 7 | 8 | ### About us 9 | Open Source COVID-19 collects open source projects during COVID-19. The projects are not necessarily hosted on GitHub, as long as it corporates in an open source way, that everyone can access, inspect and improve it. 10 |
11 | The goal of this navigation site is to help people access data, contribute to the projects, and trigger new ideas. 12 | 13 | {% include site_recommendation.md %} 14 | 15 | ### Media coverage: 16 | * [thenation.com](https://www.thenation.com/article/world/china-journalism-coronavirus/) 17 | * [linux中国](https://linux.cn/article-11820-1.html), [机器之心](https://www.jiqizhixin.com/articles/2020-01-29-4) 18 | 19 | ### Under development 20 | * [tags](tags) list projects by tags 21 | * [searching](search) Finding more projects by searching keywords on github. 22 | 23 | ### [what is open source?](https://opensource.com/resources/what-open-source) 24 | The term [open source](https://opensource.com/article/18/2/coining-term-open-source-software) refers to something people can modify and share because its design is publicly accessible. 25 | Open source software is software with source code that anyone can inspect, modify, and enhance. 26 | Some software has source code that only the person, team, or organization who created it—and maintains exclusive control over it—can modify. People call this kind of software "proprietary" or "closed source" software. 27 | 28 | ### FAQ 29 | - I cannot share this website? 30 | - Some platform like facebook or wechat may block the domain github.io. I created another link to avoid such problem. Visit [https://cli.im/ARTwYZ](https://cli.im/ARTwYZ) and share. 31 | - Can I submit my own project? 32 | - Self-submission are welcome. 33 | - Citation 34 | - You are welcome to link or mention this site in your projects. If you need a formal citation, you can use the DOI identifier 35 | 36 | -------------------------------------------------------------------------------- /assets/shields/github-covid19dashboards.svg: -------------------------------------------------------------------------------- 1 | repo not foundrepo not found -------------------------------------------------------------------------------- /assets/shields/wertycn-nCoV.svg: -------------------------------------------------------------------------------- 1 | 5959 -------------------------------------------------------------------------------- /contribute.md: -------------------------------------------------------------------------------- 1 | ## Contribution guide 2 | The primary purpose of this project is to collect useful open source projects and display them by categories and region. Github pages (jekyll) have been used for the website, hence all data are saved in `yaml` format. Some python scripts are added for postprocessing. 3 | 4 | ### Data format 5 | All data is saved in three files in _data folder. 6 | * `global.yml` 7 | * Contains projects applying to global scale. Used in homepage index.md 8 | * `areas.yml` 9 | * Contains projects focusing on some countries or areas. Used in countries/areas page, area.md 10 | * `china.yml` 11 | * data entries for the projects in china.md 12 | 13 | Each project makes up one entry in the file. An entry is defined in [meta.yml](https://github.com/WeileiZeng/Open-Source-COVID-19/blob/master/_data/meta.yml) Add entries in those files, and the website will render and display it automatically. 14 | 15 | ### Where to find projects 16 | * from your own experience. 17 | * seen on github and web. 18 | * from issues and pull requests. etc. 19 | 20 | This repository is open an issue as a feedback, with the prescribed title and content. This step is optional. 21 | 22 | ### Added to Open Source COVID-19 23 | 24 | Thanks for your work to help the people in need! Your site has been added to the Open-Source-COVID-19 page, which collects open source projects related to COVID-19, including maps, data, news, api, analysis, medical and supply information, etc. Please share to anyone who might need the information in the list, or will possibly contribute to some of those projects. You are also welcome to recommend more projects. 25 | 26 | http://open-source-covid-19.weileizeng.com/ 27 | 28 | Cheers! 29 | 30 | 31 | ### Rendering 32 | After adding an entry (and push to the origin), these steps will be done automatically (at every push). They would took one min in total. 33 | * src/tags.py collect tags in the three data file and save it into tags.yml and tags_projects.yml. These two files are used for the tag page. 34 | * src/shields.py. generate shields for each project. A shield is an svg picture showing the number of stars. 35 | * github page rebuild the website 36 | 37 | ### Local test 38 | If you fork it, you can test it by turning on github pages "setting -> github pages -> master banch" 39 | 40 | To do a local test. You need to install jekyll first, and then install gems for the project. 41 | * install ruby environment 42 | * gem install jekyll bundler 43 | * bundle install 44 | * bundle exec jekyll serve 45 | 46 | A guide can be found here [here](https://github.com/github/personal-website) to see the installation section. 47 | 48 | 49 | #### [返回首页](./) 50 | 51 | -------------------------------------------------------------------------------- /assets/shields/BlankerL-DXY-2019-nCoV-Data.svg: -------------------------------------------------------------------------------- 1 | 1.2k1.2k -------------------------------------------------------------------------------- /assets/shields/nf-core-covid19.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/BlankerL-DXY-2019-nCoV-Crawler.svg: -------------------------------------------------------------------------------- 1 | 1.4k1.4k -------------------------------------------------------------------------------- /assets/shields/gcreddy42-hiring2020.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/ricnov-COVID-19-ITALY.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/sorxrob-2019-ncov-api.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/sydrawat-covid19.in.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/zhou-xiaojun-jd_mask.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/Academic-nCoV-2019-nCoV.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/Pratitya-wuhan2020-timeline.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/alessiodl-COVID19Dashboard.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/alessiodl-COVID19Feed2Json.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/github-covid19-dashboards.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/sorxrob-2019-ncov-frontend.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/kenlog-coronavirusinfections.org.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/patilatharva-covid19tokyo.live..svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/TheWanderingCoel-WuhanPneumoniaBotTelegram.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/kenlog-italy.coronavirusinfections.org.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/mattroconnor-deep_learning_coronavirus_cure.svg: -------------------------------------------------------------------------------- 1 | repo not found -------------------------------------------------------------------------------- /assets/shields/jriou-wcov.svg: -------------------------------------------------------------------------------- 1 | 33 -------------------------------------------------------------------------------- /assets/shields/veaba-ncov.svg: -------------------------------------------------------------------------------- 1 | 255 -------------------------------------------------------------------------------- /assets/shields/JanLikar-covid.svg: -------------------------------------------------------------------------------- 1 | 6 -------------------------------------------------------------------------------- /assets/shields/byrwiki-jiayou.svg: -------------------------------------------------------------------------------- 1 | 9 -------------------------------------------------------------------------------- /assets/shields/goinvo-COVID19.svg: -------------------------------------------------------------------------------- 1 | 6 -------------------------------------------------------------------------------- /assets/shields/Moyck-2019NCOV.svg: -------------------------------------------------------------------------------- 1 | 22 -------------------------------------------------------------------------------- /assets/shields/digiphilo-covid.svg: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /assets/shields/geohot-corona.svg: -------------------------------------------------------------------------------- 1 | 2.4k -------------------------------------------------------------------------------- /assets/shields/laomocode-yiqin.svg: -------------------------------------------------------------------------------- 1 | 4 -------------------------------------------------------------------------------- /assets/shields/liu-zoe-wuhancv.svg: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /assets/shields/p-j-r-covid-19.svg: -------------------------------------------------------------------------------- 1 | 11 -------------------------------------------------------------------------------- /assets/shields/par6n-ncov-19.svg: -------------------------------------------------------------------------------- 1 | 14 -------------------------------------------------------------------------------- /assets/shields/pzhaonet-ncov.svg: -------------------------------------------------------------------------------- 1 | 16 -------------------------------------------------------------------------------- /assets/shields/pzhaonet-ncovr.svg: -------------------------------------------------------------------------------- 1 | 79 -------------------------------------------------------------------------------- /assets/shields/NovelCOVID-API.svg: -------------------------------------------------------------------------------- 1 | 2.4k -------------------------------------------------------------------------------- /assets/shields/dsfsi-covid19za.svg: -------------------------------------------------------------------------------- 1 | 255 -------------------------------------------------------------------------------- /assets/shields/green512-2019nCoV.svg: -------------------------------------------------------------------------------- 1 | 6 -------------------------------------------------------------------------------- /assets/shields/hack-fang-nCov.svg: -------------------------------------------------------------------------------- 1 | 102 -------------------------------------------------------------------------------- /assets/shields/jakobzhao-virus.svg: -------------------------------------------------------------------------------- 1 | 157 -------------------------------------------------------------------------------- /assets/shields/openZH-covid_19.svg: -------------------------------------------------------------------------------- 1 | 432 -------------------------------------------------------------------------------- /assets/shields/pomber-covid19.svg: -------------------------------------------------------------------------------- 1 | 1.2k -------------------------------------------------------------------------------- /assets/shields/sangyx-nCoV-Map.svg: -------------------------------------------------------------------------------- 1 | 77 -------------------------------------------------------------------------------- /assets/shields/soorichu-coronako.svg: -------------------------------------------------------------------------------- 1 | 6 -------------------------------------------------------------------------------- /assets/shields/yjlou-2019-nCov.svg: -------------------------------------------------------------------------------- 1 | 132 -------------------------------------------------------------------------------- /src/heroes/heroes2.py: -------------------------------------------------------------------------------- 1 | ''' 2 | save data to data_heroes/heroes.json 3 | file structure 4 | [ 5 | { 6 | full_name: 7 | contributors: 8 | [ 9 | { 10 | login: 11 | id: 12 | contributions: 13 | } 14 | ] 15 | } 16 | ] 17 | ''' 18 | import requests 19 | import json 20 | 21 | def save(api_content,username): 22 | with open('data_heroes/'+username.replace('/','.')+'.json','w') as f: 23 | f.write( 24 | json.dumps(api_content, sort_keys=True, indent=4) 25 | ) 26 | 27 | 28 | def get_list_of_repos(): 29 | #search those keywords and save response to files 30 | searching_keywords=['COVID','nCoV','covid19'] 31 | 32 | #combine the lists and remove duplicates 33 | repos=[] 34 | duplicates={} 35 | for k in searching_keywords: 36 | with open('github_search_'+k+'.json','r') as f: 37 | items=json.load(f)['items'] 38 | #check 39 | for i in items: 40 | try: 41 | print( duplicates[i['full_name']] + '--->duplicates') 42 | except KeyError: 43 | duplicates[i['full_name']]=i['full_name'] 44 | repos.append(i) 45 | #print(i['full_name']) 46 | #repos = repos + items 47 | #print(len(repos)) 48 | print('after removing duplicates, we got a list of size') 49 | print(len(repos)) 50 | return repos 51 | # now check the list to remove duplicates and forks 52 | 53 | get_list_of_repos() 54 | exit() 55 | 56 | keyword="COVID" 57 | keyword="nCoV" 58 | keyword="covid19" # a lot of repos start with that name 59 | 60 | #response=requests.get("https://api.github.com/search/repositories?q="+keyword+"&sort=stars&order=desc") 61 | 62 | 63 | heroes=[] 64 | 65 | #res = response.json() 66 | f = open('github_search_COVID.json','r') 67 | res = json.load(f) 68 | f.close() 69 | #information keys to save 70 | contributor_keys=['login','id','contributions'] 71 | repo_keys=['id','full_name','fork'] 72 | for repo in res['items']: 73 | #print(repo) 74 | repo2={} 75 | for k in repo_keys: 76 | repo2[k]=repo[k] 77 | contributors = requests.get(repo['contributors_url']).json() 78 | #print(contributors) 79 | #break 80 | repo_heroes=[] 81 | for contributor in contributors: 82 | #save(contributor, contributor.login) 83 | #print(json.dumps(contributor,indent=2)) 84 | hero={} 85 | for k in contributor_keys: 86 | hero[k]=contributor[k] 87 | repo_heroes.append(hero) 88 | repo2['contributors']=repo_heroes 89 | #print(json.dumps(repo_heroes, indent = 2)) 90 | heroes.append(repo2) 91 | print(json.dumps(heroes, indent = 2)) 92 | 93 | with open('list_heroes.json','w') as f: 94 | f.write(json.dumps(heroes, indent = 2)) 95 | 96 | -------------------------------------------------------------------------------- /assets/shields/Bost-corona_cases.svg: -------------------------------------------------------------------------------- 1 | 19 -------------------------------------------------------------------------------- /assets/shields/IliasPap-COVIDNet.svg: -------------------------------------------------------------------------------- 1 | 79 -------------------------------------------------------------------------------- /assets/shields/MhdHejazi-Corona.svg: -------------------------------------------------------------------------------- 1 | 1.5k -------------------------------------------------------------------------------- /assets/shields/azurini-data_public.svg: -------------------------------------------------------------------------------- 1 | 6 -------------------------------------------------------------------------------- /assets/shields/calthaus-ncov-cfr.svg: -------------------------------------------------------------------------------- 1 | 89 -------------------------------------------------------------------------------- /assets/shields/cuihuan-2019_nCov.svg: -------------------------------------------------------------------------------- 1 | 42 -------------------------------------------------------------------------------- /assets/shields/elcronos-COVID-19.svg: -------------------------------------------------------------------------------- 1 | 315 -------------------------------------------------------------------------------- /assets/shields/lispczz-pneumonia.svg: -------------------------------------------------------------------------------- 1 | 408 -------------------------------------------------------------------------------- /assets/shields/nextstrain-ncov.svg: -------------------------------------------------------------------------------- 1 | 1.3k -------------------------------------------------------------------------------- /assets/shields/pcm-dpc-COVID-19.svg: -------------------------------------------------------------------------------- 1 | 3.9k -------------------------------------------------------------------------------- /assets/shields/pennsignals-chime.svg: -------------------------------------------------------------------------------- 1 | 136 --------------------------------------------------------------------------------