First thing I think about when I think about software is removing redundancy / tedious work on humans and transferring that work to computers. Yet during Covid we have needed to fill out more forms than ever. Some universities require daily forms, covid test scheduling, and other overhead that adds up over time. We want to offer a solution to remove this burden.
What it does
App that acts as a hub for all things Covid-related. Each row is a possible task the user can start from the comfort of their phone in just one button click. For now, the only feature present is to fill out the form for the daily check.
How I built it
I developed the Android app using the flutter framework and the REST server using flask and selenium with my WiFi network acting as the Local Area Network (LAN) allowing the app and server to communicate with one another. Additionally I stored most of the user's information in Firestore and had my server fetch that information as needed. (email and password stored as environmental variables)
Challenges I ran into
I initially wanted the UI to be a physical button so I spent a significant amount of time trying to scavenge my hardware setup (nodeMCU) to see if I can get that up and running and have that send REST requests to the server but ran into issues there. I also attempted to containerize my server so I could deploy it conveniently in GCP with little to no configuration. I wasn't able to get this to work either and in hindsight dealing with the initial configuration work to get it to work on a virtual machine would have been way more feasible for this hackathon. Lastly, Cayuga's health system form for scheduling a Covid test is much harder than expected to interact with to automate the form submission. Made some progress on this functionality but it cannot submit the entire form yet.
Accomplishments that I'm proud of
Assuming the server is online, I can swiftly press a single button (after opening the app) to fill out a form that would normally require 2 minutes of work daily. Was this worth 16 hours of work? Well assuming best conditions I would equalize in time saved in 480 days but this is my last year of college haha. But I got to learn a lot about selenium and I can leave this hackathon with a product I can keep working on for my own personal benefit.
What I learned
Learned more about Selenium during this weekend and Firestore. I also became more proficient in Flutter development.
What's next for If No Corona Then That
The App could definitely be more smoothened out, especially an onboarding page to allow the user to provide their information to the app (so they're data doesn't need to be written to firebase manually), more features developed by me, and allowing the user to provide their own backend to automate services so they can add functionality without having to reflash the app. My server side logic could be improved so it can handle dealing with tougher forms to fill out, be deployed on the cloud (ex. GCP) so it can be accessible outside of my home network, require authentication for API requests, and managing users' credentials on the server side in a more scalable but safe way.