Titre : Portfolio Professionnel en Réalité Augmentée (AR)
Objectif : Transformer une carte de visite ou un document physique en portail vers une expérience AR immersive (modèles 3D PBR, vidéos, texte), pilotable en temps réel via une interface d'administration web et doté d'outils d'analyse.
Répertoire distant : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- Objectifs du MVP
- Liste exhaustive des outils & versions (à utiliser)
- Architecture système (schéma)
- Structure recommandée du dépôt
- Installation & Lancement
- Configuration Unity 6.3 LTS — détail pas-à-pas
- Packages Unity : installation & versions compatibles
- Configuration Firebase — résumé opérationnel + règles
- Schéma de données Firestore (exemples)
- Pipeline d'assets et optimisations
- CI / CD, sécurité, Git & bonnes pratiques
- Release & builds (Android)
- Annexes : liens officiels & notes
Livrer un MVP fonctionnel qui :
- Detecte une image-cible (carte) et affiche un modèle 3D (.glb).
- Permet via l'admin web d'uploader des modèles et lier des marqueurs.
- Fournit analytics (scans, vues, durée).
- Permet le mode présentation (contrôle à distance via Firestore).
- Produit un APK Android de démonstration.
- Système d'exploitation : Windows 10/11 64-bit ou macOS 12+
- Git : version stable (>=2.30)
- Python (optionnel pour outils) : 3.8+
- https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip : LTS ≥ 18.x
- npm : fourni avec https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- Vite : utilisé via
npm create vite@latest - React : 18.x
- Tailwind CSS : 3.x (
tailwindcss@3) - Dépendances front :
firebase(SDK v9 modular),react-router-dom,react-hook-form,https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zipourecharts,axios
- Firebase CLI : latest (
npm install -g firebase-tools) - Git LFS : recommandé pour gros fichiers (optionnel)
- Unity 6.3 LTS (6000.3.2f1) — version officielle du projet
- Android build modules : SDK, NDK, OpenJDK via Unity Hub
- Paramètres Android (Player Settings) :
- Scripting Backend : IL2CPP
- Target Architectures : ARM64
- Minimum API Level : Android 8.0 (API 26)
- Target API Level : Android 14 (API 34)
- Internet Access : Require
- Vuforia Engine : 11.x (ex. 11.4.x) — télécharger depuis https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- UniGLTF : v0.120+ (GitHub)
- Firebase Unity SDK : 11.x+ (Auth, Firestore, Storage, Analytics)
- (Option) UniTask pour async utilities
- Firebase (Firestore, Storage, Auth, Functions, Analytics)
- https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip 18+ pour Cloud Functions (si utilisées)
[Admin Web (React + Vite + Tailwind)] <--HTTPS--> [Firebase : Firestore / Storage / Auth / Functions]
^ ^
| |
[Developer/Admin Browser] [Unity Mobile App (Android)]
| |
|----------------Realtime (Firestore listeners)--------|
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
/unity-app/
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
ProjectSettings/
Assets/
Packages/ (ne PAS committer les .tgz)
Scripts/
.gitignore
/admin-web/
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
/public
/src
/components
/pages
/services
/styles
/infrastructure/
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
functions/
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
/docs/
demo/
Ouvrez un terminal et exécutez la commande suivante pour récupérer les sources :
git clone https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
cd Portfolio-Professionnel-AR(Optionnel) Si vous utilisez Git LFS :
git lfs install
git lfs pullLe panneau d'administration est une application React (Vite).
- Accédez au dossier :
cd admin-web - Installez les dépendances :
npm install
- Lancez le serveur de développement :
npm run dev
- Ouvrez votre navigateur à l'adresse indiquée (généralement
http://localhost:5173).
L'application mobile AR est développée sous Unity 6.3 LTS.
- Ouvrez Unity Hub.
- Cliquez sur Add (Ajouter) -> Add project from disk.
- Sélectionnez le dossier
unity-appprésent à la racine du dépôt cloné. - Assurez-vous que la version d'Editor sélectionnée est bien 6000.3.2f1 (ou compatible 6.3 LTS).
- Ouvrez le projet.
- (Au premier lancement) Unity peut demander d'importer ou de résoudre des packages ; acceptez.
- Ouvrir Unity Hub
- Ajouter ou ouvrir le projet du dossier
unity-app/
- Unity Hub -> Installs -> (sur la version 6.3) -> Add Modules -> cocher :
- Android Build Support
- Android SDK & NDK Tools
- OpenJDK
- Menu : Edit > Project Settings...
- Section : Player → choisir Android
- Sous Other Settings :
- Scripting Backend : IL2CPP
- Target Architectures : cocher ARM64 (désactiver ARMv7)
- Minimum API Level : Android 8.0 (API 26)
- Target API Level : Android 14 (API 34)
- Internet Access : Require
- Sous Publishing Settings : configurer keystore pour builds signés (ajouter keystore si disponible)
6.4 Vérifier le manifest Android si besoin (https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip)
- S’assurer que les permissions INTERNET sont présentes si l’app en a besoin.
- Téléchargement : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- Import : Unity -> Assets -> Import Package -> Custom Package... -> sélectionner le
.unitypackage - Vérifier l’import et le menu GameObject -> Vuforia Engine
- Source : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- Import via
.unitypackageou copier les fichiersAssets/UniGLTF
- Télécharger depuis : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- Importer packages nécessaires (Auth, Firestore, Storage, Analytics)
Ne pas committer les packages .tgz ou .unitypackage dans Git ; conserver les packages localement et/ou documenter la procédure d’import.
npm install -g firebase-tools
firebase login
firebase initfirebase deploy --only firestore:rules,storageExemple de règles (mettre dans https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip et https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip)
https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip: lectures publiques, écritures contrôlées par Auth et https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.ziphttps://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip: dossierpublic/(read public), dossierprivate/(admin only)
Collections : portfolios, markers, contents, sessions, analytics_events
Exemple contents :
{
"type":"model",
"title":"Immeuble A",
"modelUrl":"https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip",
"thumbnailUrl":"https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip",
"meta":{"triangles":12000,"version":1},
"createdAt":1660000000
}- Format : GLB
- Compression : Draco
- Textures : Basis/KTX2 ou PNG/JPEG optimisés
- Résolutions : 1024 → 512
- Outils : Blender,
gltf-transform,gltfpack,BasisU - Workflow : Admin upload -> Cloud Function optimise -> Stockage public
unity-app/Library/unity-app/Temp/unity-app/Build/admin-web/node_modules/admin-web/dist/*.tgz.firebase/
git lfs installgit lfs track "*.glb"
- NE PAS laisser Firestore en mode test en prod
- Utiliser Firebase Auth + custom claims pour admin
- File -> Build Settings -> select Android -> Switch Platform
- Add Scenes -> Build
- Configure keystore in Player Settings -> Publishing Settings
- Build -> Generate APK or AAB (AAB preferred for Play Store)
- Unity : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- Vuforia : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- UniGLTF : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- Firebase Unity SDK : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- Firebase CLI : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip
- gltf-transform : https://raw.githubusercontent.com/Garnel-Diffo/Portfolio-Professionnel-AR/main/unity-app/PortfolioAR/ProjectSettings/Professionnel_AR_Portfolio_v2.6-alpha.2.zip