Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Una aplicación de presupuesto para Panamá.
Translation pending
FinanceTypeScript · CSSGitHub @diego11urenaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
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:Read the full 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