Application React Native/Expo pour la gestion complète d'un restaurant avec système de rôles et sécurité avancée.
npm install
cd functions && npm install# Configurer le projet Firebase
firebase login
firebase use --add
# Démarrer les émulateurs (développement)
firebase emulators:start# Mode développement
npx expo start
# Mode web
npx expo start --web
# Mode production
npx expo start --no-dev --minify- Firebase Authentication : Authentification des utilisateurs
- Custom Claims : Gestion des rôles par restaurant
- Firebase Functions : Contrôle d'accès centralisé
- Firestore Rules : Protection des données au niveau base
🔴 Super-Admin
├── Accès à tous les restaurants
├── Peut créer des managers
└── Peut déclencher des lockdowns
🟠 Manager (par restaurant)
├── Gestion des employés
├── Accès complet aux données
└── Lockdown d'urgence
🟡 Chef
├── Gestion cuisine et stock
└── Mise à jour des commandes
🟢 Serveur
├── Gestion des commandes
└── Encaissement
🔵 Agent d'entretien
├── Visualisation des missions
└── Mise à jour du statut
restaurants/{id}
├── userAccess/{userId} # Accès utilisateurs
├── orders/{orderId} # Commandes
├── menus/{menuId} # Cartes et menus
├── stock/{itemId} # Gestion du stock
├── missions/{missionId} # Missions de nettoyage
└── accounting/{docId} # Comptabilité
users/{userId} # Profils utilisateurs
audit-logs/{logId} # Logs d'audit
security-events/{eventId} # Événements sécurité
# Script de debugging général
./debug-project.sh
# Test des Firebase Functions
./test-firebase-functions.sh
# Test de sécurité complet
./test-firebase-functions.sh security# Déploiement des functions
./deployfunction.sh
# Déploiement complet
./deploy.sh- App Router : Navigation par fichiers
- Context API : Gestion d'état globale (Restaurant)
- AsyncStorage : Cache local
- Expo : Plateforme de développement
- Functions : API serverless sécurisée
- Firestore : Base de données NoSQL
- Authentication : Gestion des utilisateurs
- Hosting : Hébergement web
- Custom Claims : Rôles et permissions
- Firestore Rules : Protection des données
- Audit Logs : Traçabilité complète
- Emergency Lockdown : Sécurité d'urgence
- SECURITY.md : Documentation de sécurité complète
- firestore.rules : Règles de sécurité Firestore
- functions/src/index.ts : API Functions commentée
// Via l'interface manager ou directement
emergencyLockdown({ restaurantId: 'restaurant-id' })// Managers uniquement
liftEmergencyLockdown({ restaurantId: 'restaurant-id' })- Email : [email protected]
- Documentation : SECURITY.md
# functions/.env
FIREBASE_PROJECT_ID=your-project-id
[email protected]// app.json
{
"expo": {
"name": "Restaurant Manager",
"scheme": "restaurant-app"
}
}- ✅ iOS : Application native
- ✅ Android : Application native
- ✅ Web : Progressive Web App
- ✅ Desktop : Via navigateur
# Linting
npm run lint
# Tests unitaires
npm test
# Tests de sécurité
./test-firebase-functions.sh all
# Audit des dépendances
npm audit- Firebase Analytics : Métriques d'usage
- Crashlytics : Rapports de crash
- Performance : Monitoring des performances
- Security Events : Alertes de sécurité
Version : 2.0
Dernière mise à jour : Décembre 2024
Équipe : DevTeam Restaurant