There are two components, aviary-api and aviary-angular with the front-end code. The aviary-angular module is an angular website, hosted on a static-files bucket. The aviary-api module is a gae app.
The two modules need to be released separately, see respective READMES for instructions
Aviary uses
- a MySQL backed Cloud SQL database.
- firebase-based user authentication. See Authentication
In dev mode, the two components are run separately, to ease front-end development. See the respective READMEs.
The project is maven-based, and it should be possible to run everything from command-line, using a combination of
- maven
- google cloud sdk
- angular-cli
Some documentation for this will be found in the READMEs. However, it's not been tried and tested fully.
The tested development environment is IntelliJ IDEA Ultimate, with corresponding plugins.
To provide a range of sign-in options for users, aviary utilises firebase.
- Front-end talks directly to firebase to register a new user
- Upon success, it tells the aviary backend to create a user entity, connected to the firebase id
- Front-end talks directly to firebase to login a user, obtaining an auth token
- It passes the firebase id and token to the backend with requests
- The backed uses authenticates the token