DoughFlow , n
l'état d'écoulement pendant la cuisson ;
un jeu de mots ringard sur les flux de trésorerie ;
une application Web de flux de trésorerie.
DoughFlow est une application Web client/serveur, respectivement construite sur EmberJS/Google Cloud Firebase.
La logique back-end est implémentée via Firebase Cloud Functions, en utilisant Firebase lui-même comme magasin de sauvegarde pour les données utilisateur. Cela encapsule la logique métier loin des clients dans un déploiement léger et sans serveur.
Le front-end est servi comme une page statique d'App Engine ( TODO ne faites pas ça... servir depuis GCS ou quelque chose du genre ).
Hébergé sur Google App Engine, à l'aide de son framework de microservices :
Front-end implémenté en tant que service : default
Les fichiers EmberJS sont servis sous forme de fichiers statiques (html et ressources).
Les fonctions back-end sont implémentées en tant que Cloud Functions (NB : saveur Firebase, pas Cloud "pur" ; l'intégration semble trop alpha)
Le stockage back-end est directement Firebase
Pour plus de commodité, laissez DOUGH_FLOW=/home/me/my_dough_flow_checkout
(par exemple, ajoutez au shell rc, vous devez export
dans zsh)
Projet GAE avec l'application GAE (nécessite probablement une configuration de facturation)
SDK Google Cloud
https://cloud.google.com/sdk/downloads
NodeJS (j'ai utilisé 7.10 avec nvm)
brew install nvm; nvm install v7.10
EmberJS (j'ai utilisé le plus récent le 26/05/2017)
npm install -g [email protected]
Base de feu
npm install -g firebase-tools; npm install -g firebase-server
Projet Firebase associé à votre projet Google Cloud
Serveur Firebase et SDK
Accédez à src/frontend
.
ember build
(nb : c'est ça ? est-ce que ça installe automatiquement des trucs npm ?)
Allez sur gae/
. Copiez l'artefact de build pour le déploiement de GAE.
ln -s ../src/frontend/dist
Consultez le fichier Lisez-moi frontal pour plus d’informations.
Lors de la création/du déploiement sur AppEngine réel :
ember build --environment=production
FAIRE
Modifiez /etc/hosts
(ou similaire) pour mapper :
127.0.0.1 localhost.firebaseio.test
Firebase aime que les URL de base de données soient dans un format spécifique, vous ne pouvez donc pas simplement utiliser une adresse IP locale ou un hôte local comme databaseURL
.
Depuis la racine du projet,
bin/start-doughflow-firebase# ou pour un débogage détaillé : DEBUG=* bin/start-doughflow-firebase
(Remarque, vous devez avoir DOUGH_FLOW
dans votre environnement pour que ce script fonctionne.)
(NB : vous pouvez ajouter
$DOUGH_FLOW/bin
au chemin de votre shell pour plus de commodité)
Cela démarrera un serveur local de type Firebase chargé avec les données de test/firebase.json
, disponibles sur le port localhost.firebaseio.test
5555
. L'application Ember est configurée pour utiliser ce nom d'hôte lorsque environment=development
.
Démarrez le serveur Firebase local (voir ci-dessus). Ensuite, depuis src/frontend
,
serveur de braises
Cela démarrera un serveur Web à rechargement en direct écoutant sur le port 4200. Accédez à http://localhost:4200 pour voir l'application.
Je ne sais pas si nous en avons réellement besoin. Nous aurons besoin de fonctions cloud pour une logique de serveur délicate/sensible que les clients ne devraient pas contrôler. Pour l’instant, nous n’avons rien de tel. Mais c'était difficile à comprendre. Voici donc quelques notes pour la postérité.
Configurez certaines fonctions dans src/firebase/functions
, utilisez des exemples, comme helloWorld, qui devraient être src/firebase/functions/index.js
.
Configurez l'authentification dans le fichier src/firebase/functions/config.json
, pour le local, vous n'avez probablement pas besoin d'informations d'identification réelles.
Exécutez l'émulateur de fonction local :
Depuis le répertoire src/firebase/functions
:
export CLOUD_RUNTIME_CONFIG=`pwd`/config.json && firebase serve --fonctions uniquement
FAIRE