ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Educational investment simulator — AI-native engineering portfolio project
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Educational investment simulator (portfolio project). No real money is
held, transferred, or invested — every balance and trade is simulated.
Live demo: _(set after Vercel deploy — replace this line with your
production URL)_
API health: https://capitalflow-api.onrender.com/health
Stream health: https://capitalflow-stream.onrender.com/health檢視完整 README ↗Educational investment simulator (portfolio project). No real money is held, transferred, or invested — every balance and trade is simulated.
Live demo: (set after Vercel deploy — replace this line with your production URL)
API health:https://capitalflow-api.onrender.com/health
Stream health:https://capitalflow-stream.onrender.com/health
# Node 22 (see .nvmrc)
pnpm install
pnpm docker:up # Postgres + Redis
cp apps/api/.env.example apps/api/.env
cp apps/market-stream/.env.example apps/market-stream/.env
# Fill JWT keys + FINNHUB_API_KEY — see .env.example at repo root
pnpm --filter api exec prisma migrate deploy
pnpm dev # web :3000, api :3001, market-stream :3002
flowchart LR
Browser --> Web["apps/web (Vercel)"]
Web -->|"same-origin /auth /portfolio rewrite"| Api["apps/api (Render)"]
Browser -->|"WSS + Bearer token"| Stream["apps/market-stream (Render)"]
Api --> Neon[(Neon Postgres)]
Api --> Redis[(Render Redis)]
Stream --> Redis
Stream --> Finnhub[Finnhub delayed quotes]
/app/market (badge Simulator mode in nav).There is no real email. POST /auth/forgot-password logs:
[password-reset] user=<email> link=<url>
in Render’s capitalflow-api logs. Copy the link from there to complete a
reset. Locally, the API also returns resetLink in the JSON body and the
UI shows it.
| Var | Where | Notes |
|---|---|---|
DATABASE_URL | Render api | Neon pooled URL + sslmode=require |
REDIS_URL | Render api + stream | From Render Redis |
JWT_ACCESS_PRIVATE_KEY | Render api | PEM with \n escapes |
JWT_ACCESS_PUBLIC_KEY | Render api + stream | Same public key |
FINNHUB_API_KEY | Render stream only | Never on api |
WEB_APP_ORIGIN | Render both | Exact Vercel production URL |
API_UPSTREAM_URL | Vercel (server) | Render api URL for rewrites |
NEXT_PUBLIC_API_URL | Vercel | Empty in production |
NEXT_PUBLIC_MARKET_STREAM_URL | Vercel | Render stream URL |
Full table and one-time cloud setup: infra/DEPLOY.md.
Render free tier spins down after ~15 minutes idle. A GitHub Actions
keep-alive pings /health every 10 minutes. The web UI still shows a
non-blocking wake-up banner on the first 502/503/network error within 60s.
Feature work follows Spec-Driven Development under specs/. See
CLAUDE.md for stack and conventions.