🛰 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.

Commentaires

Connectez vous ou devenez un membre de Async pour rejoindre la conversation.
Entrez un mail ici pour recevoir un lien de connexion, super simple ⚡️