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.
Controlar gastos anuais, salário e sobras com login seguro e acesso offline
Translation pending
AI summary · README
FinanceTypeScript · PLpgSQLGitHub @Gabriel-Coutinho0OnlineOwner 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.
App web para controlar gastos do ano inteiro: salário por mês, gastos fixos (que se repetem todo mês), lançamentos variáveis, e quanto sobra do salário — em verde quando sobra e vermelho quando estoura. • Frontend: React + Vite + TypeScript + Tailwind + Recharts • Login + banco: Supabase (plano grátis) com Row Level Security — cada conta só enxerga os próprios dados • Hospedagem: Vercel (plano grátis) • PWA: instalável no celular/desktop, abre offline (dados só de leitura) Para rodar de verdade (com Supabase), veja abaixo. 1. Criar o projeto no Supabase (grátis)Read the full README ↗
App web para controlar gastos do ano inteiro: salário por mês, gastos fixos (que se repetem todo mês), lançamentos variáveis, e quanto sobra do salário — em verde quando sobra e vermelho quando estoura.
npm install
npm run demo # abre em http://localhost:5173 com dados FICTÍCIOS (sem login)
Para rodar de verdade (com Supabase), veja abaixo.
supabase/schema.sql e clique em Run.
Isso cria as tabelas e as regras de segurança.Crie um arquivo .env na raiz (copie de .env.example):
VITE_SUPABASE_URL=https://xxxxxxxx.supabase.co
VITE_SUPABASE_ANON_KEY=eyJhbGciOi...
Teste local:
npm run dev
Crie sua conta na tela inicial e comece a usar.
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEYhttps://...vercel.app.Cada git push na branch principal gera um novo deploy automático.
auth.uid() = user_id. Mesmo com a anon key pública (ela é feita para ficar
no navegador), ninguém acessa dados de outra conta.anon key pode ficar no frontend. A chave que nunca deve aparecer no
código nem no navegador é a service_role — não use ela aqui.autoRefreshToken).Como você é o único usuário, basta criar uma conta. Se um dia outra pessoa criar conta no mesmo app, os dados dela ficam totalmente separados dos seus.
src/
App.tsx decide entre login / dashboard / setup
lib/
supabase.ts client do Supabase
useAuth.tsx contexto de login (entrar, cadastrar, sair)
useYearData.ts carrega e calcula os números do ano
format.ts R$, meses, parserde valores "1.234,56"
demo.ts / demoStore.ts modo demonstração (npm run demo)
components/
Auth.tsx tela de login/cadastro
Dashboard.tsx resumo do ano + grade de 12 meses + toast de desfazer
Header.tsx seletor de ano, sair
StatCard.tsx cartões de total (verde/vermelho)
MonthCard.tsx cartão de cada mês com barra de progresso
MonthDetail.tsx modal do mês: salário, fixos do mês, lançamentos
InstallmentModal.tsx criar parcelamento
BillsPanel.tsx "Contas a pagar" do ano (lançamentos + fixos)
CategoryChart.tsx rosca de gastos por categoria (com filtro e drill-down)
BankChart.tsx rosca de gastos por banco (com filtro e drill-down)
PatrimonyCard.tsx cartão com o patrimônio total (contas+caixinhas+
investimentos+sobra do ano)
FixedExpensesPanel.tsx CRUD de gastos fixos
SavingsPanel.tsx lista de contas/caixinhas/investimentos com saldo
SavingsDetailModal.tsx histórico + depósito/retirada de uma conta
SummaryChart.tsx gráfico salário x gasto x sobra (mês a mês / acumulado)
Toast.tsx aviso com ação (desfazer)
scripts/gen-icons.mjs gera os ícones PNG do PWA
supabase/schema.sql rode no SQL Editor do Supabase
| Tabela | Para quê |
|---|---|
user_settings | salário padrão mensal |
fixed_expenses | gastos que repetem todo mês (ativar/desativar) |
monthly_salary | salário específico de um mês (sobrescreve o padrão) |
transactions | lançamentos e contas: data, descrição, valor, paid, due_date, method (boleto/cartão/pix/dinheiro/outro), category, bank (texto livre, ex: "Nubank"), group_id (parcelamento) |
fixed_expense_status | marca se um gasto fixo foi pago num mês específico (fixed_expense_id, year, month, paid) |
savings_accounts | caixinhas e investimentos: nome, kind (caixinha/investimento), institution (onde está guardado) |
savings_movements | depósitos e retiradas de uma caixinha/investimento (account_id, amount, kind, occurred_on, note) |
Cálculo de cada mês:
sobra = salário − (soma dos fixos ativos + soma dos lançamentos do mês)
— contas ainda não pagas também entram no gasto; o painel "Contas a pagar"
e os selos "a pagar" só ajudam a acompanhar o que falta quitar.
Já tinha rodado uma versão anterior do
schema.sql? Pode rodar de novo: o script é idempotente — cria a tabelafixed_expense_statusse faltar e adiciona as colunas novas viaalter table ... add column if not exists.
group_id.⚠️ N contas atrasadas) leva até a lista.(adiada de <mês>).public/pwa-*.png — regere com npm run gen:icons.