Build and ship a production-ready full-stack AI-assisted app — FastAPI + React + MongoDB + AWS + Terraform + GitHub Actions
This is the official curriculum repo maintained by beCloudReady.
A job-ready portfolio project deployed to AWS — built entirely with AI-assisted (vibe) coding:
| Layer | Tech |
|---|---|
| Frontend | React |
| Backend | FastAPI (Python) |
| Database | MongoDB |
| Auth | JWT |
| Infrastructure | Terraform on AWS |
| CI/CD | GitHub Actions |
| AI Tools | Cursor, Claude, Claude Code, GitHub Copilot |
By the end you'll have a running production app on AWS — with tests, JWT auth, a CI/CD pipeline, and IaC deployment — all in your GitHub portfolio.
| Chapter | Topic | What's Covered |
|---|---|---|
| 01 — Vibe Coding | Fundamentals | Prompting strategies, building a FastAPI app with AI |
| 02 — Backend & Databases | Backend | Employee CRUD API, MongoDB integration |
| 03 — Testing | TDD | TDD cycle, writing tests with AI assistance |
| 04 — Security | Auth | API key security, JWT authentication |
| 05 — Infrastructure | IaC | Terraform fundamentals, provisioning AWS resources |
| 06 — Cloud & CI/CD | AWS | EC2, Lambda, API Gateway, S3, GitHub Actions |
| 07 — React | Frontend | React labs, component architecture, full-stack integration |
| Project | Stack | Description |
|---|---|---|
| 01 — Task Tracker | React + Lambda + MongoDB | Kanban-style task board — full-stack capstone |
| 02 — Notice Board | React + S3 + Lambda | Assignment project with 3 difficulty tiers |
Clone this repo and get your environment ready before the bootcamp starts:
git clone https://github.com/becloudready/vibe-code-to-prod.git
cd vibe-code-to-prodPrerequisites:
- Basic programming knowledge (Python or JavaScript)
- AWS account (free tier works)
- Installed: AWS CLI, Terraform, Node.js 18+, Git
- Students and fresh graduates entering the software job market
- Job seekers preparing for full-stack or DevOps engineering roles
- Developers stuck at tutorial level who want to build real, deployable projects
- Anyone using AI coding tools (Cursor, Claude, Copilot) but missing the engineering fundamentals employers expect
chapters/ # Course content, one folder per chapter
01-vibe-coding/
02-backend-databases/
03-testing/
04-security/
05-infrastructure/
06-cloud-cicd/
labs/ # Step-by-step lab instructions
scripts/ # Helper scripts
starter-apps/ # Starter code for labs
terraform/ # Terraform templates
07-react/
labs/ # React hands-on labs
rapidfire-questions/
projects/ # Capstone and assignment projects
01-task-tracker/
02-notice-board/
When you run a shared AWS account with multiple students, the only thing keeping your cohort organized (and cleanup-able) is consistent naming and tagging.
Every AWS resource you create — in Console or via Terraform — must start with:
student-<your-slug>-
Your slug is the lowercase-hyphenated version of your name that the cohort admin assigned (e.g. alice-johnson, bilal-joud). It matches the prefix of your IAM username and the value you pass as student_name= in any project's Terraform.
The IAM policy enforces this for S3, Lambda, DynamoDB, CloudWatch Logs, and IAM roles — anything you try to create outside your namespace will be denied.
Two tags on every resource you create:
| Key | Value | Example |
|---|---|---|
student |
your slug | alice-johnson |
cohort |
the cohort name your admin gave you | fullstack-aws-batch-a |
For Terraform-managed resources: every project's provider "aws" block uses default_tags, so this is automatic — you only supply student_name= and cohort= as variables. Nothing else to do.
For Console-created resources: add both tags manually in the "Tags" step of the Create wizard. Most Console flows surface this step before the final "Create" button. If you skip it, the resource still works, but the cohort cleanup tool may miss it (and that often translates to "your instructor pings you to delete it manually before billing closes").
The instructor runs tools/cleanup-student-resources.py at the end of the cohort to remove everything. It finds your resources two ways:
- By name — anything matching
student-<your-slug>-* - By tag — anything tagged
student=<your-slug>
Either one finds you. Both is belt-and-suspenders. Neither leaves you on the hook for a forgotten Lambda still racking up free-tier invocations next month.
beCloudReady bridges the gap between ambitious talent and fast-moving startups — practical training, real projects, no fluff.
- 500+ graduates placed at companies including Oxford Properties, Bell, ConnectWise, Softchoice
- 94% placement rate
- 3× average salary growth reported by graduates
Learn more → becloudready.com | All Programs
MIT