# ⏱️ Guesstimate Application de création collaborative d’estimations de temps/coût pour la réalisation de projets, basée sur la méthode [d'estimation à 3 points](https://en.wikipedia.org/wiki/Three-point_estimation). [Voir l'instance de démonstration](https://guesstimate.dev.lookingfora.name/) ## Démarrage ### Avec les sources #### Dépendances - docker - docker-compose - nodejs avec npm/yarn #### Procédure ```bash make clean # On s'assure d'avoir un environnement propre make deps # Installer les dépendances make install-git-hooks # Installation des hooks Git du projet make up # Démarrer l'environnement docker-compose (hydra, hydra-passwordless et fake-smtp) # Dans un second terminal make watch # Suivre les modifications et compiler à la volée le backend et frontend ``` Les services suivants devraient être disponibles après démarrage de l'environnement: |Service|Type|Accès|Description| |-------|----|-----|-----------| |Application React|HTTP (UI)|http://localhost:8080/|Page d'accueil de l'application React (serveur Webpack)| |Interface Web GraphQL|HTTP (UI)|http://localhost:8081/api/v1/playground|Interface Web de développement de l'API GraphQL (mode debug uniquement, nécessite d'être authentifié)| |Serveur GraphQL|HTTP (GraphQL)|http://localhost:8081/api/v1/graphql (POST)|Point d'entrée de l'API GraphQL| |Serveur Hydra|HTTP (ReST)|http://localhost:4444|Point d'entrée pour l'API OAuth2 d'[Hydra](https://www.ory.sh/hydra/docs/)| |Serveur Hydra Passwordless|HTTP|http://localhost:3000|Point d'entrée pour la ["Login/Consent App"](https://www.ory.sh/hydra/docs/implementing-consent) [hydra-passwordless](https://forge.cadoles.com/wpetit/hydra-passwordless)| |Serveur FakeSMTP|HTTP|http://localhost:8082|Interface web du serveur [FakeSMTP](https://forge.cadoles.com/wpetit/fake-smtp) |Serveur PostgreSQL|TCP/IP (PostgreSQL)|`127.0.0.1:5432`|Port de connexion à la base de données PostgreSQL de développement| #### Fichiers/répertoires notables |Chemin|Description| |------------------|-----------| |`docker-compose.yml`|Configuration de l'environnement Docker Compose| |`client/src`|Sources du frontend ([React](https://reactjs.org))| #### Commandes utiles |Commande|Description| |--------|-----------| |`make up`|Démarrer l'environnement Docker Compose, `Ctrl+C` pour le stopper.| |`make down`|Stopper et supprimer l'environnement Docker Compose.| |`make watch`|Suerveiller les sources et recompiler à la volée le client/server.| |`make db-shell`|Ouvrir une console `psql` sur la base de données de développement.| |`make hydra-shell`|Ouvrir un shell interactif dans le conteneur Hydra. (`hydra --help` pour voir les commandes disponibles pour l'administration)| |`make migrate-latest`|Migrer la base de données à la dernière version disponible du schéma.| |`make migrate-down`|Migrer la base de données à la version précédente du schéma.| |`make migrate-up`|Migrer la base de données à la version suivante du schéma.| |`make clean`|Nettoyer l'environnement.| ## Licence AGPL-3.0