GithubHelp home page GithubHelp logo

test-embauche's Introduction

Exercice Express / BDD

  1. Crée un projet "dogs" qui sera un serveur HTTP express.

Ce serveur sera connecté à une base de donnée de ton choix.

Il doit être capable de créer et lister des Chiens. (tu peux mettre ce que tu veux comme url)

Ces "Chiens" seront caractérisés par leurs "nom", "id" et "owner_id".

Un filtre sur l'owner_id doit être possible sur le listing des chiens.

Chaque route doit retourner du json.

  1. Crée un projet "owners" qui sera un autre serveur HTTP express.

Ce serveur sera connecté à une base de donnée de ton choix. Tu n'es pas obligé d'utiliser la même base de donnée que l'exercice 1 si t'aimes le challenge :)

Il doit être capable de créer et lister des Propriétaires. (tu peux mettre ce que tu veux comme url)

Les Propriétaires seront caractérisés par leurs "nom", "prenom", "civilite", "age" et "id".

Un filtre sur "nom" et/ou "prénom" et/ou "civilité" et/ou "age" doit être possible sur le listing des propriétaires.

Chaque route doit retourner du json

  1. Crée un projet "api" qui sera un 3ème serveur HTTP express.

Il doit être capable de lister (avec filtres possibles) les propriétaires avec tous leurs chiens, créer un propriétaire et créer un chien en l'associant à son propriétaire. (tu peux mettre ce que tu veux comme url)

Voici un exemple de donnée retour pour le listing:

[
    {
        "nom": "Terrieur",
        "prenom": "Alex",
        "civilite": "M",
        "age": "29",
        "id": 1,
        "dogs": [
            {
                "nom": "Jarvis",
                "id": "1"
            }
        ]
    },
    {
        "nom": "Suhre",
        "prenom": "Sarah",
        "civilite": "M",
        "age": "12",
        "id": 2,
        "dogs": [
            {
                "nom": "Hercule",
                "id": "2"
            },
            {
                "nom": "Hermès",
                "id": "3"
            }
        ]
    }
]

Je te conseille d'utiliser Postman pour tester tes appels de création, plus pratique qu'avec du curl.

Exercice Promise / ES6

  1. Si ce n'est déjà fait, utilise les Promise javascript dans ces 3 applications plutôt que des callback, ainsi que de l'ES6

  2. Une fois que les Promise sont faites, transforme celles possible en Async/Await

Exercice Docker

  1. Plutôt que d'utiliser la (les?) base de donnée qui est installée sur ta machine, installe cette base de donnée via un docker, coupe ta BDD sur ta machine et run l'image docker que tu vient d'installer.

  2. Vérifie que tes applications tournent toujours

  3. Utilise le Dockerfile fourni dans ce projet pour builder tes 3 applications dans un Docker plutôt que directement sur ta machine. Tu ne devrais pas avoir à toucher le Dockerfile.

  4. Une fois que tes 3 images Docker sont buildées, run ces images pour vérifier que les appels HTTP marchent toujours.

/!\ Les Docker étant des machines virtuelle, elles n'arriveront pas à communiquer entre elles via localhost ou 127.0.0.1. Tu va devoir user de tes talents, mais surtout des variables d'environnements et des options du docker run pour que tes applications puissent se connecter à ta base de données, et que ton application "api" puissent contacter "dogs" et "owner"

Exercice docker-compose

  1. Créé un docker-compose.yaml pour lancer ta (tes?) base de données, et faciliter le "build" et le "run" de tes 3 applications (que ce soit au niveau des ports mais aussi des variables d'environnements)
  2. Lance ce docker-compose pour vérifier que tes applications tournent toujours.

Félicitations ! T'as créé une architecture microservice !

test-embauche's People

Contributors

arueilen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.