6ec798086d832e48cf9e8364f88538749681f21e
Wedding application
Supports relatively secure way to collect visitor registrations to Firebase without backend. Also offers wedding info website in multiple languages (instructions how it works coming later...).
Local development
root/directory$ npm install && npm start
Firestore setup
You need tree collections. invited, submitted and visitors.
Rules:
service cloud.firestore {
match /databases/{database}/documents {
match /visitors/{visitor} {
allow create: if exists(/databases/$(database)/documents/invited/$(request.resource.data.invitationId))
&& !exists(/databases/$(database)/documents/submitted/$(request.resource.data.invitationId));
}
// Uncomment when fetching data with scripts under /tools
//
// match /visitors/{visitor} {
// allow read: if true;
// }
// match /submitted/{submitted} {
// allow read: if true;
// }
// match /invited/{invited} {
// allow read: if true;
// }
match /submitted/{submitted} {
allow create: if exists(/databases/$(database)/documents/invited/$(request.resource.id))
}
}
}
It's important to remember to comment right after script is run. While uncommented all your data is available to public internet!
Deployment
I recommend installing Firebase CLI to automate the setup.
For manual configuration see /.github/workflows. You need to add following secrets:
- GITHUB_TOKEN
- FIREBASE_SERVICE_ACCOUNT_LINTUJAMASLO
Further reading: https://firebase.google.com/docs/hosting/github-integration
Usage
Feel free to fork, use and change at will. Hope this repo will help and inspire you!
Languages
TypeScript
70.6%
SCSS
16.9%
JavaScript
8.5%
HTML
4%