Il conviendra de réaliser une application Web, basée sur la librairie React.js. Cette application devra manipuler des données provenant d'au moins une API externe, avec notamment un CRUD le plus complet possible. Ce point sera discuté au cas par cas pour déterminer les API à utiliser.
Techniquement, il faudra que l'application comporte :
Au moins 4 écrans fonctionnellement différents
Listing de données
Donnant accès aux détails d'un élément
Formulaire de création de données
Un mécanisme de persistance des données locales (à discuter)
Des appels vers une API (authentifiés ou non)
Les éléments suivants devront être présents :
Routage dynamique (plusieurs "pages")
Stockage dans le navigateur
Appels REST (API)
Tests (Jest & Enzyme)
package.json à jour
Les points suivants seront également pris en compte :
Clarté du code
Architecture propre
Utilisation des hooks
Couverture de code (test)
Bonne utilisation des const
/var
/let
Réutilisation de composants génériques
Styles et design de l'application
Utilisation pertinente de librairie(s) externe(s)
Bonne gestion de l'état (state
) de l'application et ses composants
Pour aller plus loin, n'hésitez pas à :
Utiliser un système de gestion des données comme Redux ou MobX
Développer votre propre API, afin de ne pas être limité par l'existant
Vous pourriez également vous intéresser à GraphQL, en lieu et place ou en complément de REST
Le choix du sujet de l'application est libre, il appartient à chacun de le définir. Une validation préalable sera effectuée avant de débuter l'implémentation.
Thèmes interdits : sujet irrespectueux, violent, ne respectant pas la charte de l'IUT.
Exemples de sujet (2017 / 2018) : Festival du Houblon, Le monde de Star Wars, MangaShowTime, BlaBlaBar, InfoSNCF, Dofus Quest, Galerie Multimédia, Doge Miner, Pokedex, Umbrella (météo), FitNess (native), Livre2Recettes...
Le sujet devra avoir été validé avant la fin de la séance du 12 décembre 2019.
Un cahier des charges sera à produire, et ce pour la séance du 13 décembre 2019. Il contiendra une description rapide des écrans et fonctionnalités qui seront développés.
Veillez à remplir le document ci-dessous, et à me le transmettre par e-mail à l'adresse habituelle.
# SujetDonnez une description rapide du projet.Pourquoi ce sujet ?# FonctionnalitésListez ici les fonctionnalités que vous avez imaginées.Cette liste n'est pas définitive, et pourra être adaptée au fil du temps.# Source(s) de donnéesQuelle(s) API(s) comptez-vous utiliser ?Nécessite(nt)-elle(s) une authentification particulière ?Allez vous développer votre propre API ? Si oui, avec quelle technologie ?# Suite & avenirPensez-vous réutiliser ce projet ? (commercialisation, open source, ...)