ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Free, open study platform for the AWS Certified Solutions Architect – Associate (SAA-C03) exam — original practice questions with per-option explanations, timed mock exams, a study-plan generator, flashcards, and SEO-optimized study guides.
CloudCertPrep is an independent study resource and is not affiliated with, endorsed by, or sponsored by Amazon Web Services.
npm install
npm run dev # http://localhost:3000
Copy .env.example to .env.local if you need to configure site URL,
analytics, Search Console verification, or ads. Everything works with the
placeholders unset.
| Command | Purpose |
|---|---|
npm run dev | Dev server |
npm run build | Production build (static generation) |
npm run start | Serve the production build |
npm run lint | ESLint |
npm run typecheck | tsc --noEmit |
npm test | Vitest unit tests (scoring, timer, persistence, schema, sitemap, study plan) |
npm run validate:content | Content-only test subset (question bank integrity) |
npm run test:e2e | Playwright end-to-end tests (requires a prior npm run build; the config starts next start on port 3100) |
First-time e2e setup: npx playwright install chromium.
src/
app/ # routes (App Router)
components/ # UI + interactive client components
lib/
content/
schema.ts # Zod question schema + bank validators
domains.ts # official SAA-C03 exam facts (verify before edits!)
topics.ts # practice topics -> /practice/[slug]
questions/ # question bank, one file per domain
services.ts # AWS service study guides -> /services/[slug]
articles.ts # in-depth articles -> /learn/[slug]
flashcards.ts # flashcard deck
exam.ts # answer evaluation, scoring, exam selection, timers
storage.ts # ProgressData model + localStorage store
use-progress.ts # useSyncExternalStore hooks over localStorage
study-plan.ts # study-plan generator
sitemap.ts # sitemap URL list (canonical, indexable only)
analytics.ts # privacy-first event adapter (no-op by default)
affiliate.ts # central affiliate-link config (empty by default)
site.ts # site name, nav, footer, trademark disclaimer
tests/
unit/ # Vitest
e2e/ # Playwright
src/lib/content/questions/
following the Question schema (see any existing entry for the shape).npm run validate:content:
id (saa-<area>-NNN) and slugoptionExplanations entrycorrectAnswers reference real option ids; single-choice = exactly 1https:// AWS documentation referencetopic exists in src/lib/content/topics.tsreviewStatus: "draft" while working; only "reviewed"/"published"
questions render on the site. Set lastReviewed when promoting.Run the checklist in docs/exam-verification.md whenever exam details or a
domain weighting changes.
metadataBase + per-page alternates.canonical./questions/[slug] (stem, per-option explanations, AWS references, related
links), discoverable via the /questions index, topic pages, and the
interactive practice UI.src/app/sitemap.ts lists only canonical, indexable URLs with
lastModified. User-specific pages (/mock-exam/[id], /results/[id]) are
noindex + robots.txt disallowed; practice filtering is client-side to
avoid thin URL permutations.WebSite/Organization site-wide, Article on guides/articles,
BreadcrumbList on all content pages.src/app/opengraph-image.tsx.NEXT_PUBLIC_GSC_VERIFICATION to the Search Console meta-tag token and
submit /sitemap.xml after deployment.practice_start, exam_complete, affiliate_click, …) flow through
src/lib/analytics.ts, which is a no-op until
NEXT_PUBLIC_ANALYTICS_PROVIDER is set (e.g. plausible + script tag).<AdSlot> renders nothing until NEXT_PUBLIC_ADS_ENABLED=true — enable
only after network approval and a consent flow.src/lib/affiliate.ts (empty by default)
and always rendered alongside a disclosure.docs/monetization.md for the full plan.NEXT_PUBLIC_SITE_URL to your production domain (used for canonicals,
sitemap, OG tags).NEXT_PUBLIC_GSC_VERIFICATION, then verify the property in
Google Search Console and submit https://<domain>/sitemap.xml.npm run build green.localStorage — no cross-device sync, and clearing site
data erases it. The ProgressStore interface in src/lib/storage.ts is the
seam for a future Supabase/Postgres backend.