Coronavirus is a serious health issue all over the world currently. This virus has been spreading from Asia since December 2019 and China is the most serious country. All team members come from China. Although we stayed in Los Angeles, we can hear about how horrible this virus is from our friends and families. Now, this virus has spread in the US as well. We hope everybody remembers, people who suffered from COVID-2019 are not just numbers. So our team wants to build an Android mobile application that can help users understand more about this virus and how to prevent it. We hope more people can pay more attention to this health problem and take appropriate precautions.
What it does
This application mainly has four interfaces.
As a user, the user can see his/her location and check the number of confirmed patients, death of patients and recovery cases in that location.
As a user, the user can view data(confirmed, death and recovery) from different countries.
As a user, the user can view detailed information (state or city) by clicking countries.
- Map: As a user, the user can see his/her location and check confirmed patients around near-by cities. (Green means less than 20 confirmed patients, yellow means 20 to 100 confirmed patients, red means more than 100 confirmed patients)
- Twitter: As the system, it shall do the multi-dimensional emotion analysis based on the latest 10000 comments and generate the graph according to a specific city (e.g. Los Angeles, New York City). As a user, users can view pie charts about posts’ emotions according to the city they searched. As a user, users can view five related tweets about “Coronavirus” related to their interested city.
- eBay: As the system, it shall show basic information (item, average price, available stock) about some products (such as masks and hand sanitizer) people need to prevent the virus. As a user, the user can click the item and go to eBay directly for this product if there is available stock.
How we built it
Challenges we ran into
Due to poor computer configuration, running the Android Studio and Simulator is time-consuming. For example, one of our computers runs the test once and it needs 10 mins to finish the building.
Request eBay and Twitter API. We started this project on Friday and we submitted our request at night. When we checked it on Saturday afternoon, they are still pending. Later, we talked with the staff on Slack. Luckily, they provided an available account for us to use.
For some APIs, such as eBay and Twitter API, we are not very familiar with it. We never used them before. We have to learn them from zero as beginners (Go to online, look for examples). We were worried about conflicts between multiple APIs. We spent a lot of time doing research about multiple API calls.
Accomplishments that we're proud of
We get the data about confirmed patients groups by countries from Github (http://220.127.116.11:8080/api/covid_daily_data). It will be updated every day. Therefore, the data of the COVIDashboard will be updated every day as well. Thanks to JHU’s CSSE lab: https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data
Map markers with different colors will be added according to the number of confirmed patients nearby users. This feature will warn users that they may have a high risk of infection. It is very helpful because it will remind users to take appropriate precautions like wearing a mask before going out.
Currently, the demand for masks exceeds supply. We used the eBay API to integrate information. It is more convenient for users to check whether it has available stock or not. If users see some products they need and the products are available, they directly go to eBay by clicking the item.
The emotion analysis on Twitter is more valuable for research. The graphs can show how people react to this kind of issue. The research result will be very helpful if similar issues happen in the future.
What we learned
We learned some new technologies (restful APIs, developer tools, GCP, MongoDB).
We learned how to apply our current knowledge to real-world applications, we deliver what we learned in the class (Web Technology, Software Engineering, Natural Language Processing) to features really helps.
We learned from each other. Someone is good at Node.js, Someone is more familiar with MongoDB. When we have some technical problems, we have a discussion about different solutions. During this process, all of us learned new things.
We learned how to do a project as a team (how we should communicate in a team project). We have Trello to distribute tasks and track processes. It makes sure that none is doing overlap tasks. Once one member finishes coding, he/she can request other numbers to do the code review (other used tools: Github, slack). Good communications ensure high efficiency in this project.
What's next for COVIDashboard
- In the future, we want to specialize in the information. Now, data is collected by the unit of the city. Maybe every individual will have its own data, especially for those confirmed patients. For example, one confirmed patient has been to one specific street or store(Only public data. No access to privacy data). That street or store will be marked as red to warn users.
- We can add more functions, like user labeling. The users can add new data points where they believe there are new cases around them, our team will follow and confirm whether it is a real case. For the eBay analysis page, we can use the data we continuously collected before to predict future prices, to guide users whether they need to buy supplies now or in the future.