# 0 - Développement d'applications destinées à la population vieillissante * Auteur: Prune Pillone * Début du projet : 02/07/2019 Ce projet nécessite : - Java 8 - Node 10.9 - Angular 8 - Maven 3 Si vous possédez déjà tout cela vous pouvez passer directement à la partie 1. [Partie 1](/ax1FlLcHRh-4LqJXlenvHA) [TOC] ## Partie 0 – Configuration Le but de ce TP est d’obtenir une base concrète et bien mise en place qui sera la même pour tout le monde. Sur cette base, des extensions diverses vont ensuite pouvoir venir se greffer sans modifier la structure réalisée. Ce TP va donc être divisé en 3 grandes parties : - Séléction du patient - Quiz - Configuration pour le soignant Voici l’architecture qui va être mise en place lors de ce TP d’introduction. Le but est d’ajouter à chaque étape une nouvelle fonctionnalité qui va traverser toutes les couches de cette architecture. Avant toute chose, plusieurs logiciels vont être nécessaires. ### Base de données Téléchargez les binaires correspondant à votre système d’exploitation à ce lien : https://www.postgresql.org/download/ Choisissez le mot de passe du super-utilisateur. Sur Windows, ajouter C:\Program Files\PostgreSQL\10\bin à la variable d’environnement PATH. Sur macOS il est également possible d'installer avec [homebrew](https://www.codementor.io/engineerapart/getting-started-with-postgresql-on-mac-osx-are8jcopb) : `brew install postgresql` Dans tous les cas, retenez bien le port et le mot de passe choisi. ### Back-End #### Installation de Java Téléchargez la version de Java8 correspondant à votre OS ici, puis ajouter Java au PATH. https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html #### Installation de Maven Téléchargez Maven ici : https://maven.apache.org/download.cgi Suivez les instructions données ici : https://maven.apache.org/install.html Pour plus d’informations sur Maven si vous ne connaissez pas : https://fr.wikipedia.org/wiki/Apache_Maven #### Installation d’IntelliJ L’IDE conseillé est IntelliJ, car il offre de nombreuses fonctionnalités, dont un plugin Flutter ce qui permet de ne pas avoir à télécharger Android Studio en plus pour développer sur mobile. (Sachant qu’il existe aussi un plugin Android mais que cela ne servirait pas pour les utilisateurs d’Iphone, qui seraient obligés de télécharger en plus un émulateur). Vous pouvez télécharger IntelliJ Community ici https://www.jetbrains.com/idea/download/ ou vous créer un compte avec votre adresse étudiante qui vous donnera le droit aux versions Ultimate de tous les IDEs Jetbrains. ### Front-End Angular Pour la première partie du Front-End, nous allons utiliser Angular 8. Angular nécessite d’installer Node afin d’avoir le gestionnaire de package npm. #### Node Téléchargez NodeJS version LTS ici : https://nodejs.org/en/ Encore une fois ici sous mac il est possible d'utiliser homebrew : `brew install node` #### Angular 8 ##### Avec une version d'Angular déjà existante Suivre les instructions ici : https://update.angular.io ##### Sans version déjà installée Suivre les instructions ici : https://angular.io/guide/setup-local ##### Packages additionnels Une fois angular installé, vous pouvez executer ces commandes : `npm install -g ng2-charts npm install -g chart.js ` #### Possibles erreurs ##### Cannot find module Si le message suivant apparait : ```Error: Cannot find module '@angular-devkit/core'``` Il faut changer dans `package.json` la ligne `@angular/cli: {numero de version} ` par `@angular/cli: ^{numero de version}`, puis faire un npm update ##### events.js:174 Si le message d'erreur est le suivant : ``` events.js:174 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at TCP.onStreamRead (internal/stream_base_commons.js:111:27) Emitted 'error' event at: at Socket.socketErrorListener (_http_client.js:392:9) at Socket.emit (events.js:198:13) at emitErrorNT (internal/streams/destroy.js:91:8) at emitErrorAndCloseNT (internal/streams/destroy.js:59:3) at process._tickCallback (internal/process/next_tick.js:63:19) ``` `npm clean-install` puis `npm update` devrait résoudre le problème. ##### You must install peer depedencies yourself Si des messages de ce type sont présents : ``` npm WARN @angular-devkit/build-webpack@0.801.0 requires a peer of webpack@^4.6.0 but none is installed. You must install peer dependencies yourself. ``` Il faut lancer à la main `npm install webpack@^4.6.0` (par exemple ici) pour **chacune** des erreurs. ##### Au lancement de ng serve ``` Cannot read property 'config' of null TypeError: Cannot read property 'config' of null ``` Faire un `npm install` révélera des erreurs.