Skip to content

Latest commit

 

History

History
254 lines (198 loc) · 7.23 KB

File metadata and controls

254 lines (198 loc) · 7.23 KB
Consórcio Gestão

Made with React Made with Express Database License Node Version Tests

Uma aplicação completa para gestão de consórcios, desenvolvida com React + Material UI no frontend e Express + MySQL no backend.

DemoDocumentaçãoReportar BugSolicitar Feature


🚀 Características

  • Autenticação JWT - Sistema de login seguro para gestores
  • Dashboard Completo - Visão geral dos consórcios ativos e fechados
  • Gestão de Participantes - CRUD completo para participantes
  • Gestão de Consórcios - CRUD completo para consórcios
  • Sistema de Cotas - Participantes podem ter de 0.5 a 3.0 cotas
  • Interface Responsiva - Design moderno com Material UI
  • Validação de Dados - Validação tanto no frontend quanto no backend

🛠 Stack Tecnológico

Frontend Backend Database DevOps
React
MUI
Vite
React Query
Node.js
Express
JWT
Bcrypt
MySQL
Sequelize
Jest
Git

📋 Pré-requisitos

  • Node.js 16+
  • MySQL 8.0+
  • npm ou yarn

🔧 Instalação

1. Clone o repositório

git clone <url-do-repositorio>
cd ConsorcioManager

2. Configure o Backend

cd backend
npm install

Copie o arquivo .env.example para .env e configure suas variáveis:

cp .env.example .env

Configure as variáveis no arquivo .env:

PORT=5000
DB_NAME=consorcio_manager
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_HOST=localhost
JWT_SECRET=sua_chave_secreta_super_forte_aqui

3. Configure o Banco de Dados

Crie o banco de dados MySQL:

CREATE DATABASE consorcio_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Inicialize as tabelas:

node scripts/initDatabase.js

4. Configure o Frontend

cd ../frontend
npm install

Copie o arquivo .env.example para .env:

cp .env.example .env

🚀 Quick Start

🏃‍♂️ Executar em modo desenvolvimento

Terminal 1 - Backend

cd backend
npm install
npm run dev

🌐 Backend: http://localhost:5000

Terminal 2 - Frontend

cd frontend
npm install
npm run dev

🎨 Frontend: http://localhost:3000

📦 Scripts Disponíveis

Backend

npm start          # Produção
npm run dev        # Desenvolvimento com nodemon
npm test           # Executar testes
npm run test:watch # Testes em modo watch
npm run init-db    # Inicializar banco de dados

Frontend

npm run dev        # Servidor de desenvolvimento
npm run build      # Build para produção
npm run preview    # Preview do build

📱 Funcionalidades

Gestores

  • ✅ Registro e login de gestores
  • ✅ Perfil do gestor
  • ✅ Dashboard com estatísticas

Participantes

  • ✅ Cadastro de participantes
  • ✅ Lista com busca e paginação
  • ✅ Edição e exclusão
  • ✅ Visualização de detalhes
  • ✅ PIX/IBAN para pagamentos

Consórcios

  • ✅ Criação de consórcios
  • ✅ Lista com filtros por status
  • ✅ Edição e exclusão
  • ✅ Visualização de detalhes
  • ✅ Adição/remoção de participantes
  • ✅ Sistema de cotas (0.5 a 3.0)

🏗 Estrutura do Projeto

ConsorcioManager/
├── backend/
│   ├── config/         # Configurações do banco
│   ├── models/         # Modelos Sequelize
│   ├── routes/         # Rotas da API
│   ├── middleware/     # Middlewares
│   ├── scripts/        # Scripts utilitários
│   └── server.js       # Servidor principal
├── frontend/
│   ├── src/
│   │   ├── components/ # Componentes React
│   │   ├── pages/      # Páginas da aplicação
│   │   ├── contexts/   # Context providers
│   │   └── services/   # Serviços da API
│   └── public/         # Arquivos estáticos
└── README.md

🔐 Segurança

  • Senhas hashadas com bcrypt
  • Autenticação JWT
  • Validação de dados no backend
  • Rate limiting
  • Helmet para headers de segurança
  • CORS configurado

📊 Banco de Dados

Tabelas Principais:

  • gestores - Dados dos gestores
  • participantes - Dados dos participantes
  • consorcios - Dados dos consórcios
  • consorcio_participantes - Relação many-to-many

🤝 Contribuindo

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

🆘 Suporte

Se você encontrar algum problema, por favor abra uma issue no repositório.


⭐ Se este projeto foi útil, considere dar uma estrela!

🔝 Voltar ao topo


Feito com ❤️ para gestão de consórcios

Visitors GitHub forks GitHub stars