DEMO: https://raterator-f33d5.firebaseapp.com
This Angular app allows users to upload their own photo and vote for others.
It was originally developed for the costume context of UVEye's legendary Purim party, but we though you might enjoy it as well, so we made it open source!
- Display a list of all candidates with their name, photo, title and description
- Authentication using Google
- Authenticated users can vote multiple times for their favourite candidates
- Authenticated users can upload their own photo and become candidates
- Final results can be viewed by navigating to the /results page
- Fully customizable, "white label" app
- Mobile friendly
Create your local copy with git clone
and install dependencies with npm install
.
This app uses Google Firebase as a backend. To setup your own project follow these steps:
- Login to firebase using your google account
- Go to the Firebase Console and create a new project.
- Inside Authentication section enable *Google as your sign-in provider.
- Inside Database section click Create Database
- Inside Storage section click Get Started
- Inside Hosting section click Get Started
- Inside Functions section click Get Started
- From the project overview page, click Add Firebase to your web app, copy the project's configuration and paste it in
/src/environments/environment.ts
and/src/environments/environment.prod.ts
- install firebase cli
npm install -g firebase-tools
- log in
firebase login
- From the project's configuration copy your projectId and inside your project's folder type
firebase use $PROJECT_ID
- Build the your project using
ng build --prod
- Deploy your new project with
firebase deploy
Enjoy!
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Please help me make this app better -
- Cloud functions to shrink uploaded images
- Refactor voting mechanism to improve security
- Improve security
- Limit /results page to Admin users