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

Command Description
npm run dev Start development server
npm run build Build for production
npm run lint Run ESLint
npm run typecheck Run TypeScript type checking
npm run test Run unit tests
npm run test:coverage Run tests with coverage
npm run test:e2e Run Playwright E2E tests
npm run format Format 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