feat(web): Nightjar web app - Plaud-style record/transcribe/summarise UI
A runnable, self-hosted web interface so the whole workflow can be tested end to end: record or upload audio in the browser, watch it transcribe and summarise, browse a library, play back, and export. What changed: - server/app/store.py: SQLite + on-disk audio storage for recordings (stdlib only). - server/app/pipeline.py: background task audio -> transcribe -> summarise via the existing provider layer, updating status (queued/transcribing/summarising/done/error). - server/app/main.py: web API - POST upload, list, detail, audio (Range), delete, and export (txt/md/srt/vtt/json) - and serves the SPA at /. - server/app/web/: Plaud-style single-page UI (index.html, styles.css, app.js). Sidebar library, in-browser recording (MediaRecorder) + file upload, live status polling, audio player, summary (overview/key points/actions), timestamped transcript, exports. - server/Dockerfile + README: two-minute run instructions (default provider: Groq free tier for both Whisper + LLM), and a Docker option. - config: env prefix switched OPENSCRIBE_ -> NIGHTJAR_ to match the brand and the site tutorials; .env.example rewritten with a ready Groq quick-start. - state/TODO: web app recorded as done. Why: - User asked for a Plaud-like web interface to test how it all works. Nothing testable existed before (marketing site is a brochure; pipeline was unwired). This delivers a real, runnable product demo and effectively lands M5/M6 for the HTTP providers. Notes: - Slim by design: AI is offloaded to the configured provider, so no local ML deps needed for the demo. Byte-compiles clean; JS passes node --check. Local faster-whisper still needs its model (M5) for the fully-offline path. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
b9e56d0825
commit
19c3e156a0
10 changed files with 501 additions and 76 deletions
|
|
@ -65,6 +65,11 @@
|
|||
|
||||
## Done
|
||||
|
||||
- [x] Nightjar web app (Plaud-style): browser record/upload -> transcribe -> summarise ->
|
||||
library, playback, transcript, summary, export. FastAPI + vanilla-JS SPA in `server/`,
|
||||
wired to the provider layer (Groq/OpenAI/Anthropic/local). Runnable demo; this is also
|
||||
the practical landing of M5/M6 for the HTTP providers. Config prefix switched to
|
||||
NIGHTJAR_. (PR: feature/web-app, 2026-07-06)
|
||||
- [x] Dev testing + emulation harness - native unit tests (wav/range), Wokwi emulator,
|
||||
cppcheck + OpenAPI validation in CI, docs/testing.md (PR #3, 2026-07-03).
|
||||
- [x] M2 On-device WiFi + REST API - WiFi/SoftAP + mDNS + config(NVS) + device REST API
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue