Skip to content

RFernandes10/Business-Manager-SaaS-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Business Manager SaaS

Node.js TypeScript Prisma Tests Swagger License

SaaS multi-tenant enterprise-grade para gestão de pequenos negócios, creches e inventário.


Stack

Camada Tecnologia
Runtime Node.js 22+
Framework Express 5
ORM Prisma 7
Banco PostgreSQL 16
Auth JWT + bcrypt (refresh token com rotação)
Validação Zod 4
Testes Vitest
Frontend React 19 + Vite 6 + Tailwind v4

Arquitetura

src/
├── config/             # Env, auth
├── lib/                # Prisma, DI Container, Winston, Audit
├── middlewares/        # JWT, tenant, RBAC, validation, error handler
├── modules/            # 10 domínios (Controller → Service → Repository)
│   ├── auth/           # Register, login, refresh, logout
│   ├── customers/      # CRUD + search
│   ├── children/       # CRUD + dados médicos
│   ├── appointments/   # CRUD + workflow de status
│   ├── financial/      # Lançamentos + summary
│   ├── dashboard/      # Métricas do negócio
│   ├── reports/        # Financeiro, agendamentos, comparativo
│   ├── inventory/      # Itens com categorias
│   ├── employees/      # Funcionários com roles
│   └── notifications/  # Fila + status
├── shared/             # Errors, permissions, constants, pagination
└── app.ts / server.ts

Todos os módulos seguem Controller → Service → Repository com injeção de dependência, DTOs, Mappers e schemas Zod.

Demonstração

Dashboard Dashboard com métricas do negócio

CRUD Clientes Gestão de clientes com paginação

Fluxo completo Demonstração do fluxo de login e navegação

Funcionalidades

  • Multi-tenancy — Isolamento total via tenantId em todas queries
  • RBAC — Permissões por ação (CREATE, READ, UPDATE, DELETE) com roles ADMIN/STAFF
  • Refresh Token — JWT com rotação, revogação e logout-all
  • Auditoria — Change Data Capture automático via Prisma $extends
  • Soft Delete — Nenhum dado perdido (deletedAt em todas entidades)
  • Segurança — Helmet + CORS + Rate-limit + bcrypt (12 rounds)

API

Método Endpoint Descrição
POST /api/auth/register Register + tenant
POST /api/auth/login Login (JWT + refresh)
POST /api/auth/refresh Renovar access token
POST /api/auth/logout Revogar refresh token
POST /api/auth/logout-all Revogar todos os tokens
GET/POST/PATCH/DELETE /api/customers CRUD clientes
GET/POST/PATCH/DELETE /api/children CRUD crianças
GET/POST/PATCH/DELETE /api/appointments CRUD agendamentos
GET/POST/DELETE /api/financial CRUD financeiro
GET/POST/PATCH/DELETE /api/inventory CRUD inventário
GET/POST/PATCH/DELETE /api/employees CRUD funcionários
GET /api/dashboard Métricas
GET /api/reports/* Relatórios
GET /api/health Health check

Documentação interativa em http://localhost:3000/api-docs.

Primeiros Passos

git clone https://github.com/RFernandes10/Business-Manager-SaaS-.git
cd Business-Manager-SaaS-
npm install
cp .env.example .env
npx prisma migrate dev
npx prisma generate
npm run dev

Requires Node.js 22+ and PostgreSQL 16+.

Seed (dados de demonstração)

npm run prisma:seed

Popula o banco com tenant, admin, clientes, crianças, funcionários, agendamentos, financeiro e inventário.

Login: [email protected] / Teste1234

Testes

npm test        # Unitários + Integração
npm run test:coverage  # Com cobertura

41 testes (34 unitários + 7 integração):

  • Unitários: auth service, customer service, pagination, date-filter, AppError
  • Integração (superTest + PostgreSQL): health, register, login, refresh, logout

Licença

MIT — veja LICENSE.

About

Plataforma SaaS **multi-tenant** para gestão de pequenos negócios, como barbearias, profissionais autônomos e serviços locais.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors