Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Portfolio management app
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A personal investment dashboard built with Next.js for tracking stock positions (US and Japanese equities), monitoring real-time P&L, and researching new stocks before buying. All portfolio data lives in your browser's localStorage — nothing is uploaded anywhere.README 전문 보기 ↗A personal investment dashboard built with Next.js for tracking stock positions (US and Japanese equities), monitoring real-time P&L, and researching new stocks before buying. All portfolio data lives in your browser's localStorage — nothing is uploaded anywhere.
localStorageClone the repository:
git clone https://github.com/Gouliath1/portfolio-tracker.git
cd portfolio-tracker
Install dependencies:
npm install
(Optional) Create an environment file for the screener's data providers and the production market-data cache:
cp .env.example .env.local
See .env.example for details — J-Quants and Twelve Data keys are optional and only needed for screener fundamentals; without them the app falls back to Yahoo Finance.
Start the development server:
npm run dev
Open your browser: navigate to http://localhost:3000
On first load you'll see a demo portfolio and a welcome prompt to import your own data (via the Settings panel → Portfolios), or you can add positions manually with the Add Position modal.
npm run dev - Start development server with Turbopacknpm run dev:clean - Start dev server via scripts/startDev.shnpm run build - Build the application for productionnpm run start - Start the production servernpm run lint - Run ESLint for code qualitynpm test / npm run test:watch / npm run test:coverage / npm run test:ci - Run the Jest test suiteportfolio-tracker/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── api/ # API routes (prices, pnl, dividends, screener, fx-rates, …)
│ │ ├── screener/ # Stock screener page
│ │ ├── returns/deep-dive/ # Analysis (XIRR) page
│ │ └── page.tsx # Main dashboard page (Overview / Assets / Portfolios)
│ ├── components/ # React components (layout, overview, screener, management, tables, charts)
│ ├── hooks/ # Shared React hooks (base currency, alert polling, ticker names, …)
│ ├── lib/
│ │ ├── core/ # Shared business logic (currency, XIRR/return calculations) — aliased as @portfolio/core
│ │ └── server/ # Server-side services (Yahoo/J-Quants fetchers, market-data cache) — aliased as @portfolio/server
│ ├── types/ # Shared TypeScript models — aliased as @portfolio/types
│ ├── data/ # Demo portfolio data
│ └── utils/ # localStorage-backed position store, caches, hooks helpers
├── data/ # Server-side SQLite caches (market data, screener), gitignored
├── scripts/ # Dev/deploy utilities (fetch-constituents, startDev, gitPush)
├── instrumentation.ts # Server startup hook (no-op — data is client-side)
└── ... # Other config files
Portfolio positions are not stored in a checked-in file — they live in your browser's localStorage, one entry per portfolio ("position set"). To get your real data in:
Since everything is local to the browser, clearing site data / a different browser / a different device won't carry your portfolio over — export before doing so if you need to move it.
See .env.example for the full list. Nothing is required for basic use; these enable extra data sources:
TURSO_DATABASE_URL / TURSO_AUTH_TOKEN - cloud SQLite for the market-data cache in production (Vercel's filesystem is read-only); local dev uses data/marketCache.db automaticallyJQUANTS_API_KEY (or JQUANTS_EMAIL / JQUANTS_PASSWORD) - official JPX fundamentals (P/E, P/B, dividend yield) for Japanese screener stocksTWELVE_DATA_API_KEY - fundamentals for US/JP stocks via Twelve Data (free tier); falls back to Yahoo Finance when unsetYAHOO_COOKIE / YAHOO_CRUMB - manual override if Yahoo's crumb endpoint is rate-limited| What | Provider | Notes |
|---|---|---|
| Hosting / deployment | Vercel | Free tier, auto-deploy on push to main |
| Live URL | tracker.julienguille.com | Custom subdomain |
| Domain registrar | GoDaddy | Manages julienguille.com DNS |
| Server / web hosting | OVH | Hosts other sites on the same domain |
To point tracker.julienguille.com to Vercel, a CNAME record is set in GoDaddy:
| Type | Name | Value |
|---|---|---|
| CNAME | tracker | 9d28ed80412bd346.vercel-dns-017.com. |
Vercel project → Settings → Billing → Spending Limit is set to $0 — Vercel will pause the project rather than charge anything if free-tier limits are ever exceeded.
localStorage — they are never sent to a server for persistence.data/) only caches market data (prices, FX rates, screener fundamentals) — public information, not your holdings.git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Price updates not working:
.T suffix)My portfolio disappeared:
localStorage. Clearing browser data, using a different browser, or private/incognito mode will not show previously entered positions. Export your position set beforehand if you need to move or back it up.Screener fundamentals missing or stale:
JQUANTS_API_KEY or TWELVE_DATA_API_KEY set, the app falls back to Yahoo Finance, which can be rate-limited — see .env.example for the manual crumb overrideBuild fails:
npm run build locally first to testFor more help, please open an issue on GitHub.
Built with ❤️ using Next.js, React, and TypeScript.