Projet Transversal (XMS1IE320)

Ce projet s’appuie sur le connaissances acquises dans les modules suivants :

Ce document a été créé grâce au générateur de documentation Antora.

Les sources de ce document sont disponibles sur GitLab. Elles ont été écrites en Asciidoc et les diagrammes ont été conçus en PlantUML.

Utilisez l’équipe Mattermost pour poser des questions sur le projet :

1. Compétences

Compétences spécialisées
  • Respecter les exigences fonctionnelles et non-fonctionnelles d’un cahier de charges logiciel

  • Diviser un système complexe en plusieurs sous-modules et spécifier des interface entre eux.

  • Appliquer différents principes de conception logicielle, comme l’abstraction, la décomposition, la ségrégation d’interface, la responsabilité unique et de l’ouverture/fermeture.

  • Traduire une conception en code source

Compétences générales
  • Collaborer dans le contexte d’un projet de développement

3. Projet à réaliser

3.1. Un peu de lecture

Pour commencer, nous vous vous invitons à lire la partie "Avant de commencer", qui fait un rappel du fonctionnement des langages HTML et CSS. Ces langages sont importants pour la partie front-end.

Même si vous connaissez déjà ces deux langages, lisez ces textes et signalez aux enseignants les parties que vous ne trouvez pas claires !

3.2. Un peu de code

Ensuite, c’est au tour des tutoriels qui vous aideront à mettre en place le projet que vous allez rentre à la fin. La mise en place contient plusieurs parties :

Tutoriels à faire
  1. Le langage TypeScript

  2. La création du projet sur GitLab

  3. La configuration du composant back-end

  4. Le configuration du composant front-end

  1. Faut-il faire la partie back-end si je ne vais contribuer que dans la partie front ?

    Oui, c’est important de connaître le fonctionnement de tout le projet.

3.3. Un peu de conception

La partie "Projet 2025" contient trois documents que vous devez lire pour concevoir le projet : l’analyse du domaine, les exigences logicielles et l’architecture.

Analyse du domaine

l’objectif de ce document est de modéliser le domaine (oui, si vous préférez, le métier ou le problème). Ce document vous permet de comprendre le fonctionnement actuel du domaine que vous allez informatiser. Il est disponible ici. Tous les membres du projet doivent lire ce document.

Spécification des exigences

ce document décrit le cahier de charges du logiciel, il explique ce qui est attendu de la solution, c’est à dire, de votre logiciel. Comme il décrit ce qui doit être réalisé, c’est tout naturellement que l’évaluation se base sur ce document. Il est disponible ici.

Architecture

enfin, ce dernier document donne des indications sur l’implémentation du logiciel. Il est disponible ici.

  1. Faut-il lire tous ces documents ?

    Non, ne lisez ces documents que si vous souhaitez avoir une bonne note.

4. Le projet QuizMaker

4.1. Détails

Objectif

L’objectif de ce projet est d’implémenter un outil capable de créer et gérer des questionnaires de questions à choix multiple (QCM), en respectant les exigences logicielles.

Organisation

Les projet sera réalisé par des groupes d’au plus quatre étudiants.

Échéance

À rendre pour le 20 décembre 2025.

4.2. Exigences logicielles à respecter

Deux fonctionnalités (cas d’utilisation) doivent être implémentés :

  1. Créer un questionnaire

  2. Répondre à un questionnaire.

4.3. Critères d’évaluation

Les critères qui seront utilisés pour évaluer le travail rendu sont les suivants :

  1. L’utilisation d'interfaces, en Java et en TypeScript, pour réduire le couplage entre les composants.

  2. La qualité du code source (Java et TypeScript).

  3. La cohérence entre le code et la conception.

  4. Le respect des exigences non-fonctionnelles.

  5. Le test du composant domaine du serveur.

  6. Le nombre de fonctionnalités réalisées.

    Il est préférable de rendre une seule fonctionnalité complète, par exemple la création d’un compte, plutôt que plusieurs fonctionnalités incomplètes.
  7. La légèreté des modules Angular : la partie du code dépendant d’Angular doit être la plus petite possible.

4.4. Barème indicatif

Critère Points

Qualité du dossier de conception

5

Respect des exigences non-fonctionnelles

5

Qualité des tests

5

Fonctionnalités

5

4.5. Rendu

Le projet GitLab doit être configuré avec :

  • Les participants comme membres du projet GitLab (normalement un membre avec le statut Owner et les autres avec le statut Developer).

  • Un compte GitLab de votre intervenant de TP également comme membre, de type Reporter. Se référer au tableau ci-dessous pour savoir quel compte GitLab ajouter.

  • Une description contenant le code #P-TRANS2025

  • La visibilité en mode Privé.

Groupe Encadrant

2C

sunye-g-clone

2D

bousse-e-clone

Votre rendu consistera en un seul projet GitLab auquel votre encadrant de TP pourra accéder avec un compte dédié.