Skip to content

Sen2pi/ConsorcioManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Programa para gestão de consórcios

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages