Backend Challenge

Introduction

En tant qu’ingénieur logiciel dans l'équipe DZConseil, vous devez fournir une solution backend fiable à nos clients. Votre tâche ici est d'implémenter quelques fonctionnalités pour une api rest comme Airbnb.

Exigences

  • Nous valorisons une solution propre, simple et efficace.

  • La solution doit être réalisée avec la dernière version de Laravel et PHP.

  • Bonne compréhension du fonctionnement du git.

  • Bonne compréhension des API REST.

  • Aucun package ne doit être ajouté au code fourni.

Remarques

  • Le code source doit être poussé en tant qu'une branche git dans ce project.

  • Votre nom de branche devrait suivre cette forme challenge/nom-prénom.

  • LE CODE NE DEVRAIT PAS ÊTRE POUSSÉ PAR UNE PULL-REQUEST

Attentes

  • Ce défi devrait durer environ 4 à 5 heures.

  • Tous les tests dans votre branche doivent réussir.

  • Éviter le over-engineering.

  • Toutes les réponses doivent être en format JSON.

Énoncé du problème

Diagramme UML
  • En suivant ce diagramme, nous souhaitons mettre en place une API que nos utilisateurs peuvent utiliser.

  • Cette API restfull devrait nous permettre de lister, voir, créer, mettre à jour et supprimer une maison.

  • Les methods qui calcule de couts de réservation calculateCost() & calculateDiscount() devrons être implémentées au niveau du model Listing.

Configuration du projet

Pour obtenir une copie de ce projet sur votre machine, vous devez exécuter la commande suivante :

Vous obtiendrez une copie de ce projet dans un dossier nommé dzconseil-challenge

Maintenant, vous devez créer une nouvelle branche pour commencer à travailler, exécutez la commande suivante :

Vous remarquerez que nous vous avons fourni le squelette du projet avec presque tout, y compris (routes, models , migration, factories, controllers, requests, resources, tests) tout ce que vous avez à faire est de remplir la logique manquante et d'exécuter les tests.

Tous les tests de ce projet doivent réussir avant que vous poussiez votre code.

Endpoints

Afficher toutes les maisons

  • Requête

    • URI : /api/listings

    • Méthode : GET

  • Réponse

    • Statut : 200

    • Corps :

⬆ retour au sommet

Afficher une maison

  • Requête

    • URI : /api/listings/:uuid

    • Méthode : GET

  • Réponse

    • Statut : 200

    • Corps :

⬆ retour au sommet

Créer une nouvelle maison

  • Requête

    • URI : /api/listings

    • Méthode : POST

    • Corps :

  • Réponse

    • Statut : 201

    • Corps :

⬆ retour au sommet

Mettre à jour une maison

  • Requête

    • URI : /api/listings/:uuid

    • Méthode : PUT

    • Corps :

  • Réponse

    • Statut : 200

    • Corps :

⬆ retour au sommet

Supprimer une maison

  • Requête

    • URI : /api/listings/:uuid

    • Méthode : DELETE

  • Réponse

    • Statut : 200

    • Corps :

⬆ retour au sommet

Des questions ? Suggestions ? Nous aimons vous répondre : [email protected]

Last updated

Was this helpful?