How gherg006/bluebubbles-test works
BlueBubbles is a desktop messaging client backed by an HTTPS web API. Users register or log in, browse users and saved contacts, open paged conversations, and send text or file attachments; the server authenticates requests, persists account and message data, and encrypts messages and uploaded files. The client also supports contact sorting/read tracking and file retrieval, which are indicated by the sampled code and API comments. Source excerpts are partial, so links for unsampled route behavior and startup wiring are not asserted.
Main entry points: message_system.py Message system · login_window.py Login and registration · server_auth.py API routes · transport.py Secure transport
Components 13
Desktop client
- Client application
client/main.py - Login and registration
client/login_window.py - Chat interface
client/chat_window.py - Secure transport
client/transport.py
HTTPS API
- API routes
server/server_auth.py - Accounts and contacts
server/server_auth.py
Message services
- Message system
server/message_system.py - Recipient key store
server/message_system.py - Message encryption
server/message_encryption.py - Encrypted file storage
server/message_system.py
Persistence
- PostgreSQL database
server/SQL/bluebubbles_database.sql - Encrypted file blobs
Other components
- User
Connections 16
- User → Client application: starts
- Client application → Login and registration: opens
- Login and registration → Secure transport: sends credentials
- Login and registration → Chat interface: opens after login
- Chat interface → Secure transport: requests data
- Secure transport → API routes: HTTPS requests
- API routes → Accounts and contacts: checks accounts
- API routes → Message system: dispatches messaging
- Accounts and contacts → PostgreSQL database: queries accounts
- Message system → Recipient key store: gets keys
- Message system → Message encryption: encrypts messages
- Message system → Encrypted file storage: stores or retrieves files
- Message system → PostgreSQL database: queries messages
- Recipient key store → PostgreSQL database: reads and writes keys
- Recipient key store → Message encryption: wraps data keys
- Encrypted file storage → Encrypted file blobs: reads and writes encrypted blobs