#SANEM - Sistema de Assistência e Apoio à Necessitados
Sistema completo para gestão de doações, beneficiários e distribuição de recursos para pessoas em vulnerabilidade social
O SANEM é um sistema web desenvolvido para organizações sociais, ONGs e instituições de caridade que trabalham com assistência a pessoas em vulnerabilidade social. O sistema oferece controle completo sobre:
- 👥 Cadastro e gestão de beneficiários e seus dependentes
- 🎁 Registro e controle de doações (produtos e dinheiro)
- 📦 Gestão de estoque com controle de entrada e saída
- 📋 Distribuição controlada de recursos para beneficiários
- 📊 Relatórios e estatísticas em tempo real
- 👤 Gestão de usuários com diferentes níveis de acesso
- 🔍 Auditoria completa de todas as operações
- React 18 com TypeScript para interface moderna e tipada
- Vite para desenvolvimento rápido e build otimizado
- Tailwind CSS + shadcn/ui para design system consistente
- Lucide React para ícones vetoriais
- React Hook Form + Zod para validação de formulários
- Supabase como Backend-as-a-Service
- PostgreSQL para banco de dados relacional
- Row Level Security (RLS) para segurança de dados
- Real-time subscriptions para atualizações em tempo real
- Context API para gerenciamento de estado global
- Custom Hooks para lógica reutilizável
- Protected Routes com controle de permissões
- Error Boundaries para tratamento de erros
- Responsive Design para acesso mobile e desktop
src/
├── components/ # Componentes reutilizáveis
│ ├── common/ # Componentes comuns (LoadingSpinner, ErrorBoundary)
│ ├── ui/ # Componentes de UI (shadcn/ui)
│ ├── AppSidebar.tsx # Sidebar principal com navegação
│ ├── ProtectedRoute.tsx # Proteção de rotas por permissão
│ └── ThemeToggle.tsx # Alternador de tema claro/escuro
├── contexts/ # React Contexts
│ └── AuthContext.tsx # Contexto de autenticação e permissões
├── hooks/ # Custom hooks
│ ├── useLocalStorage.ts
│ ├── useTheme.tsx
│ └── use-toast.ts
├── pages/ # Páginas da aplicação
│ ├── Index.tsx # Página de login
│ ├── Dashboard.tsx # Dashboard principal
│ ├── Beneficiarios.tsx # Gestão de beneficiários
│ ├── Cadastro.tsx # Cadastro de pessoas (beneficiários, doadores, dependentes)
│ ├── Doacoes.tsx # Controle de doações
│ ├── Estoque.tsx # Gestão de estoque
│ ├── Distribuicao.tsx # Distribuição de itens
│ ├── Relatorios.tsx # Relatórios e análises
│ ├── Perfil.tsx # Perfil do usuário
│ ├── GestaoUsuarios.tsx # Gestão de usuários (Admin)
│ └── NotFound.tsx # Página 404
├── types/ # Definições de tipos TypeScript
├── constants/ # Constantes e permissões
├── utils/ # Funções utilitárias
├── integrations/ # Integrações externas
│ └── supabase/ # Cliente e tipos do Supabase
└── lib/ # Configurações e utilitários
O sistema utiliza 16 tabelas organizadas logicamente:
users- Usuários do sistema (superadmin, admin, voluntario)beneficiarios- Pessoas que recebem as doaçõesdependentes- Familiares dos beneficiáriosdoadores- Pessoas/empresas que fazem doações
categorias_produtos- Categorias (roupas, calçados, alimentos, etc.)produtos- Itens individuais do estoquemovimentacoes_estoque- Histórico de entrada/saída
doacoes- Registro das doações recebidasitens_doacao- Produtos específicos de cada doação
distribuicoes- Entregas para beneficiáriositens_distribuicao- Produtos específicos distribuídos
audit_logs- Logs de auditoria para rastreabilidadeconfiguracoes_sistema- Configurações globaisnotificacoes- Sistema de notificaçõesatividades_sistema- Atividades para o dashboardperiodos_mensais- Controle de períodos e limites
💡 O projeto utiliza um banco de dados compartilhado no Supabase. Todas as máquinas de desenvolvimento podem usar o mesmo banco para ter acesso aos mesmos dados.
git clone https://github.com/LuizAltissimo/Sistema_Sanem.git
cd Sistema_Sanemnpm installCrie o arquivo .env.local na raiz do projeto com as credenciais do banco já configurado:
# Banco de dados SANEM já configurado (use estas credenciais)
VITE_SUPABASE_URL=https://jqpfqwbzdpdvguoulmff.supabase.co
VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpxcGZxd2J6ZHBkdmd1b3VsbWZmIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTAwOTU0NjgsImV4cCI6MjA2NTY3MTQ2OH0.ryOYXPDk72A-Qukjf9lq8-BjdiiCMQGsoBQLxPbK764npm run dev-
URL:
http://localhost:5173 -
Email:
superadmin@sanem.org -
Senha:
123 -
Papel: Super Administrador
-
Email:
admin@sanem.org -
Senha:
123 -
Papel: Administrador
-
Email:
voluntario@sanem.org -
Senha:
123 -
Papel: Voluntário
- Execute
npm run dev - Acesse
http://localhost:5173 - Faça login com
superadmin@sanem.org/123 - Se aparecer o Dashboard = ✅ Sucesso!
- Arquivo
.env.localcriado na raiz do projeto - Credenciais copiadas exatamente como mostrado
-
npm installexecutado sem erros -
npm run devrodando na porta 5173 - Navegador acessando
http://localhost:5173
- Acesso: Completo ao sistema
- Permissões:
- Gerenciamento de usuários (criar, editar, desativar)
- Configurações do sistema
- Todos os relatórios e estatísticas
- Logs de auditoria completos
- Gestão completa de todas as funcionalidades
- Acesso: Operacional completo
- Permissões:
- Gestão de beneficiários, doações, estoque
- Controle de distribuições
- Processamento de doações
- Relatórios operacionais
- Sem acesso: Gestão de usuários e configurações do sistema
- Acesso: Operações básicas
- Permissões:
- Dashboard com estatísticas básicas
- Cadastro de beneficiários
- Registro de doações
- Visualização de estoque
- Sem acesso: Distribuições, relatórios avançados, gestão de usuários
Doador faz doação → Registro no sistema → Processamento → Entrada no estoque → Disponível para distribuição
Beneficiário solicita → Verificação de limite → Separação de itens → Distribuição → Baixa no estoque
Nova pessoa → Cadastro básico → Documentação → Ativação → Disponível no sistema
feat:nova funcionalidadefix:correção de bugdocs:documentaçãostyle:formataçãorefactor:refatoraçãotest:testeschore:tarefas de manutenção