Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Fianance app for couples
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Finance App - Controle de Finanças Pessoais Um aplicativo web completo para controle de finanças pessoais, desenvolvido com Next.js, Supabase e shadcn/ui. • Autenticação: Login/registro com email/senha e Google OAuth • Dashboard: Visão geral com gráficos de receitas vs despesas • Carteiras: Múltiplas contas bancárias/wallets • Transações: Registro de receitas e despesas • Categorias: Categorias customizáveis • Design Responsivo: Funciona em desktop e mobile • Frontend: Next.js 14+ (App Router) • UI: shadcn/ui + Tailwind CSS • Backend: Supabase (PostgreSQL + Auth) • Gráficos: RechartsREADME 전문 보기 ↗
Um aplicativo web completo para controle de finanças pessoais, desenvolvido com Next.js, Supabase e shadcn/ui.
cd finance-app
cp .env.example .env.local
Edite o arquivo .env.local e preencha com suas credenciais do Supabase:
NEXT_PUBLIC_SUPABASE_URL=https://seu-projeto.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=sua-chave-anon-aqui
⚠️ Importante: Nunca commite o arquivo .env.local no Git!
O schema inteiro vive em supabase/migrations/ (baseline consolidado +
migrações incrementais). Com o projeto linkado no CLI:
npx supabase link
npx supabase db push
Para desenvolvimento local: npx supabase start (constrói o banco do zero a
partir das migrações). Nunca rode SQL manual no SQL Editor para mudar schema —
ver supabase/README.md.
No Supabase Dashboard:
avatarsO schema SQL já cria as políticas necessárias para upload de avatares.
npm install
npm run dev
Abra http://localhost:3000 no seu navegador.
src/
├── app/
│ ├── (auth)/ # login, register, forgot-password, reset-password
│ ├── (app)/ # Telas autenticadas: dashboard, transactions, categories,
│ │ # bills, credit-cards, subscriptions, members, invites,
│ │ # account (sessions, activity), settings, plans
│ ├── [...slug]/ # Rota desconhecida → 404
│ ├── designsystem/ # Catálogo vivo do design system (/designsystem)
│ └── page.tsx # Redirecionamento
├── components/
│ ├── ui/ # Componentes do design system
│ ├── layout/ # Casca do app (barras, navegação)
│ └── <domínio>/ # account, bills, categories, credit-cards, dashboard,
│ # members, push, pwa, security, settings, subscriptions,
│ # transactions, workspace, icons
├── config/ # Navegação (desktop e mobile)
├── hooks/ # Custom hooks
├── lib/ # Regras de negócio, Supabase, formatadores (com *.test.ts ao lado)
├── templates/ # Templates de página
└── types/ # Tipos do banco (gerados) e de rotas
supabase/ # Migrações, Edge Functions, testes pgTAP, relatórios SQL
e2e/ # Testes Playwright
scripts/ # Scripts de build/teste (ícones PWA, docs-map do DS, pré-checagens)
docs/ # Runbooks, histórico do design system e arquivo
AGENTS.md — regras do projeto (formulários, design system, componentes). Leia antes de escrever código.docs/README.md — índice de runbooks, histórico do design system e arquivo.supabase/README.md — regras de migração, Edge Functions e docs de deploy.O app pode ser instalado na tela inicial (Safari → Compartilhar → Adicionar à Tela de Início) e funciona em modo standalone.
npm run generate:pwa-icons # gera public/icons/* e public/favicon.ico a partir de public/logo.svg
npm run build # webpack + Serwist (gera public/sw.js)
Em desenvolvimento, o service worker fica desligado por padrão. Para testar localmente:
NEXT_PUBLIC_PWA_ENABLED=true npm run build && npm start
npm run test:unit # inclui mutation-gateway offline
npx playwright test e2e/pwa.smoke.spec.ts
A migração supabase/migrations/20260517140000_offline_client_id.sql adiciona client_id para sincronização idempotente.
Notificações push usam Web Push com chaves VAPID e Edge Functions (push-subscribe, push-unsubscribe, deliverNotification nos produtores).
# Cliente (Vercel + .env.local)
NEXT_PUBLIC_VAPID_PUBLIC_KEY=<chave pública>
# Supabase secrets (nunca no repositório)
VAPID_PUBLIC_KEY=<mesma chave pública>
VAPID_PRIVATE_KEY=<chave privada>
VAPID_SUBJECT=mailto:[email protected]
Gerar par de chaves:
npx web-push generate-vapid-keys
Aplicar migração:
supabase db push
Deploy das functions (inclui push):
npm run supabase:deploy:functions
notify_push → sem push; central in-app continua se habilitada.Quando outro membro adiciona uma despesa manual em uma carteira compartilhada, os demais membros recebem notificação in-app e push (se habilitados).
Deploy: configure o Database Webhook em public.transactions (INSERT) → Edge Function notify-transaction-created. Detalhes em supabase/NOTIFICATION_DEPLOYMENT.md.
Smoke test: User B adiciona despesa na carteira compartilhada → User A vê central + push no iPhone (PWA instalada).
O projeto implementa:
# Cliente (públicas)
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
# Servidor (NUNCA exponha no frontend)
SUPABASE_SERVICE_ROLE_KEY=... # Apenas para APIs server-side
O projeto usa shadcn/ui com o preset b1a1d8m2s. Para adicionar novos componentes:
npx shadcn@latest add button
Verifique se o arquivo .env.local existe e contém as variáveis corretas.
Certifique-se de que todas as migrações foram aplicadas (npx supabase db push).
Verifique se o bucket avatars foi criado no Storage e está público.
MIT