### Partie 1 - Chatbot avec express

---

Ce programme développe un serveur Web/API basique qui répondra systématiquement 'Hello World! ' à toutes les requêtes HTTP GET émises par des clients au chemin / (racine). Nous allons pour cela utiliser la bibliothèque Express.js.

    Installation :

- Créer un "New Project" sur votre git
- Cloner votre git avec **git clone -q 'lien de votre git'**
- Création d'un programme Node.js avec un fichier qu'on nomme "server.js"
- Installer un package.json et node_module (qui correspond à la dépendance Express) avec : **\$ npm init** puis **\$ npm install express --save**
  (Pour installer Express de façon temporaire et ne pas l’ajouter à la liste des dépendances, enlevez l’option --save)

Pro tip: Le répertoire node_modules (créé par npm install) ne doit jamais être inclus dans les commits d’un dépôt git.
Pour ajouter ce répertoire à la liste des répertoires et fichiers ignorés par git, taper \$ echo node_modules >>.gitignore.

    Exécution :

- Dans server.js, il faut coder un démarrage du serveur qui écoute le port 3000 à la recherche de connexions.
  L'application doit répondre "Hello World!" aux demandes adressées à l'URL racine (/) ou à la route racine.
  Pour tous les autres chemins d'accès, elle répondra par 404 Not Found.

const express = require('express')
const server = express()

server.get('/', function (req, res) {
res.send('Hello World!')
})

server.listen(3000, function () {
console.log('Example app listening on port 3000!')
})

    Test :

- Pour exécuter le fichier server.js, il faut faire : **\$ node server.js**
- Puis chargez http://localhost:3000/ dans un navigateur pour consulter le résultat.

### Partie 2 - Connexion base de données MongoDB

---

Manipulation d'une base de données MongoDB depuis un programme Node.js, à l’aide du package mongodb. (anciennement connu sous le nom de “MongoDB Native Driver for Node.js”)

    Lecture et écriture dans MongoDB

- Initialiser un serveur de base de données MongoDB, sur un Cloud : https://www.mongodb.com/cloud/atlas
- Installer le package mongodb avec **\$ npm install mongodb** dans votre projet Node.js et lier le à votre serveur MongoDB sur le cloud

#### Exemples de conversation / cas d’usage: (Sur votre serveur local)

1. Dans un terminal, mettez la ligne de commande ci-dessous :
   **\$ curl -X POST --header "Content-Type: application/json" --data "{\"msg\":\"ville\"}" http://localhost:3000/chat**
   Si votre message est "ville", alors le bot répondra “Nous sommes à Paris”.
   ou
   **\$ curl -X POST --header "Content-Type: application/json" --data "{\"msg\":\"météo\"}" http://localhost:3000/chat**
   Si votre message est "météo", alors le bot répondra “Il fait beau”.
   Si votre message n'a pas dé réponse enregistrer dans la base de donnée alors le bot vous répondra "Aucune réponse"

2. Vous pouvez afficher l'historiques des conversations (messages de l’utilisateur et réponses du chat-bot), y compris après redémarrage du serveur, sur un terminal :
   **\$ curl -X GET http://localhost:3000/messages/all**
   ou sur votre navigateur :
   **http://localhost:3000/messages/all**

3. Pour supprimer le échange de l’historique (message de l’utilisateur + réponse du chat-bot), voici la commande à faire sur un terminal :
   **\$ curl -X DELETE http://localhost:3000/messages/last**

Les curl sont faisable aussi sur des serveurs distants, il suffit de remplacer 'http://localhost:3000/' par l'URL de votre serveur.
