> For the complete documentation index, see [llms.txt](https://cours.davidannebicque.fr/vue.js-but/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cours.davidannebicque.fr/vue.js-but/but3-projets/contexte-et-objectifs.md).

# Contexte et objectifs

## Contexte

* Approche pédagogique par projet, à l'heure de l'IA et de l'alternance.
* Des projets de développement essentiellements front-end, mais avec une approche full-stack (API, state management, tests, CI/CD).
* Des projets qui pourront être exploités à l'issue des séances et vous créditer.

## Evaluations

L'évaluation reste orientée gestion de projet et compréhension du code, respect des bonnes pratiques, qualité du code, tests, etc. L'évaluation est continue et se fait sur la base de :

* La qualité du code produit (respect des bonnes pratiques, architecture, tests, etc.)
* La qualité de la documentation et du journal de bord (AI\_PROMPT\_BOOK)
* La qualité de la présentation finale (démonstration, slides, etc.)
* La qualité de la collaboration et du travail en équipe (Git, issues, PR, etc.)
* La qualité de la gestion de projet (planning, jalons, etc.)
* La qualité des pitches et des présentations intermédiaires (démonstration, slides, etc.)

**Chaque critère est noté individuellement (sur 3 points) et un bonus de 2 points est attribué pour la qualité globale du projet et de la présentation finale. La note finale est sur 20 points.**

## Contexte technique

* Projet en VueJs ou Nuxt 4, avec TypeScript et Pinia.
* Projet full-stack avec API ([Nitro](https://nitro.build/)) dans un premier temps pour simuler un back-end, puis avec une API réelle (ApiPlatform) dans un second temps.
* Gestion d'un gitflow avec issues et PR, avec un workflow de développement en équipe.
* Tests unitaires et d'intégration avec [Vitest](https://vitest.dev/) et tests E2E avec [Playwright](https://playwright.dev/) ou [Cypress](https://www.cypress.io/).

## Qui sommes nous ?

### Qui suis-je ?

* Je suis le client, pas très technique, qui sait vaguement ce que je veux, je peux être conseillé, mais j'ai aussi mes idées arrêtées. Je ne peux discuter qu'avec le Product Owner. Je suis libre de changer d'avis, mais je suis aussi ouvert à la discussion. Je suis très sensible à l'accessibilité, à l'UX et à la qualité du code. Le client ne vous sollicitera sans doute pas souvent, mais si vous attendez trop vous prenez le risque d'être hors sujet.
* Je suis aussi le QA, qui teste le produit et qui est très exigeant sur la qualité du code, les tests, l'accessibilité, l'UX et la performance. Je peux vous aider technique, tous, si vous êtes en mesure de m'expliquer votre erreur, je ne pourrais pas analyser l'intégralité de votre code, mais je peux vous aider à trouver la solution. Je suis très sensible à l'accessibilité, à l'UX et à la qualité du code. Je validerai toutes vos PR et je vous donnerai des feedbacks sur la qualité du code, les tests, l'accessibilité, l'UX et la performance.

**Vous êtes libre d'interpeler le client (si vous êtes le PO), ou le QA (tous les membres de l'équipe) pour affiner le projet, obtenir des feedbacks, valider des points d'étapes.**

### Qui vous êtes ?

Par groupe de 3 étudiants/employés de l'aence, vous serez :

* Le Product Owner (PO) : vous êtes le représentant du client, vous êtes responsable de la vision du produit et de la priorisation des fonctionnalités. Vous êtes le seul à pouvoir discuter avec le client et à lui présenter les fonctionnalités. Vous êtes responsable de la qualité du produit et de la satisfaction du client. Vous êtes responsable de la gestion du backlog et de la planification des sprints. Vous êtes responsable de la communication avec l'équipe et le client.
* Les développeurs (DEV) : vous êtes responsables de la réalisation des fonctionnalités, de la qualité du code, des tests et de la documentation. Vous êtes responsables de la mise en place des bonnes pratiques et de l'architecture du code. Vous êtes responsables de la communication avec le PO et le QA. Vous êtes responsables de la gestion du gitflow et des PR.

**Tous les membres de l'équipe doivent participer à la réalisation des fonctionnalités**, et doivent produire des PR (livrables).

## A votre disposition

* Vous disposerez tous d'un accès à un repository GitHub privé pour votre projet, avec un workflow de développement en équipe (issues, PR, etc.). Il est géré par le QA.
* Vous disposerez d'un accès à un tableau Miro pour la gestion du projet, la planification des sprints et la communication avec le client. Le QA y a accès pour commenter, suivre, interagir. Vous pourrez le présenter au client.
* Vous pouvez utiliser d'autres outils de gestion de projet (Trello, Jira, etc.) si vous le souhaitez, mais vous devez en informer le QA et le client.
