Aller au contenu

Projet intégrateur (50%)

Mise en contexte

Votre travail consiste à concevoir une application web qui interagit avec des données par une interface applicative (API).
Vous devez choisir un projet de votre choix qui doit cependant être préalablement approuvé par l’enseignant. Vous êtes responsable de vous assurer que votre projet respecte les consignes demandées.

Le projet est divisé en 3 parties :

  1. Base de données : 10% de l’épreuve finale
  2. Interface applicative (API) : 40% de l’épreuve finale
  3. Application: 50% de l’épreuve finale

Voici les règles à respecter pour chacune des parties :

  1. Base de données :

    • Base de données MongoDB
      • Minimum 8 propriétés
      • Au moins une propriété de chacun de ces types :
        • String
        • Number
        • Date
        • Bool
        • Tableau de types natifs (string, number, etc.)
      • Possibilité d’utiliser plusieurs collections (recommandé pour les modèles plus avancés)
    • Jeu de données test
    • Publication de la base de données (MongoDB Atlas ou autre)
  2. Interface applicative (API) :

    • Robuste (validation et messages d’erreur personnalisés, en français)
    • Sécuritaire
    • Implémente méthodes HTTP ciblées :
      • GET
        • GET ALL
        • GET by ID
        • GET avec Filtres (au moins 2)
      • POST
      • PUT
      • DELETE
    • Validations appropriées :
      • Champs requis
      • Types
      • Tailles et intervalles (min, max, longueur du tableau)
      • Messages personnalisés en français
      • Au moins 2 validations personnalisées
    • Tests unitaires (Jasmine et Supertest)
    • Documentation : toutes les routes doivent être documentées sur la page d’accueil de l’api (exemple : Google Classroom REST API )
    • Publication de l’API (Netlify ou autre)
  3. Application :

    • Approche « mobile first », idéalement responsive, minimalement correctement affichée sur 3 résolutions d’écran (mobile, tablette et pc).
    • À l’aide de React fonctionnel.
    • Décomposée en minimum 5 composants (ou l’équivalent)
    • Internationalisée (Français et Anglais)
    • Interactions avec toutes les méthodes HTTP implémentées par l’API
    • Utilisation de formulaires lorsque nécessaire (minimum 1 formulaire, 5 champs)
    • Avec validations adéquates et cohérentes avec les validations serveur. Les messages issus des validations doivent être affichés à l’utilisateur.
    • Minimum 2 composants utilisés à des fins d’affichage.
    • Authentification obligatoire pour certaines fonctionnalités ciblées (minimum 1), adaptée à la réalité du projet. L’authentification peut être intégrée dans l’API ou comme serveur tiers.
    • Configuration en tant qu’application progressive.
    • Publication de l’application (Netlify, GitHub Pages ou autre)

Remise

  • Le projet doit être remis avant le 13 décembre 2024 à 23h59
  • À remettre sur Teams :

    • Lien GitHub (dépôt public ou privé*) de l’API.
    • Ajouter un dossier Dev contenant le script de la base de données (scripts de création au besoin et scripts de données de test)
    • Le fichier README doit contenir les informations suivantes :
      • Procédure d’installation de l’API sur un poste local
      • Procédure de création de la base de données.
      • URL de l’API publiée
    • Lien GitHub (dépôt public ou privé*) de l’application.
    • Le fichier README doit contenir les informations suivantes :
    • Procédure d’installation de l’application sur un poste local
    • Description sommaire de l’application publiée
    • Informations d’authentification

*Si dépôt privé, envoyer une invitation de collaboration à rivard.etienne@cegepvicto.ca

Grille de correction

Élément Excellent Satisfaisant Minimal Faible Insuffisant
Base de données (10%)
Schéma Le schéma de la base de données répond totalement aux exigences demandées.

6 points
Un ou 2 éléments du schéma ne répondent pas aux exigences demandées

5 points
3 à 5 éléments du schéma ne répondent pas aux exigences demandées

4 points
Plus de 5 éléments ne répondent pas aux exigences demandées

0 point
Publication Le base de données est publiée.

2 points
La base de données n’est pas publiée

0 point
Jeu de tests Le jeu de données de permet de tester l’ensemble des fonctionnalités.

2 points
Le jeu de données de permet de tester partiellement les fonctionnalités.

1 point
Le jeu de données de permet de tester moins de 25% des fonctionnalités.

0 point
Interface applicative (API) (40%)
Méthodes HTTP L’interface applicative implémente correctement l’ensemble des méthodes HTTP demandées.
(GET, POST, PUT, DELETE)

4 points
L’interface applicative implémente correctement 75% des méthodes HTTP demandées.
(GET, POST, PUT, DELETE)

3 points
L’interface applicative implémente correctement 50% des méthodes HTTP demandées.
(GET, POST, PUT, DELETE)

2 points
L’interface applicative implémente correctement 25% des méthodes HTTP demandées.
(GET, POST, PUT, DELETE)

1 point
L’interface applicative implémente moins de 25% des méthodes HTTP demandées.
(GET, POST, PUT, DELETE)

0 point
GET avec filtre L’interface applicative implémente correctement un minimum de 2 méthodes GET avec filtres. Ces requêtes sont pertinentes au projet.

5 points
L’interface applicative implémente partiellement un minimum de 2 méthodes GET avec filtres. Ces requêtes sont pertinentes au projet.

3 points
L’interface applicative implémente partiellement moins de 2 méthodes GET avec filtres. Ces requêtes sont peu pertinentes au projet.

2 points
L’interface applicative n’implémente pas correctement de méthodes GET avec filtres, ou ces requêtes ne sont pas pertinentes au projet

0 point
Validations natives L’interface applicative contient des validations natives appropriées aux données représentées dans le schéma.

5 points
L’interface applicative contient des validations natives partiellement appropriées aux données représentées dans le schéma

4 points
L’interface applicative ne contient pas de validations natives appropriées aux données représentées dans le schéma

0 point
Validations personnalisées L’interface applicative contient au minimum 2 validations personnalisées appropriées aux données représentées dans le schéma.

5 points
L’interface applicative contient au moins 1 validation personnalisée appropriée aux données représentées dans le schéma.

4 points
L’interface applicative ne contient pas de validation personnalisée appropriée aux données représentées dans le schéma

0 point
Application sécurisée L’interface applicative est correctement sécurisée.

4 points
L’interface applicative est partiellement sécurisée.

2 points
L’interface applicative n’est pas sécurisée.

0 point
Messages d'erreur Les messages d’erreur sont personnalisés en français.

2 points
L’interface applicative contient des messages d’erreurs appropriés.

1 point
L’interface applicative ne contient pas de messages d’erreurs appropriés.

0 point
Tests unitaires automatisés L'ensemble des méthodes HTTP implémentés et des validations sont testées

6 points
Les tests unitaires ne couvrent que 75% des méthodes HTTP et validations

5 points
Les tests unitaires ne couvrent que 50% des méthodes HTTP et validations

4 points
Les tests unitaires ne couvrent que 25% des méthodes HTTP et validations

2 points
Les tests unitaires couvrent moins de 25% des méthodes HTTP et validations

0 point
Documentation La documentation de l’interface applicative est claire et complète.

4 points
La documentation de l’interface applicative est floue ou incomplète.

2 points
La documentation de l’interface applicative est inexistante.

0 point
La qualité générale de l’interface applicative (API) démontre une rigueur dans l’application des procédures d’assurance qualité.
(Correction négative, -1 par bogue identifié)
Application Web (50%)
Composants L’application est optimalement décomposée en composants.

5 points
L’application est correctement décomposée en composants

4 points
L’application est décomposée en composants, mais contient une ou 2 erreurs de structure.

2 points
L’application n’est pas correctement décomposée

0 point
Hooks Les techniques de programmation utilisées démontrent une excellente maîtrise de l’approche par hooks

5 points
Les techniques de programmation utilisées démontrent une bonne maîtrise de l’approche par hooks

3 points
Les techniques de programmation utilisées démontrent une légère maîtrise de l’approche par hooks

2 points
Les techniques de programmation utilisées ne démontrent pas la maîtrise de l’approchepar hooks

0 point
Méthodes HTTP L’application implémente correctement l’ensemble des méthodes HTTP fournies par l’interface applicative (API).

12 points
L’application implémente correctement 75% des méthodes HTTP fournies par l’interface applicative (API).

9 points
L’application implémente correctement 50% des méthodes HTTP fournies par l’interface applicative (API).

7 points
L’application implémente correctement 25% des méthodes HTTP fournies par l’interface applicative (API).

3 points
L’application implémente correctement moins de 25% des méthodes HTTP fournies par l’interface applicative (API).

0 point
Validations L’application contient des validations appropriées avec messages à l'utilisateur dans l'interface graphique.

5 points
L’application contient des validations partiellement appropriées qui ont des messages affichés à l'utilisateur.

3 points
L’application ne contient pas de validations appropriées ou ne sont pas affichées à l'utilisateur.

0 point
Visuel L’application intègre adéquatement des composants visuels répondant aux exigences du projet.

5 points
L’application intègre partiellement des composants visuels répondant aux exigences du projet.

3 points
L’application n’intègre pas des composants visuels répondant aux exigences du projet.

0 point
Application sécurisée L’application est correctement sécurisée.

4 points
L’application est partiellement sécurisée.

3 points
L’application n’est pas sécurisée.

0 point
Internationalisation L’application est entièrement internationalisée en Français et en Anglais

5 points
L’application est partiellement internationaliséeen Français et en Anglais

3 points
L’application n’est pas internationalisée en Français et en Anglais

0 point
Organisation visuelle L’organisation visuelle des fonctionnalités est adéquate et cohérente dans un minimum de 3 affichages (mobile, tablette et PC)

3 points
Les fonctionnalités développées contiennent 1 ou 2 incohérences au niveau de l’organisation visuelle.

2 points
L’organisation visuelle des fonctionnalités développées est inadéquate ou incohérente.

0 point
Navigation La navigation est intuitive.
(Positionnement des boutons, retour à l’accueil, utilisation d’onglets, etc.)

2 points
La navigation contient une erreur de parcours.

1 point
La navigation contient plus d’une erreur de parcours.

0 point
PWA L’application est configurée en tant qu’application progressive (PWA) et répond à plus de 75% des exigences.

2 points
L’application est configurée en tant qu’application progressive (PWA) et répond à plus de 50% des exigences.

1 point
L’application est configurée en tant qu’application progressive (PWA) ou répond à moins de 50% des exigences.

0 point
Publication L’application est publiée et fonctionnelle.

2 points
L’interface applicative n’est pas correctement publiée. Certaines fonctionnalités ne fonctionnement pas.

1 point
L’application n’est pas publiée

0 point
La qualité générale de l’application démontre une rigueur dans l’application des procédures d’assurance qualité.
(Correction négative, -1 par bogue identifié)