The people-action map aims to make community action and support information useful.
The end-user solution consists of 2 parts:
- Interactive Map for viewing information
- Admin app for maintaining information
The technology solution consists mainly of the following:
- Leaflet.js map website
- Angular admin web app
- Firestore database including Cloud Functions
See the README.md documents in the above directories for further technical information.
TODO: automate the below
Create a project in Firebase console.
Change to Blaze pay-as-you-go plan and enable billing in Firebase console](https://console.firebase.google.com/).
Create Firebase apps for the admin app and map website respectively, in Firebase console. Select type 'web', and create/include Firebase Hosting sites for each.
Get the service config details for the staging and production admin apps from Firebase console. Paste the details against firebase
in ./admin/src/environments/environment.ts
and ./admin/src/environments/environment.prod.ts
, for example:
firebase: {
projectId: 'some-app',
appId: '...',
databaseURL: 'https://some-app.firebaseio.com',
storageBucket: 'some-app.appspot.com',
apiKey: '...',
authDomain: 'some-app.firebaseapp.com',
messagingSenderId: '...'
}
Create a Firestore database in Firebase console.
Activate Authentication providers 'Google' and 'Phone' in Firebase console.
Select the project in the Google Cloud Platform IAM Service Accounts pane, select the app engine default service account, and create a JSON key. Save it somewhere safe for use with GOOGLE_APPLICATION_CREDENTIALS
- see database/functions/README.md.
Create an API key in the Google Cloud Platform APIs Credentials pane (ideally restrict the key), and keep it safe for use with GOOGLE_MAPS_API_KEY
- see database/functions/README.md.
Enable the following APIs in the Google Cloud Platform APIs Dashboard pane:
- Places API
- Maps Embed API
Replace old project and app names with new in all files (yes, blunt knife find and replace for now).
Deploy the rest using the instructions in README.md files in: