This project is a cloud based document processing system built with AWS and OpenTofu. The goal is to let a user upload a document, store it securely, process the file, save the results, and view the data through an API or dashboard. This project shows experience with cloud architecture, infrastructure as code, serverless processing, security, and reporting.
Users can upload documents such as invoices, receipts, claim forms, or policy documents. After a document is uploaded, the system stores the file in Amazon S3. A Lambda function then starts the processing workflow. The document data is extracted and saved to a database so it can be viewed later through an API or used in reports.
- A user uploads a document
- The file is stored in Amazon S3
- AWS Lambda starts the processing logic
- Step Functions manages the workflow
- Extracted data is saved to DynamoDB
- API Gateway provides access to the results
- A dashboard can show reports and trends
Amazon S3 stores the uploaded documents. AWS Lambda runs the processing code without needing to manage servers. API Gateway provides secure API endpoints for uploading files and viewing results. Step Functions controls the document processing steps. DynamoDB stores the processed document data. Cognito can be used for user login and authentication. CloudWatch stores logs and helps monitor the system. EventBridge can run scheduled jobs, such as reporting tasks.
OpenTofu is used to create and manage the AWS infrastructure. Instead of setting everything up manually in the AWS console, the infrastructure is written as code. This makes the project easier to rebuild, update, and understand. OpenTofu can manage resources such as S3 buckets, Lambda functions, IAM permissions, API Gateway routes, DynamoDB tables, and CloudWatch logs.
document-platform/
app/
services/
upload-api/
processor/
reporting/
terraform/
modules/
environments/
versions.tf
docs/
README.md