🛰 Projet. CrĂ©er votre application.

🛰 Projet. CrĂ©er votre application.

Sujet

Créer une application Flutter qui fonctionne aussi bien sur Android que sur iOS.

Vous devrez créer une application permettant de s'attribuer des objets mais aussi de savoir à qui appartient un objet grùce à du NFC et un Back-end. L'application permettra également de prendre des photos et de lier une ou plusieurs photographies à un objet.

Vous ĂȘtes en Master maintenant et on attend de vous que vous ayez une vision plus globale des systĂšmes que vous allez concevoir et dĂ©velopper. C'est pourquoi, dans ce projet vous allez rĂ©aliser le back-end et le front-end.

Materiel requis :

  • Un ou plusieurs tag NFC (fournis, Ă  rendre en fin de projet)
  • Au moins 1 smartphone iOS (si iOS vous aurez besoin d'un mac aussi) ou Android.

🏗 Architecture

Basez vous sur le schéma suivant pour comprendre ce que l'on attend de votre systÚme.

ItsMine
Architecture et UX Flow

🍿Le back-end

Grace à ce que vous avez appris lors du module de déploiement des solutions, vous devrez :

  • Mettre en place un back-end Strapi avec une base de donnĂ©es 🐘 Postgres
  • DĂ©ployer le tout sur Heroku
  • Utiliser un serveur de stockage S3 pour les images (fourni)

L'application mobile doit ĂȘtre capable de scanner des tags NFC, sur Android et iOS, de prendre des photos puis d'envoyer les informations Ă  votre back-end.

Vous devrez donc définir correctement les modÚles de données sur l'application et sur le back-end, gérer le flux de données et les envois d'image.

Si vous vous débrouillez bien, le back-end ne nécessite aucune ligne de code, que de la configuration.

đŸ“±L'application

Utiliser les maquettes fournies pour Ă©viter de perdre du temps en conception

Il se peut que vous deviez ajouter / modifier les interfaces en fonction de contraintes de développement ou de vos choix, mais ne déviez pas trop, vous n'aurez pas le temps.
ItsMine
Les maquettes fil de fer de l'application

Les images

  • La prise de photo sur le tĂ©lĂ©phone doit se faire via une interface que vous aurez crĂ©Ă© vous (pas d'utilisation du sĂ©lecteur d'image par dĂ©faut du systĂšme) et qui utilise le flux vidĂ©o de la camĂ©ra.
  • L'envoi et la reception d'image ne doit pas se faire en base64, vous devrez gĂ©rer du binaire (Multipart ou binary body).

Natif

Puisque vous allez toucher à des fonctionnalités bas niveau du framework de chaque systÚme, vous devrez modifier un peu de configuration native, donc lisez bien la documentation des bibliothÚques pour le NFC et la caméra, mais aussi pour le réseau !

🆙 Upload d'image sur Strapi

Vous devrez configurer l'upload des fichier sur Strapi :

Nous avons mis en place un bucket Scaleway pour vous. Heroku ne garanti pas la conservation des fichiers images ou SQLite puisque l'environnement se détruit / se reconstruit aléatoirement.
  • Il faudra utiliser le plugin Upload de Strapi quand vous en serez lĂ   demander moi les identifiants du bucket s3 et nous pourrons mettre ca en place.
  • Il est possible (et recommandĂ©) d'utiliser le `plugin provider` suivant : https://github.com/team-appforge/strapi-provider-upload-scaleway qui va vous faciliter la tĂąche

đŸȘPoints importants

  • L'application ne nĂ©cessite pas de compte pour fonctionner
    • Pensez Ă  autoriser le Role public a upload des images et poster des produits dans Strapi
  • Utilisez les api d'asynchronicitĂ© de Flutter (Stream et Future) et comprenez les, pour l'examen finale il y aura des questions dessus.
  • Pas de mode hors-ligne demandĂ©, mais pour sauvegarder les identifiants de vos objets sur l'app il faudra surement utiliser les sharedPreferences

Modalités

  • 🙌 Travail par Ă©quipe de 4 maximum.
  • 🗓 A rendre pour le 3 DĂ©cembre.
  • Exercice bonus : Quand un tag est scannĂ©, la localisation de l’appareil est envoyĂ© au serveur pour prĂ©venir le propriĂ©taire via une notification push. Si vous faites ca proprement en plus de l'app vous aurez facilement 5 points de plus sur le module.

Rendus

Best show.

Sur Teams seront attendus :

  • Les liens de vos rĂ©pertoires git pour le projet
    • 1 repertoire pour l'application
    • 1 pour la partie serveur.
  • Une dĂ©monstration de l'application sous forme de vidĂ©o
  • L'URL du serveur (en ligne et accessible)
  • L'URL de la documentation d'API du serveur

Pour l'évaluation il est pris en compte l'aspect sécurité, ne versionnez jamais des identifiants de connexion, ou des clés d'API !

đŸ“č Pour la vidĂ©o

  • La vidĂ©o de prĂ©sentation doit permettre de montrer que votre systĂšme gĂšre un scĂ©nario de rĂ©cupĂ©ration d'un tag (objet de quelqu'un d'autre trouvĂ© par vous).
  • Un scĂ©nario d'attribution d'un tag (objet) avec un mot de passe, des photos de l'objet et les informations du propriĂ©taire.

đŸŽ€ PrĂ©sentation finale le 3 DĂ©cembre :

Présentez votre solution, tout le monde doit parler, les personnes ayant travaillé le back-end devront expliquer le front-end et inversement.

Avec une dĂ©mo fonctionnelle đŸ”„

Ressources pour réaliser le projet

DĂ©ploiement sur le Play Store

DĂ©ployez votre application !!!

Bonus : Vous pourrez dĂ©ployez votre app sur le PlayStore, nous vous prĂȘteront notre compte dĂ©veloppeur Google

Rendez vous ici pour deployer votre application sur le Playstore.