flujo de masa , norte
el estado de fluidez durante el horneado;
un juego de palabras cursi sobre el flujo de caja;
una aplicación web de flujo de caja.
DoughFlow es una aplicación web cliente/servidor, construida en EmberJS/Google Cloud Firebase respectivamente.
La lógica de back-end se implementa a través de Firebase Cloud Functions, utilizando el propio Firebase como almacén de respaldo para los datos del usuario. Esto encapsula la lógica empresarial lejos de los clientes en una implementación liviana y sin servidor.
El front-end se sirve como una página estática desde App Engine ( TODO, no hagas esto.... sirve desde GCS o algo así ).
Alojado en Google App Engine, utilizando su marco de microservicio:
Front-end implementado como servicio: default
Los archivos EmberJS se sirven como archivos estáticos (html y activos).
Las funciones de back-end se implementan como funciones de nube (NB: versión Firebase, no nube "pura"; la integración parece demasiado alfa)
El almacenamiento back-end es directamente Firebase
Para mayor comodidad, deje DOUGH_FLOW=/home/me/my_dough_flow_checkout
(por ejemplo, agregue al shell rc, necesita export
en zsh)
Proyecto GAE con la aplicación GAE (probablemente necesite configurar la facturación)
SDK de la nube de Google
https://cloud.google.com/sdk/downloads
NodeJS (usé 7.10 con nvm)
brew install nvm; nvm install v7.10
EmberJS (usé el más reciente a partir del 26 de mayo de 2017)
npm install -g [email protected]
base de fuego
npm install -g firebase-tools; npm install -g firebase-server
Proyecto de Firebase asociado con tu proyecto de Google Cloud
Servidor Firebase y SDK
Vaya a src/frontend
.
ember build
(nb: ¿es eso? ¿Eso instala automáticamente cosas de npm?)
Ir a gae/
. Copie el artefacto de compilación para la implementación de GAE.
ln -s ../src/frontend/dist
Consulte el archivo Léame del front-end para obtener más información.
Al compilar/implementar en AppEngine real:
ember build --environment=production
HACER
Edite /etc/hosts
(o similar) para asignar:
127.0.0.1 localhost.firebaseio.test
A Firebase le gusta que las URL de base de datos tengan un formato específico, por lo que no puede usar simplemente la IP local o el host local como databaseURL
.
Desde la raíz del proyecto,
bin/start-doughflow-firebase# o para depuración detallada: DEBUG=* bin/start-doughflow-firebase
(Tenga en cuenta que necesita tener DOUGH_FLOW
en su entorno para que este script funcione).
(NB: puedes agregar
$DOUGH_FLOW/bin
a la ruta de tu shell para mayor comodidad)
Esto iniciará un servidor local similar a Firebase cargado con datos de test/firebase.json
, disponible en localhost.firebaseio.test
puerto 5555
. La aplicación Ember está configurada para usar este nombre de host cuando environment=development
.
Inicie el servidor Firebase local (ver arriba). Luego, desde src/frontend
,
servidor de brasas
Esto iniciará un servidor web de recarga en vivo escuchando en el puerto 4200. Vaya a http://localhost:4200 para ver la aplicación.
No estoy seguro de si realmente necesitamos esto. Necesitaremos funciones en la nube para una lógica de servidor delicada/sensible que los clientes no deberían controlar. Por ahora no tenemos nada de eso. Pero fue doloroso descubrirlo. Así que aquí van algunas notas para la posteridad.
Configure algunas funciones en src/firebase/functions
, use ejemplos, como helloWorld, debería ser src/firebase/functions/index.js
.
Configure la autenticación en el archivo src/firebase/functions/config.json
; para local probablemente no necesite credenciales reales.
Ejecute el emulador de funciones local:
Desde el directorio src/firebase/functions
:
export CLOUD_RUNTIME_CONFIG=`pwd`/config.json && firebase server --solo funciones
HACER