as-app/cline_docs/productContext.md

152 lines
4.1 KiB
Markdown

# Product Context
## Project Overview
Alerte Secours is a mobile application built with React Native that handles alerts and emergency-related functionality. The app supports both iOS and Android platforms.
## Core Features
1. Deep Linking:
- Alert sharing via URLs
- Direct navigation to specific alerts
- Support for both:
* Universal Links (https://app.alertesecours.fr/...)
* Custom scheme (com.alertesecours.alertesecours://)
- Seamless user experience from web to app
2. Authentication & Registration:
- Phone number registration with SMS verification
- Account connection with SMS verification
- Email-based authentication option
- Visual feedback for authentication processes
- Timeout handling for better user experience
2. Alert Management:
- Alert creation and handling
- Real-time updates
- Alert information display
- Alert level management
3. Communication:
- Chat/Messaging system:
* Alert-specific chat rooms
* Aggregated message view
* Real-time message updates
* Message history
* User identification in chats
* Message status indicators
* Audio message support
- SMS notifications
- Push notifications (via Firebase FCM)
4. Location & Mapping:
- Map integration
- Location-based features
5. User Management:
- Profile management
- Phone number management
- Privacy settings
- Account settings
## User Flows
### Deep Link Navigation:
1. Alert Sharing:
- User receives alert link (SMS, email, etc.)
- Clicking link opens app directly
- App validates alert access code
- Navigation to specific alert view
- Location coordinates preserved
2. Web to App Transition:
- User visits web URL
- Seamless transition to app if installed
- Fallback to web if app not installed
- Consistent experience across platforms
### Phone Number Registration:
1. User clicks "Enregistrer mon numéro de téléphone"
2. SMS disclaimer appears for confirmation
3. Upon acceptance:
- Navigation to Profile scene
- Loading indicator shows on registration button
- SMS code is sent
- Loading clears on success or timeout
### Account Connection:
1. User clicks "Se connecter"
2. SMS disclaimer appears for confirmation
3. Upon acceptance:
- Navigation to Profile scene
- Account management modal opens
- Loading indicator shows in modal
- SMS code is sent
- Loading clears on success or timeout
### Chat System:
1. Alert-Specific Chat:
- Users can view messages for a specific alert
- Real-time message updates
- Message status indicators
- Audio message support
- User identification
2. Aggregated Messages:
- View messages from all alerts
- Alert context with each message
- Quick navigation to specific alerts
- Distance information
- Real-time updates
3. Message Interactions:
- Text message sending
- Audio message recording/playback
- Message status tracking
- User presence indication
- Scroll position management
- New message indicators
### Profile Management:
- Phone number addition/removal
- Privacy settings configuration
- Account connection/disconnection
- Profile information management
## Integration Points
- Firebase (used only for FCM push notifications)
- GraphQL (using Hasura server with federated remote schemas)
- Sentry for error tracking
## User Experience Considerations
1. Loading States:
- Context-specific loading indicators
- Clear visual feedback for actions
- Reasonable timeouts (3 minutes)
- Automatic clearing on success
2. Theme Support:
- Dark and light theme compatibility
- Consistent visual feedback
- Accessible color schemes
3. Error Handling:
- Clear error messages
- Timeout handling
- Network error management
- Graceful fallbacks
4. Chat Experience:
- Smooth message delivery
- Clear message status
- Easy navigation between views
- Proper scroll management
- Clear user identification
- Efficient message loading
## Target Users
*To be documented*
## Business Objectives
*To be documented*
## Core User Workflows
*Additional workflows to be documented*