Shioaji Pro
為 agent 交易鋪路:交易終端全程由 coding agent 打造,介面 100% 開源、桌面版內建 AI Agent 與全套專業下單面板 — 這個終端就是能力證明。
Translation pending
Gastos compartidos de viaje con saldos y abonos al día.
Translation pending
FinanceTypeScript · CSSGitHub @geraignacioOnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Gastos compartidos de viaje con saldos, abonos ("ya pagué X, me queda Y") y cierre de cuentas con el mínimo de transferencias.
Next.js 16 (App Router, React 19) · Prisma 6 + PostgreSQL (Supabase) · Auth.js v5 con Google · Tailwind 4 + componentes shadcn/ui · Vercel.
app/
page.tsx Login con Google
(app)/layout.tsx Protege todo lo de adentro (requireUser)
(app)/trips/page.tsx Viajes activos y pasados, crear y unirse
(app)/trips/[tripId]/page.tsx Panel del viaje
join/[code]/ Unirse por enlace o código
api/auth/[...nextauth]/ Handlers de Auth.js
api/trips/[tripId]/export/ Exportación ?format=csv|pdf
components/
ui/ Primitivas shadcn (button, card, dialog, tabs…)
finance/ Métricas, saldos, liquidación, movimientos, modal gasto/abono
trips/ Crear viaje, invitar, agregar acompañante, exportar
lib/
finance/ split, balances, settlement (+ tests)
validation/ Esquemas Zod compartidos cliente/servidor
access.ts trips.ts money.ts export.ts db.ts
server-actions/ trips, expenses, transfers, balances
prisma/ schema.prisma y migraciones
auth.ts Configuración de Auth.js
DATABASE_URL, agregando ?pgbouncer=true&connection_limit=1.DIRECT_URL. Se usa la de sesión del pooler porque la conexión directa del plan gratuito es solo IPv6 y los builds de Vercel salen por IPv4.https://<tu-app>.vercel.app/api/auth/callback/google (y el de localhost para desarrollo).DATABASE_URL, DIRECT_URL, AUTH_SECRET (npx auth secret), AUTH_GOOGLE_ID y AUTH_GOOGLE_SECRET.postinstall ejecuta prisma generate y Vercel usa el script vercel-build, que aplica las migraciones pendientes (prisma migrate deploy, vía DIRECT_URL) antes de next build. Si prefieres migrar a mano, cambia el Build Command a next build y corre npm run db:deploy desde tu equipo..../auth/drive.file en la pantalla de consentimiento. Publica la app (Publishing status → In production): en modo Testing los permisos de Drive caducan a los 7 días. drive.file no es un scope sensible, así que no requiere verificación de Google.GEMINI_API_KEY (Settings → Environment Variables), luego vuelve a desplegar. Sin la clave, el botón "Escanear boleta" no aparece. En el plan gratuito Google puede usar las fotos para mejorar sus modelos; la app no las guarda.vercel.json) llama a /api/keep-alive para evitarlo; si igual se pausa, usa Restore project en Supabase y vuelve a desplegar.Con Docker:
cp .env.example .env # AUTH_SECRET y credenciales de Google
docker compose up # Postgres + app en http://localhost:3000
Sin Docker (contra Supabase o un Postgres propio):
npm install # postinstall genera el cliente de Prisma
npm run db:migrate
npm run dev
Tests de la lógica financiera: npm test.