✅ Progress This Week
- Finished the initial implementation of the match upload layer (PR Link)
This layer handles the ingestion, processing, and storage of detected license plate matches. The flow is as follows:-
Dash cams upload images via pre-signed S3 URLs
-
An S3 event triggers a Lambda function to:
-
Extract GPS and timestamp metadata from image EXIF
-
Store the metadata in the
match_logs
table in DynamoDB
-
-
Architecture: S3 → S3 Event → Lambda → DynamoDB (match_logs)
-
-
Documented the full flow in the PR description, covering:
-
Pre-signed URL generation
-
Upload handling via S3 and Lambda
-
Metadata extraction and logging
-
All changes are fully covered by tests
-
This gives a scalable and decoupled foundation for matching plates to images and metadata.
🚧 What I’m Working on Next Week
-
Dash Cam Integration
-
Begin integrating the new match upload layer with the dash cam system
-
Revisit existing endpoints (
/detections
, S3 upload) to determine required changes -
Prioritize approaches that minimize friction for the dash cam side
-
Coordinate with others for schema consistency across services
-
-
Observability Improvements
-
Expand CloudWatch logging:
-
Currently tracks S3 and Lambda activity
-
Will add API Gateway request logs, performance metrics, and error tracking
-
-
Goal: improve visibility into API usage, failure rates, and overall latency
-
📌 Overall Status
Currently on track. The core functionality for match upload is complete and tested. Integration with the dash cam system will be the main challenge next week.