Event Manager
September 2, 2018 ยท View on GitHub
Event Management PWA (Angular, Firebase, Google Sheets) - Used by the organizing + event team during Google IO Extended KL 2018 (https://events.gdgkl.org/io/) to manage 400+ people check-in, badge collection, goodies distribution, survey & lucky draw entitlement.
Partial Demo
Partial demo here: https://event-manager-d1559.firebaseapp.com/. In order to not breaking my bill, I have disabled sign up, and most admin features. You can test all volunteer features + view the dashboard.
Test email/password
- testa@testa.com testaaa
- testb@testb.com testbbb
- testc@testc.com testccc
Features (general)
- Signup
Features (for volunteer) - bottom menu
- Search attendee (SEARCH)
- Check-in & badge distribution management - Single / Pair Mode (CHECK-IN, BADGE)
- Goodies distribtuion (SHIRT)
- Check if attendee complete survey to get Lucky Draw entry (LUCKY)
Features (for admin) - home page menu
- Live event status update (DASHBOARD)
- Bulk loading attendee list (LOAD)
- Manage user access rights (RIGHTS)
Settings
This project use Firebase Auth, Firestore, Google Sheets API.
Firebase
- Register Firebase: https://firebase.google.com/
- Create a new Firebase project(s). (You may create 2 projects, 1 for development, 1 for production)
- Setup Authentication Sign In Method - Email / Password
- Enable Firestore as
test mode. (Update to non test mode when deploy to production) - Install firebase npm tools
npm install -g firebase-toolsglobally in your machine. - In the project, run command
firebase init hostingto setup hosting info. public folder name should bedist/event-manager, single page application should bey. Refer tofirebase.jsonfile.
Google Sheet API
- Login to Google Cloud console: https://console.cloud.google.com/ (use the same email as Firebase)
- Search for Sheets API, enable it
- Create a Google Sheet like this one https://docs.google.com/spreadsheets/d/10U15rDEBWaDacqGfZyS4AOvmmLxAGzwqynawuSB2jbw. (sheet name should be survey, column B contains id)
- Set the sheet permission to anyone with the link can view.
Project config & setup
There are a couple of config you need to update, wild search for todo in the project to find them, or follow instruction below:
- Replace Firebase web config in this project
src/environments/environment.tsandsrc/environments/environment.prod.tswith your firebase config. - Replace Google sheet config in this project:
idis the google sheet id, extract from the google sheet url (e.g. https://docs.google.com/spreadsheets/d/<copy_this_sheet_id>/edit)apiKeyis the same as firebase api key
- When running project for first time, go to
signuppage, enter your email and password, and tick on all checkbox to create first admin user. - Once created first admin user, disabled
setupModeinsrc/environments/environment.ts(Set tofalse). Enable setup mode is dangerous (whensetupModeis enabled, user can select access rights during signup). - Load attendee list by navigate to LOAD page. Refer to instruction in this google sheet
datatab (https://docs.google.com/spreadsheets/d/10U15rDEBWaDacqGfZyS4AOvmmLxAGzwqynawuSB2jbw) - Prepare a survey result google sheet for lucky draw entitlement. Refer to instruction in this google sheet
surveytab (https://docs.google.com/spreadsheets/d/10U15rDEBWaDacqGfZyS4AOvmmLxAGzwqynawuSB2jbw) - Go to
dashboardpage, set total number of attendees. Once set, charts will display.
Run the project
- Run
yarnornpm installto install dependencies. - Run
yarn startornpm startto run the project in http://localhost:4200 - Run
yarn build --prodornpm run build --prodto build project - artifact indistfolder - Run
yarn deployornpm run deployto deploy to firebase
Other info
This project was generated with Angular CLI version 6.1.5.