Christine’s Status Report for 3/29

✅ What I Did This Week

Chunked Image Upload

  • After discussing with Vicky, we realized that Blues Notehub’s 8KB file size limit requires us to use chunked uploads for images (~45KB).
  • Initially researched S3’s multipart upload, but it requires larger file sizes, so we decided to implement the logic from scratch.

Overview of Chunked Upload Protocol (details in PR description):

  • Splitting: Dashcam splits the image into ≤8KB chunks, each containing metadata (image_idchunk_idtotal_chunks, and data).
  • Uploading: Chunks are uploaded individually to the backend via API Gateway → Lambda → temporary S3 bucket.
  • Tracking: Lambda tracks received chunks in DynamoDB to monitor progress.
  • Assembly: Once all chunks are uploaded, a Lambda function assembles the image and stores it permanently in S3. Temporary chunks are cleaned up afterward.

Progress on Implementation:

  • I’ve set up the skeleton for the entire process: splitting, uploading, tracking, and preparing for assembly.
  • Still need to write the Lambda function for assembling the image and test the full workflow.

Improved Observability

  • Added more logging using CloudWatch X-Ray to monitor API Gateway usage in real time.
    • Tracks failure rates and latency to help identify performance bottlenecks.

🚧 What I’m Working on Next Week

  1. Interim Demo
  2. Finish Implementing Chunked Upload
    • Write and test the Lambda function that assembles image chunks into a complete image.
    • Debug and test the entire process end-to-end.
  3. Integrate Chunked Upload with Dashcam System
    • Work on integrating the chunked upload process with the dashcam system.
    • Coordinate with the team to ensure everything works smoothly.

📌 Overall Status

  • On Track: The chunked image upload is the most complex part of the system, but we have a solid design in place. While there’s still work left to finish and test the implementation, I’m confident we’re moving in the right direction.

Leave a Reply

Your email address will not be published. Required fields are marked *