# README MyTinySocra ## Software Craftmanship This is the practical asked for MTI students in EPITA in 4th grade. It consists in developping a REST API ## Authors - Louis SANTUCCI - - Leo TAVERNIER - Thomas TOURETTE - Antoine DU FOU ## Les Pre-requis - Docker - Laravel 8.* ## Pour lancer le projet / les tests - Pour le projet : - Dans ./mytinysocra : - docker compose build - docker compose up - Pour les tests : - Dans ./mytinysocra : - php artisan test ## L'Architecture - Nous avons utilise une architecture "Modele View Controleur" (design-pattern d'architecture logicielle). - Le modele contient les donnees a afficher et permet le mappage des champs de la base de donnee en objets. - Le controlleur contient toute la logique concernant les actions effectue par l'utilisateur. Il permet nottament de mettre a jour les donnees des modeles et de la base de donnee via des requetes (GET, PUT , PATCH, UPDATE) - Le reste de l'architecture est cree par Laravel a la creation du projet ## Endpoints API - GET /api/mission : Permet de lister toutes les missions de la base de donnee trie par la date de creation. - GET /api/mission/find?id=xxx : Permet de trouver une mission en renseignant son ID. - GET /api/mission/search?word, word2, ... : Permet de lister les missions par ordre decroissant de pertinence grace aux mots ayant servi a la recherche - POST /api/mission : Permet de cree une mission. - Mettre dans le BODY : { "duration": "10 MONTHS", "location": "Stokestown", "price": 999999, "telecommuting": "30", "start": "1990-09-29 23:22:38", "context": "Repellendus qui est dicta asperiores dolorum deleniti in. Et autem itaque voluptatum adipisci.", "mission": "Tempora impedit totam et ducimus impedit sit. Commodi sunt est eos ea et quam vel. Voluptate nihil magnam veritatis labore. Sapiente asperiores est voluptas ut provident error.", "post": "Lawyer" } - PUT /api/mission : Permet de mettre a jour les champs d'une mission - PATCH /api/mission : Permet de mettre a jour les champs d'une mission ## Description pipeline CI / CD - La pipeline permet de build le projet puis de lancer la test-suite. - Un mail est egalement envoyer lorsque le build ne fonctionne ou que les tests ne fonctionne pas