GitLab now enforces expiry dates on tokens that originally had no set expiration date. Those tokens were given an expiration date of one year later. Please review your personal access tokens, project access tokens, and group access tokens to ensure you are aware of upcoming expirations. Administrators of GitLab can find more information on how to identify and mitigate interruption in our documentation.
Développer une application Laravel pour des ornitologues qui permet d'enregistrer et de partager leurs observations d'oiseaux dans leurs milieux naturels.
Un designer (peu inspiré) a réalisé le mockup suivant :
Il est conseillé de partir d'une solution fonctionnelle du TP8, la vôtre ou celle proposée dans le répertoire `corriges` à la racine de ce dépôt Git.
Note : Les parties I et II sont complètement indépendantes.
## Rendu
Le rendu est à faire sur vôtre fork Gitlab de "W31", **dans un répertoire nommé "larabirds" à la racine de votre dépôt : merci de respecter le nom**.
* Pensez à "commiter" (et éventuellement "pusher") au fur et à mesure du TP noté, dès que vous avez une partie fonctionnelle.
* N'oubliez pas de "pusher" à la fin du TP noté.
* Attention, **les commits effectués APRÈS l'horaire de fin du TP ne seront pas pris en compte** : pensez à prendre le temps nécessaire à ces opération avant la fin de l'examen.
## I. Compte utilisateur
L'objectif de cette première partie est d'ajouter les informations nom et prénom au profil d'un ornithologue.
Pour cela vous devez :
1. Ajouter des `<input>` de type `text` lors de la création du compte.
2. Sur la page d'accueil d'un ornithologue connecté, ajouter un lien envoyant vers une page ["profil"](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/larabirds/myProfile.html) affichant pour un ornithologue connecté son login, son nom et son prénom.
## II. Observation d'oiseaux
À travers l'application, un ornithologue connecté doit pouvoir gérer une collection d'oiseaux observés.
Un oiseau observé est défini de la façon suivante :
* un identifiant
* l'identifiant de l'ornithologue qui l'a observé
* la date d'observation
* le lieu de l'observation
* son espèce (nom vernaculaire)
* son nom scientifique
* une description de l'oiseau
_Note : Dans un premier temps, il est possible de considérer qu'un oiseau n'a pas d'observateur. Un ornithologue accédera aux observations de tous les ornithologues. Il faudra bien entendu intégrer la relation dans un second temps et adapter votre code._
#### Mise en place du modèle
1. Créer un modèle `Bird` avec son contrôleur et son fichier de migration associés avec cette commande :
```
$ php artisan make:model Bird -c -m
```
2. Compléter le fichier de migration `2020_..._create_birds_table.php` créé en 1.
3. Compléter le fichier du modèle `Bird.php` créé en 1.
#### Fonctionnalités à implémenter
Deux consignes globales :
1. Toutes les routes créées dans les questions ci-dessous doivent être déclarées dans **un nouveau groupe de routes `bird`, sous-groupe du groupe admin** utilisé en TP.
2. Le lien des vues Blade de **retour à la page `account`** ([voir mockups](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/larabirds/myProfile.html)) doit être déclaré dans un fichier indépendant à placer dans le répertoire `resources/views/shared` et **inclut dans les vues concernées**.
Ces deux consignes doivent être appliquées à toutes les fonctionnalités ci-dessous :
1. Créer une page [`formBird`](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/larabirds/newBird.html) :
* accessible depuis la page d'accueil d'un ornithologue,
* qui propose un formulaire pour ajouter un nouvel oiseau observé
2. Créer une page [`birdlist`](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/larabirds/myBirds.html) :
* accessible depuis la page d'accueil d'un ornithologue,
* qui affiche l'espèce, la date et le lieu d'observation de tous les oiseaux observés par l'ornithologue,
3. Pour chaque observation, ajouter la possibilité de la supprimer depuis la page [`birdlist`](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/larabirds/myBirds.html).
4. Créer une page [`bird`](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/larabirds/sterne.html):
* qui affiche toutes les informations d'une observation donnée, identifiée par son `id`
* utilisée pour afficher les détails de chaque oiseau listé sur la page [`birdlist`](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/larabirds/myBirds.html) via un lien
5. Créer une page [`birdfromplace`](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/larabirds/birdsFromPlace.html) :
* accessible depuis la page d'accueil d'un utilisateur connecté,
* qui affiche les oiseaux qui ont été observés à un endroit donné