This is a kiosk app that displays QR codes based on a list of event codes uploaded by the event manager.
Product owner: @actualymentor
Dev url: https://qr-kiosk-dev.web.app/
!Password vault (Engineering folder)
.env.development
file, it is in 1Password as a secure note called [ .env.development ] POAP Kiosk - poap-xyz/poap-qr-kiosk
qr-kiosk-development
if you will run the functions backend offline. Note: you never need production credentials, the continuous integration has access to itnvm use
npm i
.env.development
VITE_useEmulator
line in .env.development
(this will make the frontend use the live backend)npm start
1 npm run cypress
to run tests locally, if they all pass then your setup was successfulcd functions
nvm use
npm i
functions/.env.development
with the 1Password note [ function/.env.development ] POAP Kiosk functions
npm run serve
Most of the internal and external packages we use are semver compliant. Which is major.patch.minor
, which you can read as danger.attention.safe
. So v1.2.5
-> v1.9.535
is sage, but v1.2.5
-> v2.0.0
is dangerous.
Minor versions are upgraded in bulk, blindly, and tested automatedly. Major versions require you to read the release notes of the dependency to check if the announced breaking changes affect us. Only after that do we upgrade and test them. Usually you can find version updates by going to the package github or searching for packge_name changelog
, sometimes you need to find the CHANGELOG.md
in a repo. Pay special attention to major version bumps (scroll to the part where the major version changes, don't just read the latest release notes).
Dependency bumps (frontend)
npm run upgrade
ncu --doctor -u PACKAGE1,PACKAGE2,...
, this will incrementally install a package and then run tests to check if everything works
.env.development
includes VITE_useEmulator=true
Dependency bumps (backend)
ncu
, and tested locally after bumps, then tested in CI through pull requestsApp code based on vite
, styling based on styled-components
, routing using react-router
.
Backend runs on a Firebase project.
🎨 Styling loosely uses atomic design implemented with the Styled Components library. The essence of this approach is that visual components are split into categories:
Route
.This app follows the POAP git flow and follows the psychopath coder principle:
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live" ~ John Woods
To prevent the psycho from pursuing you:
To configure Firebase services: