Currency Normalization Project

Objective

Developed a system to normalize property sales data, converting prices from different currencies to USD and storing the results in DynamoDB, with processed CSV records saved in a secondary S3 bucket.

Technologies Used

  • AWS Lambda: For serverless data processing
  • AWS S3: For storing raw and processed data
  • AWS DynamoDB: For storing processed financial records
  • AWS CDK: For infrastructure as code
  • Matplotlib: For data visualization
  • ExchangeRatesAPI: For real-time currency conversion

Key Features

  • Automated Data Processing: Triggered by S3 events, the Lambda function processes CSV files, converts prices to USD, and stores the updated records in DynamoDB.
  • Real-Time Currency Conversion: Utilized the ExchangeRatesAPI to fetch the latest exchange rates for accurate conversions.
  • Data Visualization: Generated a plot of the top 10 most expensive houses, which is saved in the processed S3 bucket.
  • Efficient Packaging: Packaged dependencies including numpy, matplotlib, and requests in a Lambda Layer for streamlined deployment.

Project Steps

  • CDK Configuration: Set up S3 buckets, DynamoDB table, and Lambda functions using AWS CDK.
  • Lambda Function: Wrote a function to read, process, and upload data, including real-time currency conversion and data visualization.
  • Layer Creation: Packaged necessary libraries using Docker to ensure compatibility with AWS Lambda.
  • Testing & Deployment: Deployed the solution, tested with sample CSV files, and validated the results in S3 and DynamoDB.

Impact

This project not only enhanced my skills in AWS services and serverless architecture but also provided practical experience in automating data workflows and integrating third-party APIs.

Skills Demonstrated

AWS Lambda Amazon SQS Amazon DynamoDB Amazon S3 AWS CDK Python Data Processing Data Visualization API Integration Serverless Architecture
Back to Projects