Inspiration
Two weeks ago, I tested for Covid-19 in Los Angeles, California, United States. Thankfully, my result came back negative but the entire sign up and status check process was awful. They told me I'd receive my results no later than 5 days later. 5 days passed, no sign of an email. 6, 7, 8 days passed. Turns out, they forgot about me and my results! My family and I were super stressed out as we awaited the news just to find out there was no contact information to turn to. I called the Los Angeles county hall and was sent on a wild goose hunt from one department to the next. Finally, I tracked down the actual testing lab and asked for my results to be sent over email, not the most secure method of sharing patient information. Since that experience, I wanted to create something similar to a package delivery tracker where patients can easily schedule an appointment and check the status of their results in a secure, encrypted website.
What it does
The main page is for scheduling. The patient answers a simple pre-screening questionnaire before looking at available appointments in a city near them. They then fill out their personal contact information and receive an email with their appointment confirmation and patient ID. After taking the test, they can go into the status checker tab and input their patient ID and date of birth for their estimated result arrival or result. For lab technicians, patients are identified by their patient ID and the database can be updated to reflect the change in result status.
How I built it
I started out by designing frameworks in Figma and asking myself what users need. The backend server is coded in python using the Flask library. The frontend to backend communication is done through the Axios library. The frontend is written in Javascript with the React framework. The frontend is deployed on Netlify and I want to use Docker to containerize all the dependencies and host it on Google Cloud. Currently, I also set up a MongoDB Atlas cluster to store the patient data from the Scheduler page. REST APIs posts the data from the survey into MongoDB Atlas. I used the Pymongo python library to connect to MongoDB. The data on MongoDB Atlas is hosted on Google Cloud. For the frontend input, I used SurveyJS to help format the survey and make it look pretty. I also added a little Covid-19 favicon and set a custom domain name for the website: Covid19track.online. I still need to return the status to the user after calling a request from MongoDB.
Challenges I ran into
A lot of this is new stuff to me because I'm a bioinformatics major in college. But I had a great time learning new frameworks.
Accomplishments that I'm proud of
The website is (kinda) pretty and it has it's own favicon! Yay! And it currently takes in information and stores it on MongoDB Atlas which is super cool.
What I learned
I learned a lot about the importance of user behavior, storing data in MongoDB, and time zone differences between California and Manchester! TIL time zones are stressful.
What's next for Covid-19 Testing Scheduler and Status Checker
I hope to continue working on it, make sure that the code is containerized with Docker, host it via Google-Cloud, make it more secure for data privacy, and donate it to the Los Angeles County government so that maybe it can bring some peace of mind to stressed out families during this difficult time.
Built With
- axios
- flask
- javascript
- mongodb-atlas
- netlify
- pymongo
- python
- react
- surveyjs
Log in or sign up for Devpost to join the conversation.