Inspiration

People are unable to track the bills/invoices & are not able to manage their monthly expenditure.

What it does

Billify is a serverless invoice processing system that:

  • Lets users upload invoices via an API with their name and email.

  • Stores invoices in S3 and extracts expense data using AWS Textract.

  • Sends immediate email notifications after each upload.

  • Aggregates all expenses monthly and emails a consolidated report on the 1st of each month.

How we built it

I built this project using AWS CDK & Typescript leveraging AWS SDK v3. I have also integrated Jenkins for automated CI/CD process.

  • API Gateway exposes a REST endpoint for invoice uploads.

  • Lambda (uploadInvoice) handles file upload to S3 and sends invoice metadata to SQS.

  • Lambda (extractBillInfo) reads from SQS, extracts data using Amazon Textract, and stores it in a DynamoDB table.

  • Lambda (monthlyBillAggregator) runs monthly via EventBridge rule, aggregates user expenses, and sends reports via SES.

Challenges we ran into

  1. Accurate data extraction using Amazon Textract.
  2. Monthly aggregation timing.
  3. Configuring email notification.

Accomplishments that we're proud of

Accomplished integration of various AWS services such as Lambda, S3, Dynamo DB, Textract to achieve our task.

  • Built a fully serverless, scalable invoice processing system using AWS.

  • Successfully automated real-time expense tracking and monthly reporting.

  • Integrated multiple AWS services (S3, Lambda, Textract, SQS, DynamoDB, SES) seamlessly.

  • Achieved end-to-end automation with zero manual intervention.

What we learned

Learned to provision AWS resources using AWS CDK, configure them, and implement the Lamvda code using AWS SDK v3.

  • Gained hands-on experience with AWS serverless architecture and service integrations.

  • Learned how to use Textract for document data extraction.

  • Understood best practices for asynchronous workflows using SQS and EventBridge.

  • Improved skills in AWS, CDK, and Typescript.

What's next for Billify - Invoice Processor

  • Create a login facility (authentication & authorisation) for the users.
  • Implement user authentication and a simple dashboard to view past invoices.

Built With

Share this project:

Updates