How adiorany3/chatsecrets works
ChatSecrets is a Streamlit app for password-protected chat rooms, encrypted messages, and validated attachments. A user creates or joins a room with a shared password, then chats during a fixed 30-minute session; members can see presence, clear messages, or destroy the room. The UI delegates room and message state to transactional SQLite storage, while attachments are validated before storage and display. The README documents key provisioning, legacy-file archiving, and room cooldowns. Some UI-to-storage paths are not shown in the excerpts, so those links are omitted.
Main entry points: app.py Streamlit chat UI · storage.py Active SQLite data · attachments.py Attachment validation · composer-focus.js Composer focus helper
Components 16
Chat interface
- Streamlit chat UI
app.py - Message display
app.py - Message composer
app.py - Presence and refresh
app.py - Sound feedback
app.py - Composer focus helper
static/composer-focus.js
Room services
- Room and session management
storage.py - Presence tracking
storage.py - Clear and destroy
storage.py
Secure storage
- Key provisioning
storage.py - Encrypted message store
storage.py - Active SQLite data
storage.py - Legacy file archive
storage.py
Attachment support
- Attachment validation
attachments.py - Attachment display
app.py
Other components
- Chat participant
Connections 23
- Chat participant → Streamlit chat UI: uses
README.md - Streamlit chat UI → Key provisioning: provisions key
app.py - Streamlit chat UI → Room and session management: joins room
app.py - Streamlit chat UI → Presence tracking: updates presence
app.py - Streamlit chat UI → Clear and destroy: clears or destroys
app.py - Streamlit chat UI → Composer focus helper: loads script
app.py - Streamlit chat UI → Message display: renders
app.py - Streamlit chat UI → Message composer: renders
app.py - Streamlit chat UI → Presence and refresh: renders
app.py - Streamlit chat UI → Sound feedback: renders
app.py - Message display → Encrypted message store: displays messages
app.py - Message composer → Encrypted message store: submits messages
app.py - Presence and refresh → Presence tracking: requests presence
app.py - Room and session management → Active SQLite data: reads and writes
storage.py - Presence tracking → Active SQLite data: reads and writes
storage.py - Clear and destroy → Active SQLite data: deletes data
README.md - Key provisioning → Active SQLite data: checks existing data
storage.py - Encrypted message store → Active SQLite data: stores encrypted messages
storage.py - Encrypted message store → Attachment validation: validates attachments
storage.py - Legacy file archive → Active SQLite data: archives original bytes
storage.py - Streamlit chat UI → Attachment validation: validates uploads
app.py - Streamlit chat UI → Attachment display: renders attachments
app.py - Attachment display → Attachment validation: checks file data
app.py