Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A personal budgeting web app built with Next.js, TypeScript, and Postgres (via
Prisma), designed around biweekly "quincena" pay periods (as is standard in
Panama and other countries). You enter your net take-home pay per quincena
directly — the app doesn't calculate payroll deductions itself — and it
tracks spending, savings goals, and fixed-budget targets against that income,
retaining full history for every past budget cycle.
1. Make sure Postgres is running locally and a budgetapp_dev database exists:README 전문 보기 ↗A personal budgeting web app built with Next.js, TypeScript, and Postgres (via Prisma), designed around biweekly "quincena" pay periods (as is standard in Panama and other countries). You enter your net take-home pay per quincena directly — the app doesn't calculate payroll deductions itself — and it tracks spending, savings goals, and fixed-budget targets against that income, retaining full history for every past budget cycle.
budgetapp_dev database exists:
brew install postgresql@16 # if not already installed
brew services start postgresql@16
createdb budgetapp_dev
.env.example to .env and fill in DATABASE_URL and AUTH_SECRET (openssl rand -base64 32).npm install
npx prisma migrate dev
npm run dev
http://localhost:3000 — log in with Google (set it up first, below), then go through onboarding (income → expenses → savings)."Continue with Google" is the only way to log in (first sign-in creates the account; an existing account with the same email is reused). The same OAuth client also powers Profile's optional "Connect Gmail", which auto-imports transaction notification emails (Banco General card purchases, Yappy sent/received). To set it up locally:
.../auth/gmail.readonly scope.http://localhost:3000/api/auth/callback/google (sign-in, local dev)http://localhost:3000/api/gmail/callback (Gmail import, local dev)https://<your-deployed-domain> once deployed.env as GOOGLE_CLIENT_ID
/ GOOGLE_CLIENT_SECRET, and generate a GMAIL_TOKEN_ENCRYPTION_KEY
(openssl rand -base64 32) — this encrypts the stored refresh token.Only emails from Banco General ([email protected]) and Yappy
([email protected]) are ever queried — see lib/gmail-parsers.ts
to add support for other senders/email formats.
The Gmail OAuth routes and a few write actions are rate-limited against a shared Upstash Redis database (free tier) — required so limits are actually enforced across every serverless instance Vercel runs, not just whichever one happens to handle a given request.
UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN from the
database's "REST API" section into .env (local) and the Vercel project
settings (production).The app deploys to Vercel with a hosted Postgres (e.g. Neon's free tier) — both free for personal use.
vercel.json needed
— Next.js deploys with zero config).DATABASE_URL — the Neon connection stringAUTH_SECRET — generate a new one for production, don't reuse the
local dev value (openssl rand -base64 32)GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET / GMAIL_TOKEN_ENCRYPTION_KEY
— only needed if using Gmail import, same values as aboveUPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN — see "Rate
limiting setup" aboveDATABASE_URL="<neon-connection-string>" npx prisma migrate deploy
https://<your-vercel-domain>/api/gmail/callback) to the Google OAuth
client from step 3 of the Gmail setup above.Local dev is unaffected by any of this — lib/prisma.ts always reads
DATABASE_URL from your local, gitignored .env.
npm run dev — start the dev servernpm run build / npm run start — production build/runnpm test — run unit testsnpx prisma studio — inspect the databasenpx prisma migrate dev — apply schema changes