Imagine nobody must be hold under quarantine and we could go outside to any place during a pandemic situation, we can go to work, the factories stay open and we can go to bars and public areas. The only requirement we have to meet is to keep track of who we met. In case someone get sick, we have a dedicate system to follow the contact history of an infected person, this will help us to identify and test a small crowd of people. We would isolate the infection and not the people.
What it does
In case a person is tested positive of Corona or any other future pandemic infection, the official authorities can understand the contact history of infected person. The authorities or hospitals are now able to identify the most recent contacts the infected person as interacted. It will help to target a selective amount of potential infected persons in order to prevent them from being infected by giving them a test or put them under quarantine.
How We built it
The app is built on 3 fundamental steps:
- The app is having a frontend built as a progressive web app. It allows to use the app on any device without installing it or being depend on operating system or mobile device.
- The app is having a backend built with RestfulAPI using JSON structure. It allows to communicate to almost every device. We can export data for further analyze, share data across countries and institutes.
- The app is having an intuitive design. It allows to immediately start using the app without further explanation, the design is simple enough to let all type of user help us to receive the data we need.
Challenges We ran into
- Data security & pools
- GDPR and how we onboard people to use the app
- Connection of medical response center / government authorities / institution and people
- Keep the workflow high especially after 30 hours of continuous design and development :)
- Orchestration of technical infrastructure in a short time (AWS, Github, Figma, etc.)
Accomplishments that we are proud of
Team spirit - A group of unknown met together, quick finding of a consensus, high level of communication and delegation amongst different type of development steps. Impressive clear and structured mind of all team members towards a common goal.
What we learned
Try something, don't be shy. Every input is valuable. Sharing knowledge, take time to explain and discuss, convince team members to take a different point of view
What's next for Infection Chain
Bring the application to go live. Open the idea to the population to become a user of the network. We need corporations, official authorities and institution like "RKI / WHO..." to isolate the infection, not the world.
We started a new Spring Boot project and built the backend from scratch. Based on an initial database design, we developed the database objects first, continued by the backend repositories used to create, retrieve, update and delete the data objects.
After we enabled the creation of user accounts on the persistent level, we implemented the application security based on the Spring Security framework.
Once this got finished, we continued to develop the REST endpoints and transfer objects. At this point, the frontend development was able to implement against the backend and we continuously updated the logic to fulfill any upcoming requirements.
The backend currently supports:
- User account management
- User authentication
- Creation of QR code data
- Connecting accounts based on scanned QR code data and current geolocations
- User can tag himself as infected or healthy
- Other users can evaluate, if their geolocations got close to an infected user within a given period of time
Backend source available on GitHub: https://github.com/mk0/infectionchain_tracking
The frontend is built as PWA (Progressive Web App) with Angular and Angular Material. Development started with implementing core functionality such as user login, display / generate and scan of QR codes. Features has been added such as sign up for users with personal data followed by the connection to the backend. The current state of the. application is a fully operating prototype available under https://infectionchain.bencabrera.de . We have also added mockup views without backend support to demonstrate the capabilities of features for a finished production version. For example, a map is shown (using the Open Street Maps API) which could later be used to show related activities near the user.
Frontend source available on GitHub: https://github.com/bencabrera/infectionchain/