Skip to content

Repository files navigation

FinBank - Gestao Financeira Pessoal

Plataforma completa de gestao financeira pessoal com dashboard interativo, gerenciamento de contas, transacoes, cartoes de credito e orcamentos.

Tech Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript (strict mode)
  • Styling: Tailwind CSS v3 + shadcn/ui (Radix UI)
  • Database: Supabase (PostgreSQL)
  • ORM: Prisma 5
  • Validation: Zod v4
  • Charts: Recharts
  • Auth: Supabase Auth (email/password + OAuth)
  • Testing: Vitest + Playwright

Features

  • Dashboard com metricas financeiras e graficos interativos
  • Gerenciamento de contas bancarias (corrente, poupanca, investimento, credito)
  • Registro e historico de transacoes com paginacao cursor-based
  • Controle de cartoes de credito com visualizacao de limite
  • Orcamentos mensais por categoria com acompanhamento de gastos
  • Sistema de notificacoes
  • Tema claro/escuro
  • Layout responsivo com sidebar
  • Rate limiting nas API routes
  • Row Level Security (RLS) no Supabase

Architecture

src/
├── app/ # Next.js App Router (pages, layouts, API routes)
│ ├── (auth)/ # Login and register pages
│ ├── (dashboard)/ # Protected dashboard pages
│ ├── api/ # REST API routes
│ └── actions/ # Server actions
├── components/ # React components
│ └── ui/ # shadcn/ui components (Radix UI)
├── hooks/ # Custom React hooks
├── lib/ # Core libraries (Prisma, Supabase, utils)
├── repositories/ # Data access layer (Repository pattern)
├── schemas/ # Zod validation schemas
├── services/ # Business logic layer
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
└── tests/ # Unit tests

Getting Started

Prerequisites

  • Node.js 20+
  • Supabase project

Setup

  1. Clone the repository:
git clone https://github.com/Lucass-devjr/FinBank.git
cd FinBank
  1. Install dependencies:
npm install
  1. Configure environment variables:
cp .env.example .env.local
  1. Update .env.local with your Supabase credentials.

  2. Run the SQL migration in Supabase SQL Editor:

supabase/migrations/001_initial_schema.sql
  1. Generate Prisma client:
npx prisma generate
  1. Start development server:
npm run dev

Scripts

CommandDescription
npm run devStart development server
npm run buildBuild for production
npm run lintRun ESLint
npm run typecheckRun TypeScript type checking
npm run testRun unit tests
npm run test:coverageRun tests with coverage
npm run test:e2eRun Playwright E2E tests
npm run formatFormat code with Prettier

License

MIT

About

Sistema bancário fictício com transações seguras, idempotência e audit log

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages