DEV Community

Smaylle Jhonson
Smaylle Jhonson

Posted on

Building an AWS Flashcards App to Study for the SAA-C03 Exam

⚠️ 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. 🎉

⚠️ Issues Encountered & Fixes

  1. 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
    
  1. Git not recognized (git init failed).

    • Error: 'git' is not recognized as a cmdlet...
    • Fix: Installed Git for Windows → added to PATH.
  2. Folder structure uncertainty.

    • Fix: Created frontend/, cdk/, backend/ upfront for clarity and future-proofing.

⏱️ 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)