How team-arpanet/project works
This browser extension describes images aloud. The user holds an image briefly for a short description or longer for a detailed one; the content script requests analysis, the background script fetches the image and sends it to the server, and the returned text is spoken. The popup configures hold durations. The server validates uploads and tokens, builds a prompt, and calls OpenAI. README documentation identifies additional server credentials and prompt configuration; those files were not sampled, so their internal behavior is not expanded here.
Main entry points: background.js Background dispatch · server.js Upload validation · content.js Analysis request and speech · popup.js Hold settings
Components 16
Browser extension
- Image hold interaction
extension/content.js - Analysis request and speech
extension/content.js - Hold settings
extension/popup.js - Background dispatch
extension/background.js - Spoken description
extension/content.js
Analysis server
- Upload endpoint
server/server.js - Upload validation
server/server.js - Prompt configuration
server/AIParams.json - Auth tokens
server/authenticated.json - Image description
server/server.js - OpenAI API key
- Server credentials
AI service
- OpenAI vision
Other components
- User
- Web image
- Chrome sync storage
Connections 20
- User → Image hold interaction: holds image
extension/content.js - Web image → Image hold interaction: selects target
extension/content.js - Image hold interaction → Analysis request and speech: triggers analysis
extension/content.js - User → Hold settings: sets durations
extension/popup.js - Hold settings → Chrome sync storage: saves durations
extension/popup.js - Chrome sync storage → Image hold interaction: loads durations
extension/content.js - Analysis request and speech → Background dispatch: sends request
extension/content.js - Background dispatch → Web image: fetches image
extension/background.js - Background dispatch → Upload endpoint: posts image
extension/background.js - Upload endpoint → Upload validation: routes upload
server/server.js - Upload validation → Auth tokens: checks token
server/server.js - Upload validation → Prompt configuration: selects prompt
server/server.js - Upload validation → OpenAI vision: sends image prompt
server/server.js - OpenAI API key → OpenAI vision: authenticates
- Server credentials → Upload endpoint: configures TLS
- OpenAI vision → Image description: returns text
server/server.js - Image description → Background dispatch: returns JSON
extension/background.js - Background dispatch → Analysis request and speech: returns text
extension/background.js - Analysis request and speech → Spoken description: speaks result
extension/content.js - Spoken description → User: plays audio
extension/content.js