Initial commit: GBCM Mobile App React Native with authentication and services
This commit is contained in:
283
README.md
Normal file
283
README.md
Normal file
@@ -0,0 +1,283 @@
|
||||
# GBCM Mobile App
|
||||
|
||||
Application mobile pour la plateforme GBCM (Global Business Consulting and Management) développée avec React Native.
|
||||
|
||||
## Description
|
||||
|
||||
Application mobile native iOS et Android permettant aux utilisateurs GBCM d'accéder à leurs services de coaching, ateliers et tableaux de bord depuis leurs appareils mobiles.
|
||||
|
||||
## Technologies
|
||||
|
||||
- **React Native 0.72.6** - Framework mobile cross-platform
|
||||
- **React 18.2.0** - Bibliothèque UI
|
||||
- **React Navigation 6** - Navigation
|
||||
- **Redux Toolkit** - Gestion d'état
|
||||
- **React Native Paper** - Composants Material Design
|
||||
- **React Hook Form** - Gestion des formulaires
|
||||
- **Axios** - Client HTTP
|
||||
- **React Native Keychain** - Stockage sécurisé
|
||||
- **React Native Chart Kit** - Graphiques
|
||||
- **React Native Calendars** - Calendrier
|
||||
|
||||
## Prérequis
|
||||
|
||||
### Environnement de développement
|
||||
- Node.js 16+
|
||||
- npm ou yarn
|
||||
- React Native CLI
|
||||
- Java 11+ (Android)
|
||||
- Xcode 14+ (iOS)
|
||||
- Android Studio (Android)
|
||||
|
||||
### Appareils/Simulateurs
|
||||
- iOS Simulator (macOS uniquement)
|
||||
- Android Emulator
|
||||
- Appareils physiques iOS/Android
|
||||
|
||||
## Installation
|
||||
|
||||
1. Cloner le repository
|
||||
```bash
|
||||
git clone https://git.lions.dev/gbcm/gbcm-mobile-app.git
|
||||
cd gbcm-mobile-app
|
||||
```
|
||||
|
||||
2. Installer les dépendances
|
||||
```bash
|
||||
npm install
|
||||
# ou
|
||||
yarn install
|
||||
```
|
||||
|
||||
3. Installation des pods iOS (macOS uniquement)
|
||||
```bash
|
||||
cd ios && pod install && cd ..
|
||||
```
|
||||
|
||||
4. Configuration
|
||||
Copier `.env.example` vers `.env` et configurer :
|
||||
```
|
||||
API_BASE_URL=https://api.gbcm.com/v1
|
||||
API_TIMEOUT=10000
|
||||
ENVIRONMENT=development
|
||||
```
|
||||
|
||||
## Développement
|
||||
|
||||
### Démarrage du Metro bundler
|
||||
```bash
|
||||
npm start
|
||||
# ou
|
||||
yarn start
|
||||
```
|
||||
|
||||
### Lancement sur iOS
|
||||
```bash
|
||||
npm run ios
|
||||
# ou
|
||||
yarn ios
|
||||
```
|
||||
|
||||
### Lancement sur Android
|
||||
```bash
|
||||
npm run android
|
||||
# ou
|
||||
yarn android
|
||||
```
|
||||
|
||||
### Tests
|
||||
```bash
|
||||
npm test
|
||||
# ou
|
||||
yarn test
|
||||
```
|
||||
|
||||
## Structure du projet
|
||||
|
||||
```
|
||||
src/
|
||||
├── components/ # Composants réutilisables
|
||||
│ ├── common/ # Composants communs
|
||||
│ ├── forms/ # Composants de formulaires
|
||||
│ └── charts/ # Graphiques
|
||||
├── screens/ # Écrans de l'application
|
||||
│ ├── auth/ # Authentification
|
||||
│ ├── dashboard/ # Tableaux de bord
|
||||
│ ├── coaching/ # Sessions de coaching
|
||||
│ ├── workshops/ # Ateliers
|
||||
│ └── profile/ # Profil utilisateur
|
||||
├── navigation/ # Configuration navigation
|
||||
├── services/ # Services API
|
||||
├── store/ # Gestion d'état Redux
|
||||
├── utils/ # Utilitaires
|
||||
└── assets/ # Ressources statiques
|
||||
```
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
### Authentification
|
||||
- Connexion/déconnexion sécurisée
|
||||
- Authentification biométrique (Touch ID/Face ID)
|
||||
- Stockage sécurisé des tokens
|
||||
- Gestion des sessions
|
||||
|
||||
### Dashboard
|
||||
- Vue d'ensemble personnalisée
|
||||
- Métriques et KPIs
|
||||
- Notifications push
|
||||
- Accès rapide aux services
|
||||
|
||||
### Coaching
|
||||
- Liste des sessions programmées
|
||||
- Détails des sessions
|
||||
- Historique des sessions
|
||||
- Évaluation des sessions
|
||||
|
||||
### Ateliers
|
||||
- Catalogue des ateliers disponibles
|
||||
- Inscription aux ateliers
|
||||
- Calendrier des événements
|
||||
- Matériel de formation
|
||||
|
||||
### Profil
|
||||
- Informations personnelles
|
||||
- Paramètres de l'application
|
||||
- Préférences de notification
|
||||
- Support et aide
|
||||
|
||||
## Services API
|
||||
|
||||
### Configuration
|
||||
```javascript
|
||||
// src/services/api.js
|
||||
const API_BASE_URL = 'https://api.gbcm.com/v1';
|
||||
```
|
||||
|
||||
### Services disponibles
|
||||
- `authService` - Authentification
|
||||
- `userService` - Gestion utilisateur
|
||||
- `coachingService` - Services de coaching
|
||||
- `workshopService` - Gestion des ateliers
|
||||
- `notificationService` - Notifications
|
||||
|
||||
## Gestion d'état
|
||||
|
||||
### Redux Store
|
||||
```javascript
|
||||
// Structure du store
|
||||
{
|
||||
auth: {
|
||||
user: null,
|
||||
token: null,
|
||||
isAuthenticated: false,
|
||||
loading: false
|
||||
},
|
||||
coaching: {
|
||||
sessions: [],
|
||||
currentSession: null
|
||||
},
|
||||
workshops: {
|
||||
available: [],
|
||||
registered: []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Navigation
|
||||
|
||||
### Structure de navigation
|
||||
- **Auth Stack** - Écrans d'authentification
|
||||
- **Main Tab Navigator** - Navigation principale
|
||||
- Dashboard
|
||||
- Coaching
|
||||
- Ateliers
|
||||
- Profil
|
||||
- **Modal Stack** - Écrans modaux
|
||||
|
||||
## Build et déploiement
|
||||
|
||||
### Build Android
|
||||
```bash
|
||||
cd android
|
||||
./gradlew assembleRelease
|
||||
```
|
||||
|
||||
### Build iOS
|
||||
```bash
|
||||
cd ios
|
||||
xcodebuild -workspace GBCMMobile.xcworkspace \
|
||||
-scheme GBCMMobile \
|
||||
-configuration Release \
|
||||
-destination generic/platform=iOS \
|
||||
-archivePath GBCMMobile.xcarchive archive
|
||||
```
|
||||
|
||||
### Distribution
|
||||
- **Android**: Google Play Store
|
||||
- **iOS**: Apple App Store
|
||||
- **Enterprise**: Distribution interne
|
||||
|
||||
## Tests
|
||||
|
||||
### Tests unitaires
|
||||
```bash
|
||||
npm run test:unit
|
||||
```
|
||||
|
||||
### Tests d'intégration
|
||||
```bash
|
||||
npm run test:integration
|
||||
```
|
||||
|
||||
### Tests E2E avec Detox
|
||||
```bash
|
||||
npm run test:e2e:ios
|
||||
npm run test:e2e:android
|
||||
```
|
||||
|
||||
## Performance
|
||||
|
||||
### Optimisations
|
||||
- Lazy loading des écrans
|
||||
- Mise en cache des images
|
||||
- Optimisation des re-renders
|
||||
- Bundle splitting
|
||||
|
||||
### Monitoring
|
||||
- Crash reporting (Crashlytics)
|
||||
- Performance monitoring
|
||||
- Analytics utilisateur
|
||||
|
||||
## Sécurité
|
||||
|
||||
### Stockage sécurisé
|
||||
- Tokens dans Keychain/Keystore
|
||||
- Chiffrement des données sensibles
|
||||
- Validation côté client
|
||||
|
||||
### Communication
|
||||
- HTTPS uniquement
|
||||
- Certificate pinning
|
||||
- Validation des certificats
|
||||
|
||||
## Configuration
|
||||
|
||||
### Variables d'environnement
|
||||
- `API_BASE_URL` - URL de l'API
|
||||
- `API_TIMEOUT` - Timeout des requêtes
|
||||
- `ENVIRONMENT` - Environnement (dev/staging/prod)
|
||||
|
||||
### Configuration par environnement
|
||||
- `config/development.js`
|
||||
- `config/staging.js`
|
||||
- `config/production.js`
|
||||
|
||||
## Support
|
||||
|
||||
- Email: mobile-support@gbcm.com
|
||||
- Documentation: https://docs.gbcm.com/mobile
|
||||
- Issues: https://git.lions.dev/gbcm/gbcm-mobile-app/issues
|
||||
|
||||
## Licence
|
||||
|
||||
Propriétaire - GBCM LLC © 2024
|
||||
Reference in New Issue
Block a user