Create one private bucket for the project.
Suggested bucket name:
cognitive-coach-<your-name>-<account-id>
Recommended prefixes:
uploads/
transcripts/
reports/
Configuration:
uploads/, transcripts/, and reports/ after 7 days for the demo environment.Create a table named:
CognitiveCoachJobs
Table design:
| Attribute | Type | Purpose |
|---|---|---|
jobId | String partition key | Unique job identifier |
status | String | UPLOADED, TRANSCRIBING, ANALYZING, COMPLETED, or FAILED |
inputType | String | audio or text |
inputS3Key | String | Uploaded file path |
reportS3Key | String | Final report path |
createdAt | String | ISO timestamp |
updatedAt | String | ISO timestamp |
errorMessage | String | Failure reason if any |
Use on-demand capacity mode for a small bootcamp project.
Create a Lambda execution role with permissions for:
CognitiveCoachJobs table.Create a Step Functions role with permissions for:
Do not use AdministratorAccess for the final project roles. For the final report, keep the IAM design aligned with least-privilege principles.
Confirm:
uploads/.jobId as the partition key.