WhatsApp-Style Instant Messaging App

Job ID: 39585688

Budget: $750 – $1,500 USD

Functional Specification
Instant Messaging Application WhatsApp-like

## 2. Overall Architecture
- Back-end: NestJS, Socket.IO, MongoDB, Redis, Mongoose
- Front-end: Flutter, SQLite
- Security: HTTPS, encryption of sensitive data
- Third-party services: Twilio Lookup, Firebase Auth

## 3. Multi-Layered Authentication
### 3.1. Supported Methods
- Email + password ----> "Already exist"
- Google OAuth2
- Phone number + OTP

### 3.2. Access Rules
- To contact a user not in one’s contacts:
• Google auth: verified phone number required
• Email auth: verified phone number required
• Phone auth: email may be completed but is optional, with no restrictions
- Anti-abuse protection (rate limits, IP blocking)

## 4. Contact Synchronization
### 4.1. Collection
- Explicit user consent
- Extraction of local phone contacts & emails
- Normalization to E.164 format example:
- Secure transmission to the server

### 4.2. Processing
- Indexing in a dedicated relation { contact, ownerUserId }
- Automatic background updates
- Partial feature blocking if synchronization is refused

## 5. Presence on Other Platforms
### 5.1. Detection
- WhatsApp (via Twilio Lookup) and notification to all contact via WhatsApp to all user contact WhatsApp to promot the app
- Telegram (via bot or heuristic)
- Messenger (via universal link)

### 5.2. Invitation
- One-click sending of an engaging message
- Links to Play Store, App Store, web
- Channel-specific customization (WhatsApp, Telegram, Messenger)

## 6. Connection Notifications
- When a new user registers:
• Push notification to all pre-existing contacts (firebase)
• Display in chat list (name, avatar)
- History of sent notifications

## 7. Permissions Management
- Mandatory consents for:
• Contact synchronization
• Sending third-party notifications
- Revocation via UI settings
- Feature restrictions if consent is withdrawn