/rwa-trivia

Trivia App - Real World Angular series

Primary LanguageTypeScript

rwa-trivia app

This is part of building a new app for my series - Real World Angular @ https://blog.realworldfullstack.io/

See demo (development server) - https://rwa-trivia.firebaseapp.com

Part 0: From zero to cli-ng

Part 1: Not another todo list app

Part 2: It's a Material world

Part 3: Form Formation

Part 4: State of my SPA

Part 5: Light my fire

Part 6: 3Rs ... Rules, Roles & Routes

Part 6.1: Upgrading to 4.0.0-rc.2

Part 7: Split my lazy loaded code

Part 8: Just Ahead of In Time

Part 9: Unit Testing

Part 9.1: More Unit Testing

Part 9.2: Even More Unit Tests

Part 10: Angular 4 upgrade

Part 11: Gameplay with Angular

Part 12: Cloud Functions for Firebase

Part 13: Elasticsearch on Google Cloud with Firebase functions

Part 14: Faceted search with Elasticsearch and Angular Material data-table

Part 15: Incorporate Material UI design into the app

Part 16: Migrating from Firebase to Firestore

Quick Installation Instructions

  • Install cli globally (version should match the one in package.json)

npm install -g @angular/cli@1.0.0

  • Install npm packages

npm install

  • Setup your firebase instance @ https://firebase.google.com/

  • Setup providers in Firebase Authentication

  • Use the firebase configuration information and plug it in src/environment.ts

  • Import src/db.json to your firebase database instance to get the initial set of test data

  • Run the application using ng serve

ng serve

  • Add yourself as a user using the application. Ensure you are added as a user in Authentication tab of firebase console.

  • Add your user id as an admin in the firebase database (admins need to be added manually) -

Set: users/<user id>/roles/admin: true

  • Use firebase-rules.json file to setup the firebase rules for your database

  • Serve the application again. Ensure you have admin privileges

ng serve

Deploy to Firebase Server

  • Install firebase tools globally

npm install -g firebase-tools

  • Authenticate with your firebase credentials

firebase login

  • Setup firebase hosting configuration for the application, using "dist" instead of public as the public folder name

firebase init

  • Create a build

ng build

  • Serve up the app using firebase server locally

firebase serve

  • Deploy Site to firebase

firebase deploy --only hosting

  • Setup firebase functions - creates functions folder and installs dependencies

firebase init

  • Deploy functions to firebase

npm run deploy-functions

Testing

  • Test the application using

ng test