ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기AI-powered internship navigation platform for university students: career direction, CV optimization, job discovery, networking, interview prep, and application tracking.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
PathFinder is a career operating system for university students. It guides them
through the entire internship journey — defining a career direction, optimizing
their CV, discovering roles, networking strategically, preparing for interviews,
and tracking applications — where every action feeds one persistent Career
Profile that the AI mentor reasons over.
Under the hood, each phase emits typed career events; a derived Career
Profile, a progress engine, and a recommendation engine project over that event
stream to drive cross-phase intelligence and the AI mentor's memory.README 전문 보기 ↗PathFinder is a career operating system for university students. It guides them through the entire internship journey — defining a career direction, optimizing their CV, discovering roles, networking strategically, preparing for interviews, and tracking applications — where every action feeds one persistent Career Profile that the AI mentor reasons over.
| Phase | Surface | What it does |
|---|---|---|
| 1 — Career Direction | /direction | Wizard + open-ended explore mode → a direction statement with a specificity score |
| 2 — CV Optimizer | /cv | Upload PDF/DOCX, ATS audit, job-match scoring, skill-gap project ideas |
| 3 — Job Discovery | /jobs | Search (Adzuna / JSearch), paste job descriptions, compatibility analysis |
| 4 — Networking | /networking | AI outreach (recruiter / hiring manager / peer), coffee-chat prep, referral packages, LinkedIn analysis |
| 5 — Interview Prep | /interview | NeetCode/LeetCode tracker, STAR story builder, AI question generator, company briefings |
| 6 — Application Tracker | /tracker | Kanban pipeline + consistency dashboard |
Under the hood, each phase emits typed career events; a derived Career Profile, a progress engine, and a recommendation engine project over that event stream to drive cross-phase intelligence and the AI mentor's memory.
localStorage and hydrated from the DB on loginjose) + PBKDF2 password hashing, httpOnly cookiestext-embedding-3-small for RAG retrievalpdf-parse (PDF), mammoth (DOCX)npm install
cp .env.example .env.local # then fill in the values below
npm run dev
Open http://localhost:3000.
The app is built to run with missing keys:
localStorage-only state. Sign-up and
cross-device persistence require Supabase.Supabase and JWT are resolved lazily, so npm run build succeeds with no env at all.
See .env.example for the full list. The important ones:
| Variable | Required for | Notes |
|---|---|---|
OPENAI_API_KEY | AI features | Without it, AI routes return fallbacks |
NEXT_PUBLIC_SUPABASE_URL | Persistence / auth | Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Persistence / auth | Public anon key (client) |
SUPABASE_SERVICE_ROLE_KEY | Server DB access | Server only — bypasses RLS; never expose to the client |
JWT_SECRET | Auth | Session signing secret; generate a strong random value |
ADZUNA_APP_ID / ADZUNA_APP_KEY | Job search | Adzuna API |
JSEARCH_API_KEY | Job search | JSearch (RapidAPI) fallback |
RESEND_API_KEY / EMAIL_FROM | Verification / password reset; without a key, links are logged to the server in dev | |
AI_DAILY_QUOTA | AI rate limiting | Per-user daily cap (default 25) |
LOG_LEVEL | Logging | debug | info | warn | error |
The schema lives in supabase/migrations/ — tables, RLS
policies, and triggers. See supabase/README.md for setup.
To apply migrations to a fresh Supabase project with the Supabase CLI:
supabase link --project-ref <your-project-ref>
supabase db push
Authorization model: the app authenticates with a custom JWT, not Supabase
Auth, so auth.uid() is null on server calls. The server therefore uses the
service-role client and enforces row ownership in the application layer
(.eq('user_id', userId)). RLS + owner policies are enabled as defense-in-depth.
src/
├── app/ # App Router: pages + API routes
│ ├── page.tsx # Marketing landing (3D hero)
│ ├── dashboard/ # Main dashboard / phase pipeline
│ ├── direction/ cv/ jobs/ networking/ interview/ tracker/ # The six phases
│ ├── login/ start/ verify-email/ forgot-password/ reset-password/ # Auth flows
│ ├── settings/ privacy/ terms/ # Account & legal
│ └── api/ # Route handlers (auth, cv, jobs, direction, …)
├── components/ # UI + per-feature components (incl. pf/ design system)
├── lib/
│ ├── auth.ts # JWT + PBKDF2
│ ├── api.ts # Zod request validation helpers
│ ├── rate-limit.ts # Sliding-window rate limit + per-user AI quota
│ ├── ai/ # mentor-engine, retrieval (RAG), naturalness-check
│ ├── db/ # Typed data-access layer
│ ├── methodology/ # Career frameworks (Four Pillars, CV Blueprint, …)
│ ├── prompts/ # Per-feature AI prompt builders
│ ├── stores/ # Zustand stores (app-store, auth-store)
│ └── supabase/ # Client factories (anon + service-role)
└── middleware.ts # Rate limiting, JWT verification, AI quota
npm run dev # Dev server (localhost:3000)
npm run build # Production build
npm run start # Serve the production build
npm run test # Vitest (watch)
npm run test:run # Vitest (once)
npm run lint # ESLint
.github/workflows/ci.yml runs on pushes and PRs to
main/master: typecheck (tsc --noEmit) and tests are hard gates; lint is
surfaced non-blocking (pre-existing debt in legacy modules); the production build
must pass. No secrets are needed — Supabase/JWT resolve lazily and the build is
env-safe.
Private / unlicensed. All rights reserved.