ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
실제 시장 데이터를 사용해 가상의 포트폴리오로 투자 연습을 할 수 있는 교육용 시뮬레이터
CapitalFlow is an educational investment simulator. Practice with real market data and a simulated portfolio, without risking real money.
교육TypeScript · JavaScriptGitHub @JulioG194온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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/healthREADME 전문 보기 ↗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.