Back to Portfolio

Technical Implementation

An example of Technical Implementation at Agile Creative Labs

Showcasing practical implementation examples from mobile app development work.

Database Implementation

While I was coding the steps functionality, I realized that I needed a way to reference the videos for each step. I added a junction table because I needed unique videos reference for each step and to enable proper ordering of multiple video clips within individual steps.

Database Implementation

Database Schema and Relationships:

Core Tables:
  • adventures - Contains main adventure records
  • steps - Individual steps within adventures (up to 7 per adventure)
  • videos - Video files and metadata
  • step_videos - Junction table connecting steps to videos (many-to-many relationship)
  • thumbnails - Thumbnail images linked to videos
Key Relationships:
  • Adventures have a one-to-many relationship with steps
  • Steps connect to videos through the step_videos junction table, allowing multiple video clips per step with ordering
  • Each video has a one-to-one relationship with a thumbnail
Thumbnail Generation:

When a video recording stops, the system automatically generates a thumbnail by:

  • 1. Taking a frame capture from the video at a smart-calculated time (default 1 second)
  • 2. Using intelligent seek time calculation that adapts to video duration
  • 3. Resizing the captured frame to 1/4 of the original dimensions for optimal storage
  • 4. Converting the frame to a JPEG format with 80% quality
  • 5. Storing the thumbnail as a base64-encoded data URL in the database

Final Internship Presentation

My final presentation highlighting key contributions during the internship, including designing decision diagrams, implementing video recording features, and refactoring a class from a monolithic controller to a separation-of-concerns model.