How bryceliu17/dashcam-diary works
Dashcam Diary records video and audio on Android, retaining local copies until uploads succeed, then manages the shared archive through an ASP.NET API and browser dashboard. The main workflow is record and segment media, preserve metadata and GPS locally, queue/retry uploads, store media and metadata on the server, and browse or export it. Separate product branches provide live camera and device telemetry, archive migration, and audio transcription. The README documents these capabilities; sampled source confirms API, dashboard, migration, and transcription responsibilities, but does not expose all Android internals or endpoint wiring.
Main entry points: Program.cs API and routes · App.jsx Archive dashboard · recording Media recording · ArchiveMigrationService.cs Archive migration
Components 17
Android clients
- Dashcam app
android-app/app/src/main/java/com/example/dashcam - Media recording
android-app/app/src/main/java/com/example/dashcam/recording - GPS tracking
android-app/app/src/main/java/com/example/dashcam/location - Local media data
android-app/app/src/main/java/com/example/dashcam/data - Upload queue
android-app/app/src/main/java/com/example/dashcam/upload/UploadWorker.kt
Server archive
- API and routes
server/Dashcam.Api/Program.cs - Archive models
server/Dashcam.Api/Models - Server metadata
server/Dashcam.Api/Data/DashcamDbContext.cs - Device live control
server/Dashcam.Api/Services/DeviceWebSocketHub.cs - Migration uploads
server/Dashcam.Api/Services/MigrationUploadService.cs - Archive migration
server/Dashcam.Api/Services/ArchiveMigrationService.cs - Media archive
server/Dashcam.Api - Audio files
server/Dashcam.Api
Web dashboard
- Archive dashboard
web-dashboard/src/App.jsx
Archive services
- Transcription worker
transcription-worker/app.py
Other components
- Phone operator
- Archive user
Connections 21
- Phone operator → Dashcam app: operates
- Dashcam app → Media recording: starts recording
- Media recording → Local media data: saves segments
- GPS tracking → Local media data: stores GPS tracks
- Media recording → GPS tracking: records location
- Local media data → Upload queue: queues finished media
- Upload queue → API and routes: uploads media
- API and routes → Media archive: stores media
- API and routes → Server metadata: reads and writes metadata
- Server metadata → Archive models: maps records
- Archive dashboard → API and routes: requests archive operations
- Archive user → Archive dashboard: browses and manages
- Archive dashboard → API and routes: requests live control
- API and routes → Device live control: dispatches device control
- Archive dashboard → Migration uploads: sends migration chunks
- Migration uploads → Archive migration: completes upload session
- Archive migration → Server metadata: imports metadata
- Archive migration → Media archive: imports media
- API and routes → Transcription worker: requests transcription
- Transcription worker → Audio files: reads audio
- Archive dashboard → API and routes: requests transcript