Loading repository data…
Loading repository data…
joaogabrieldev / repository
Gerenciador de Gastos Pessoais - Next, React, Typescript, Next Router
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Muitas pessoas no Brasil não têm controle sobre seus gastos mensais, levando a endividamento e estresse financeiro. Pesquisas do SPC mostram que mais de 60% dos brasileiros não fazem controle detalhado de despesas. A falta de visibilidade sobre para onde o dinheiro vai impede o planejamento financeiro e a construção de uma reserva de emergência.
O FinTrack é uma aplicação web multi-usuário que permite registrar, categorizar, orçar e visualizar gastos pessoais com gráficos claros e alertas de limite. Cada usuário tem sua própria conta com dados completamente isolados, podendo acompanhar seus gastos diários, definir orçamentos por categoria e estabelecer metas de economia mensal.
Jovens adultos e famílias que querem organizar finanças pessoais de forma simples, visual e acessível.
| Camada | Tecnologia |
|---|---|
| Framework | Next.js 16 (App Router, TypeScript strict) |
| Estilização | Tailwind CSS 4 |
| Componentes UI | shadcn/ui (Radix UI primitives) |
| Banco de Dados | SQLite + Drizzle ORM |
| Autenticação | Auth.js v5 (NextAuth) — JWT strategy |
| Validação | Zod v4 |
| Gráficos | Recharts |
| Testes | Vitest + Testing Library |
| Linting | ESLint (next/core-web-vitals + typescript) + Prettier |
| Package Manager | pnpm |
Porque eu escolhi o SQLite ao invés de um banco em PostgreSQL?
O SQLite tem como uma das características principais ser um banco de dados embutido e não cliente-servidor, logo deixa a arquitetura da aplicação muito mais simples, rápida e barata, eliminando a dor de cabeça de configurar e manter um servidor dedicado rodando 24 horas por dia. Como os dados ficam armazenados em um único arquivo local colado na aplicação, a latência de rede é reduzida a zero, o que garante uma velocidade absurda no desenvolvimento.
# 1. Clone o repositório
git clone <url-do-repositorio>
cd fintrack
# 2. Instale as dependências
pnpm install
# 3. Configure o ambiente
cp .env.example .env
# Edite o .env e defina AUTH_SECRET (gere com: npx auth secret)
# 4. Crie o banco de dados
mkdir -p data
pnpm db:push
# 5. Inicie o servidor de desenvolvimento
pnpm dev
Acesse http://localhost:3000 para usar a aplicação.
| Comando | Descrição |
|---|---|
pnpm dev | Servidor de desenvolvimento |
pnpm build | Build de produção |
pnpm start | Iniciar servidor de produção |
pnpm test | Rodar testes unitários |
pnpm lint | Verificar linting |
pnpm lint:fix | Corrigir problemas de lint |
pnpm format | Formatar código com Prettier |
pnpm typecheck | Verificar tipos TypeScript |
pnpm db:push | Aplicar schema no banco |
pnpm db:studio | Abrir Drizzle Studio |
pnpm test
Os testes unitários cobrem a lógica de negócio pura:
pnpm lint
1.0.0 (MVP)
Fullstack Developer
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.