2. Construction Engineering Mini Apps
Overview
A set of custom mini applications developed for a construction engineering company, designed to streamline seismic engineering analysis and reporting. The solution leverages a modern single-page application for the user interface, serverless backend processing, on-demand computations, and automated video generation using matplotlib for visualization.
Architecture
The application follows a serverless architecture pattern on AWS, separating user interaction, API processing, and asynchronous video generation:
Components:
Vue.js SPA (S3): Frontend application hosted as a static website on S3, providing fast load times and responsive user experience
API Lambda: Handles seismic engineering calculations, user requests, and orchestrates processing workflows
SQS Queue: Decouples API requests from video generation, enabling asynchronous processing and improved scalability
Video Generator Lambda: Processes queued requests to generate seismic analysis visualizations using matplotlib
Video Storage (S3): Stores generated videos with pre-signed URLs for secure access
DynamoDB: Stores user information, processing requests, video metadata, and S3 object references
Key Features
Seismic Engineering Analysis: Perform complex calculations and visualize results with interactive graphs tailored for seismic studies
Automated Video Generation: Generate high-quality seismic analysis videos on-demand using matplotlib for data visualization and chart rendering
Single Page Application: Fast, responsive user experience built with Vue.js, hosted on S3 for optimal performance
Serverless Architecture: Efficient backend processing using AWS Lambda, ensuring scalability and cost-effectiveness
Asynchronous Processing: SQS-based queue system enables reliable video generation without blocking API responses
Rapid Development: Delivered in just one week, including full CI/CD pipeline and infrastructure-as-code setup with Terraform
Automated Testing: Comprehensive test coverage for both backend and frontend components to ensure reliability and maintainability
Technical Highlights
The video generation component leverages matplotlib’s powerful visualization capabilities to create professional seismic analysis outputs. The Lambda function processes calculation results, generates time-series plots, spectral analysis charts, and structural response diagrams, then combines them into video format for easy sharing and presentation.
Generated videos are stored in S3 with pre-signed URLs for secure, time-limited access. The asynchronous architecture ensures that computationally intensive video generation doesn’t impact API responsiveness, while DynamoDB tracks processing status and S3 object references, enabling real-time progress updates and efficient video retrieval.