- Symfony 5.4
- php >=8.0
- Setup BDD in .env file in the project root (DATABASE_URL="mysql://user:[email protected]:3306/db_name?serverVersion=8.0&charset=utf8mb4")
- Enter maker command: make first-install
- Create jwt Secret *pem with cmd: php bin/console lexik:jwt:generate-keypair
- Open the browser and go to https://localhost:8000/
- Et voilà !
- Get JWT token: $ curl -X POST -H "Content-Type: application/json" https://localhost:8000/api/login_check -d '{"username":"[email protected]","password":"123456"}'
- Get all URL endpoints (Postman, Insomnia..) with Bearer header
Access API Documentation at localhost:{my-port}/api
You can find img with structure of the database at the end of the document
### Unit test * To run the unit tests, use the command in the project path **make tests**
Lors de ce test technique, vous créerez une API de gestion de notes de frais.
- Ce test porte UNIQUEMENT sur l’API. Elle pourra être consommée via Postman, Insomnia... La création du code, côté front, n’est pas attendue.
- Vous utiliserez la version de PHP ainsi que le SGBD de votre choix.
- Vous êtes libre d’utiliser un Framework ou non.
- Votre code sera versionné sur un dépôt Git (GitHub, Gitlab , Bitbucket ...)
- Vous documenterez le code et le projet. Entre autres, afin de faciliter l’installation et le lancement du projet.
Un commercial travaillant pour différentes sociétés doit pouvoir se faire rembourser les frais engagés pour son travail.
Vous créez une API de gestion de notes de frais contenant les routes suivantes :
- GET des notes de frais
- GET d'une note de frais
- POST d'une nouvelle note
- PUT d'une note à éditer
- DELETE d'une note
L’API ne sera utilisée que par un seul utilisateur ayant l’ID #1. La gestion des droits et d’authentification n’est pas attendue. Toutefois, vous pouvez détailler dans la documentation du projet le type d’authentification que vous auriez mis en place.
Les classes utilisées par la route POST seront testées unitairement et/ou fonctionnellement.
Vous intègrerez à minima les données suivantes. Vous pourrez ajouter à ce modèle les éléments qui vous semblent nécessaires.
- Utilisateur
- Identifiant
- Nom
- Prénom
- Date de naissance
- Note de frais
- Identifiant
- Date de la note
- Montant de la note
- Type de note (essence, péage, repas, conférence)
- Date d’enregistrement
- Société (à qui l’on demande le remboursement)
- Nom de la société
- Implémentation d’un système d’authentification
- Toutes les routes sont testées