| Day | Task | Start Date | Completion Date | Reference Material |
|---|---|---|---|---|
| 2 | - Review the admin-approved architecture + Confirm the main flow from frontend to document-processing workflow + Check services still included in the diagram: CloudFront/Amplify, Cognito, API Gateway, Lambda, S3, EventBridge, SQS/DLQ, Step Functions, Textract, AI Proxy, DynamoDB, CloudWatch/X-Ray, SNS/SES, IAM/KMS/Secrets Manager/CloudTrail/Budgets/SAM + Remove services that are no longer part of the current architecture | 06/29/2026 | 06/29/2026 | AWS Architecture Center AWS Serverless |
| 3 | - Update the assignment matrix and service ownership map + Split the work into five modules: Integration/Workflow, AI, Frontend/Auth, Data, Ops/Security/IaC + Assign an owner for each service/component + Define deliverables, evidence, and cleanup responsibility for each member | 06/30/2026 | 06/30/2026 | AWS Well-Architected Framework AWS Shared Responsibility Model |
| 4 | - Lock the data contract, status model, and API contract + Standardize the JSON schema for document results + Finalize statuses: UPLOADED, QUEUED, PROCESSING, EXTRACTED, REVIEW_REQUIRED, FAILED, CORRECTED, APPROVED+ Write API contracts for upload-url, list documents, get document detail, and review update | 07/01/2026 | 07/01/2026 | API Gateway DynamoDB S3 Object Key Naming |
| 5 | - Design the end-to-end processing workflow + Document the S3 ObjectCreated -> EventBridge -> SQS/DLQ -> Job Starter Lambda -> Step Functions flow + Finalize the state machine: validate, Textract, AI Proxy, validate JSON, confidence/status, save result, alert + Add retry/catch behavior for Textract, external AI timeout/rate limit, invalid JSON, and DynamoDB/S3 write failure | 07/02/2026 | 07/02/2026 | S3 EventBridge Notifications Amazon SQS DLQ Step Functions Error Handling |
| 6 | - Update security, observability, governance, and cost control + Design least-privilege IAM, KMS encryption baseline, and Secrets Manager for the external AI API key + Finalize CloudWatch logs/alarms, X-Ray tracing, SNS/SES alerts, CloudTrail audit, and AWS Budgets + Write AWS SAM deploy/cleanup checklist | 07/03/2026 | 07/03/2026 | IAM Best Practices AWS Secrets Manager CloudWatch AWS SAM |
| 7 | - Complete the test plan, demo script, and Definition of Done + Write test cases: login, clear invoice upload, low-quality receipt, invalid file type, external AI timeout/rate limit, invalid JSON, DLQ path, and cleanup + Prepare a 7-10 minute demo script + Finalize the evidence checklist for each member | 07/04/2026 | 07/04/2026 | Amazon Textract AnalyzeExpense AWS X-Ray AWS Budgets |
Finalized the admin-approved DocuFlow AI architecture:
documentId, initial metadata, and upload URL.result.json.Updated the five-person assignment matrix:
Locked shared responsibilities:
documentId, userId, status, stateName, and errorType, but must not log secrets or sensitive payloads.Completed the data contract and status model:
documentId, userId, fileName, documentType, status, vendorName, invoiceDate, currency, totalAmount, taxAmount, confidenceScore, reviewReasons, aiProvider, normalizationMethod, s3RawPath, s3ProcessedPath, createdAt, and updatedAt.UPLOADED, QUEUED, PROCESSING, EXTRACTED, REVIEW_REQUIRED, FAILED, CORRECTED, and APPROVED.raw/{userId}/{documentId}/original and processed/{userId}/{documentId}/result.json.Completed the initial API contract:
POST /documents/upload-url creates a presigned URL.GET /documents lists documents by user/status.GET /documents/{documentId} returns status and extracted fields.POST /documents/{documentId}/review corrects or approves reviewed results.Finalized the Step Functions workflow:
ValidateInput -> UpdateStatusProcessing -> RunTextractAnalyzeExpense -> ParseTextractOutput -> CallAIProxyLambda -> ValidateNormalizedJson -> CalculateConfidenceAndStatus -> SaveMetadataToDynamoDB -> SaveProcessedJsonToS3 -> PublishSNSAlert when needed.FAILED, sends an alert, and keeps log/evidence for debugging.Updated the test plan and demo script:
EXTRACTED status, and DynamoDB/S3 Processed result.REVIEW_REQUIRED status and reviewer/admin alert.FAILED.errorType.Locked the Definition of Done: