Inspiration
Recent news surrounding Covid vaccine "passports" inspired the original purpose of this app, to incentivize receiving a covid vaccination by giving rewards in the form of coupons to local businesses. Using CVKey nearly daily for the last year was the inspiration for the QR elements of the app.
What it does
Generates a QR Code with your vaccination status, readable by any QR scanner. Uses pattern matching to make counterfeiting more difficult.
How I built it
The app is built entirely using TypeScript in React-Native, a ReactJS framework for deploying to mobile devices. It was planned to use Platter for a PostGres database backend, but time constraints combined with technical issues forced that out of the picture. Likewise, more advanced profile features were planned, as well as user-specific coupon codes, however implementing them in the time given wasn't feasible with my level of experience with ReactJS going into the project.
Challenges I ran into
I am a solo developer using a tech stack that I have never used before. Every step has been a learning process and unfortunately many of the features I was most excited about ended up on the cutting floor due to time constraints.
Accomplishments that I'm proud of
The app I created provides a useful service - an easy way to show that you've received your vaccination, without having to worry about damaging or losing your source card. The data in the QR code is all of the vaccine-specific information, as well as a timestamp to allow discarding outdated data, and is easily expandable to include more information as the app grows in scale. It is also in a reliable CSV format! The app doesn't enable the Submit button until the input is valid (correct lot number format, reasonable date), so the user isn't surprised when they click 'Submit' and nothing happens. And it compiles and runs, which was not at all a given going into this event. The app uses pattern-matching to make it as difficult to counterfeit as possible given the near non-existent security measures on the physical card it is replacing. The original vision for the app could be realized in just a few days of work, or less with an experienced developer.
What I learned
The big things are ReactJS, TypeScript, and the React-Native framework. I also learned how to use various common auxiliary tools including npm, npx, and yarn. I also learned how to set up a platter PostGres database, even though I wasn't able to use it in the end.
What's next for PandemicPassport
The next steps for PandemicPassport are as follows:
1) Connect the app to a database and backend
2) Use knowledge learned from experimenting to create proper screen navigation
3) Add user-persistence functionality
4) Give business accounts the ability to create rewards, users ability to see rewards
5) Create a QR-scanning partner app
6) Make it pretty
7) Partner with local businesses to provide rewards
Log in or sign up for Devpost to join the conversation.