⚠️ Disclaimer: I’m using AI (ChatGPT) to help guide me through this project and to assist with writing these blog posts. The project is still hands-on — I’m doing all the setup, and AWS work myself — but AI is acting as a mentor and documentation assistant along the way.
Why This Project?
I’m currently preparing for the AWS Solutions Architect Associate (SAA-C03) certification. Instead of only watching videos or reading notes, I wanted a hands-on project that would:
- ✅ Help me practice real AWS services in a practical way.
- ✅ Keep me motivated through daily progress.
- ✅ Double as a tool I can use to study for the exam itself.
That’s how I came up with this project: build a flashcards web app for AWS exam prep, hosted entirely on AWS.
The Plan
The idea is simple:
- A web app where I can log in, flip through AWS flashcards, and track my study progress.
- The app itself will run on AWS services I need to know for the exam (S3, CloudFront, DynamoDB, Cognito, API Gateway, Lambda, CloudWatch, etc.).
- I’ll build it step by step over ~6 weeks, dedicating ~10–15 hours per week.
Rough Roadmap
- Week 1: Environment setup + “Hello AWS Flashcards” app running locally and deployed to AWS.
- Week 2: Add a backend API with DynamoDB and Lambda.
- Week 3: Add user authentication with Cognito.
- Week 4: Enhance the app (progress tracking, multiple cards, UI polish).
- Week 5: Automate deployment with GitHub + Amplify (CI/CD).
- Week 6: Add monitoring, scaling, and optimizations.
Extras later: spaced repetition algorithm, user-created flashcards, image uploads, etc.
How I’ll Track Progress
To keep myself organized:
- 📋 Trello board → each week’s tasks broken into cards with labels.
- 📝 Daily logs (like this blog) → a short write-up of what I worked on, issues I faced, fixes, and time spent.
- 🔁 Repeatable template → so every entry is consistent:
- ✅ Accomplishments
- ⚠️ Issues + Fixes
- ⏱️ Time spent
- 🎯 Next steps
Why Blog About It?
- Writing forces me to document what I learn.
- It helps me track my journey in a way that’s easy to look back on.
- Maybe it inspires others who are studying for AWS certifications to try hands-on projects instead of just videos and books.
What’s Next?
I’ve already completed:
- ✅ Session 1 (Environment setup)
- ✅ Session 2 (React “Hello AWS Flashcards” app running locally)
Next up is:
- 🎯 Session 3 — Deploy the app to AWS (S3 + CloudFront).
📓 AWS Flashcards App – Week 1, Day 1 Log
✅ Accomplishments
-
Session 1 – Environment Setup
- Verified and installed: Node.js, npm, AWS CLI, AWS CDK, Git.
- Fixed npm/PowerShell script execution issue.
- Installed Git for Windows and added it to PATH.
- Created clean project structure:
aws-flashcards/ ├─ frontend/ (React app) ├─ cdk/ (AWS CDK scripts, later) ├─ backend/ (Lambda/API code, later)
- Configured VS Code with recommended extensions (Prettier, GitLens, React snippets, AWS Toolkit).
-
Session 2 – Starter React App
- Created React app inside
frontend/
. - Replaced
App.js
with Hello AWS Flashcards component. - Ran
npm start
→ confirmed app works locally. - Successfully tested flashcard flip on click. 🎉
- Created React app inside
⚠️ Issues Encountered & Fixes
-
npm not working (
npm -v
blocked by PowerShell security policy).- Error:
npm.ps1 cannot be loaded because running scripts is disabled
-
Fix: Changed execution policy:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
-
Git not recognized (
git init
failed).- Error:
'git' is not recognized as a cmdlet...
- Fix: Installed Git for Windows → added to PATH.
- Error:
-
Folder structure uncertainty.
-
Fix: Created
frontend/
,cdk/
,backend/
upfront for clarity and future-proofing.
-
Fix: Created
⏱️ Time Spent
- Planning & Trello setup → ~1 hr
- Environment setup → ~2.5 hrs
- VS Code config & project structure → ~1.5 hrs
- React app setup & test → ~1 hr
Total today: ~6 hours
🎯 Next Steps (Session 3 – Deploy to AWS)
- Build React app for production (
npm run build
). - Create S3 bucket → enable static hosting.
- Upload React build to S3.
- Optional: Add CloudFront distribution for caching and custom domain with Route 53.
Top comments (0)