CondoSystem é uma aplicação web completa desenvolvida para facilitar a administração e gestão financeira de condomínios. O sistema permite o cadastro de moradores, controle de despesas, geração de faturas, gestão de caixinha e emissão de relatórios, tudo em uma interface moderna e amigável.
- Login e Registro: Sistema seguro de autenticação com animação interativa de "flip" entre formulários.
- Níveis de Acesso: Diferenciação entre usuários comuns e administradores.
- Gestão de Perfil: Alteração de dados cadastrais e senhas.
- Cadastro de Moradores: Gerenciamento completo de inquilinos e proprietários.
- Tipos de Despesas: Classificação de despesas (Ordinárias, Extraordinárias, etc.).
- Contas: Geração e detalhamento de contas mensais por unidade/morador.
- Despesas: Lançamento e categorização de despesas.
- Caixinha: Controle de fluxo de caixa (entradas e saídas) para pequenas despesas.
- Pagamentos: Registro de pagamentos efetuados pelos moradores.
- Saldos: Acompanhamento de saldos e pendências.
- Faturas em PDF: Geração automática de faturas detalhadas para impressão.
- Extratos: Visualização de histórico financeiro.
- Dashboard: Visão geral da situação do condomínio.
O sistema passou por uma reformulação visual completa baseada no Google Material Design, visando modernidade e usabilidade:
- Interface Premium: Visual limpo, com uso estratégico de cores, tipografia moderna e espaçamento consistente.
- Material Design: Componentes visuais (cards, botões, inputs) seguindo os padrões de profundidade, sombras e movimento do Material Design.
- Experiência do Usuário (UX): Fluxos de navegação otimizados e feedback visual claro para ações do usuário.
- Responsividade: Layout adaptável para desktops, tablets e smartphones.
- Backend: Node.js com Express
- Database: MongoDB com Mongoose
- Frontend:
- Handlebars (Template Engine)
- Bootstrap 4 & MDBootstrap (Material Design for Bootstrap)
- CSS3 & HTML5
- Autenticação: Passport.js
- Geração de PDF: PDFKit
- Outras Libs: Moment.js (Datas), BCrypt (Segurança), Connect-Flash (Mensagens).
Antes de começar, certifique-se de ter instalado em sua máquina:
-
Clone o repositório
git clone https://github.com/correaito/condosystem.git cd condosystem -
Instale as dependências
npm install
-
Configure o Banco de Dados
- Certifique-se de que o serviço do MongoDB está rodando.
- O sistema tentará conectar automaticamente em:
mongodb://localhost/condominioapp - Nota: Você pode alterar a string de conexão no arquivo
app.jsse necessário.
-
Inicie a Aplicação
npm start
Ou para desenvolvimento (com nodemon se instalado):
npm run dev
-
Acesse o Sistema
- Abra o navegador e acesse:
http://localhost:8081
- Abra o navegador e acesse:
O sistema possui uma lógica automática para definição de administradores:
- Primeiro Registro: O primeiro usuário a se cadastrar no sistema será automaticamente definido como Administrador.
- Demais Registros: Todos os usuários subsequentes serão cadastrados com nível de acesso comum (Usuário).
- Alteração de Nível: O administrador pode alterar o nível de acesso de outros usuários através do painel administrativo.
Para que um usuário visualize suas informações financeiras (contas, saldo, etc.) no Dashboard, é necessário um vínculo com um cadastro de Morador:
- Cadastro de Usuário: O usuário se registra no sistema (Login/Senha).
- Cadastro de Morador: O Administrador deve cadastrar um Morador na área administrativa (
Cadastros > Moradores). - Vínculo Automático: O sistema vincula automaticamente o Usuário ao Morador através do NOME.
- Importante: O nome cadastrado no registro do usuário deve ser EXATAMENTE IGUAL ao nome cadastrado na ficha do Morador (respeitando maiúsculas, minúsculas e acentos). Caso contrário, o usuário verá um aviso de "não vinculado" em seu dashboard.
condominio-web/
├── config/ # Configurações de autenticação (Passport)
├── models/ # Modelos do Mongoose (Schema do BD)
├── public/ # Arquivos estáticos (CSS, JS, Imagens)
├── routes/ # Rotas da aplicação (Admin, Usuários)
├── views/ # Templates Handlebars
│ ├── admin/ # Views da área administrativa
│ ├── layouts/ # Layouts principais (main.handlebars)
│ ├── partials/ # Componentes reutilizáveis (navbar, msg)
│ └── usuarios/ # Views de login e dashboard
├── app.js # Ponto de entrada da aplicação
└── package.json # Dependências e scripts
Contribuições são sempre bem-vindas!
- Faça um Fork do projeto
- Crie uma Branch para sua feature (
git checkout -b feature/NovaFeature) - Faça o Commit (
git commit -m 'Adicionando NovaFeature') - Faça o Push (
git push origin feature/NovaFeature) - Abra um Pull Request
Este projeto está sob a licença GPL-3.0. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido com ❤️ para fins de estudo e gestão condominial.