How thisgmailisminelilfella-dev/aprture-mibole works
Aperture Phone is a local, phone-first market-analysis companion: a user unlocks the browser interface, chooses a market or symbol, and requests a paper-only scan. The server fetches daily prices, the quant module produces illustrative trend signals, and successful results are saved for later display; an optional OpenRouter summary can supplement them. PIN-based sessions, persistent pause state, encrypted key management, and the installable cached shell support the workflow. The graph follows the shown client calls and module references; scan details and several UI capabilities are documented in the README but not fully sampled.
Main entry points: server.js HTTP server · index.html Browser shell · app.ts Market interface · key-pool.mjs Encrypted key pool
Components 12
Phone experience
- Browser shell
public/index.html - Market interface
src/app.ts - Shell cache
public/sw.js
Scan service
- HTTP server
server.js - Trend analysis
lib/quant.mjs
Access and keys
- PIN utilities
lib/pin.mjs - Encrypted key pool
lib/key-pool.mjs - PIN change command
tools/change-pin.mjs
Local state
- Local SQLite
server.js
External services
- Yahoo Finance
- OpenRouter
Other components
- Phone user
Connections 15
- Phone user → Browser shell: opens
README.md - Browser shell → Market interface: loads
README.md - Market interface → HTTP server: requests state and scans
src/app.ts - HTTP server → Market interface: publishes updates
src/app.ts - Browser shell → Shell cache: registers shell cache
README.md - HTTP server → Local SQLite: reads and writes
server.js - HTTP server → PIN utilities: checks and hashes PINs
server.js - HTTP server → Encrypted key pool: creates and manages
server.js - PIN change command → PIN utilities: verifies and hashes
tools/change-pin.mjs - PIN change command → Local SQLite: updates PIN settings
tools/change-pin.mjs - HTTP server → Yahoo Finance: fetches price history
README.md - HTTP server → Trend analysis: analyzes closes
server.js - HTTP server → Encrypted key pool: requests summaries
README.md - Encrypted key pool → OpenRouter: requests model summary
lib/key-pool.mjs - HTTP server → Local SQLite: persists snapshots and pause
README.md