ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证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.