Skip to content

Store your receipts in the ☁️ instead of bloating your wallet! 💸

Notifications You must be signed in to change notification settings

roertbb/paragone

Repository files navigation

Paragone

Store your receipts in the ☁️ instead of bloating your wallet! 💸

How it works?

Architecture

The whole application architectures consist of 2 stacks:

ParagoneFrontendStack

Stores frontend app built with React in Amazon S3 using Amazon CloudFront as CDN

ParagoneStack

Handles the backend for the applications.

  • GraphQL API serves as an entry point for the client app and uses Cognito for authentication.
  • User gets presigned URL to the S3 bucket to store (getUploadUrl) and retrieve (getDownloadUrl) receipt images.
  • Inserting new object into the bucket triggers the asynchronous processing. The sendReceiptToTextract Lambda stores the image metadata in DynamoDB and starts the image processing using Textract.
  • Once the analysis is completed, the sendTextractResultToDynamo Lambda is triggered based on SNS notification. It retrieves the text detection results from Textract, performs naive heuristics to get the price and stores it in DynamoDB.
  • When the data is inserted or updated in DynamoDB, it triggers receiptProcessed Lambda performing GraphQL mutation. It triggers the GraphQL subscription, pushing the update to the web app client.

Demo

About

Store your receipts in the ☁️ instead of bloating your wallet! 💸

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages