Sistema CRM/ERP desenvolvido em PHP 8+ + MySQL, com estrutura modular e escalável.
- PHP 8.1+
- MySQL 8.0+ ou MariaDB 10.6+
- Apache 2.4+ com
mod_rewritehabilitado (ou Nginx)
/var/www/html/crm-erp/ (ou dentro do seu htdocs)
# Crie o banco e as tabelas
mysql -u root -p < database/schema.sqlphp database/seed.phpCopie o hash gerado e atualize a coluna senha do usuário admin no banco:
UPDATE users SET senha = '$2y$12$HASH_AQUI' WHERE email = 'admin@sistema.com';config/config.php — configurações da aplicação:
define('APP_URL', 'http://localhost/crm-erp'); // URL do projeto
define('APP_ENV', 'development'); // ou 'production'config/database.php — credenciais do banco:
define('DB_HOST', 'localhost');
define('DB_NAME', 'crm_erp');
define('DB_USER', 'root');
define('DB_PASS', 'sua_senha');# Habilite mod_rewrite
a2enmod rewrite
service apache2 restartO .htaccess já está configurado para roteamento via index.php.
| Campo | Valor |
|---|---|
| URL | http://localhost/crm-erp |
admin@sistema.com |
|
| Senha | Admin@123 |
Importante: Altere as credenciais em produção!
crm-erp/
├── index.php # Ponto de entrada único
├── .htaccess # Roteamento Apache
│
├── config/
│ ├── config.php # Configurações centrais
│ ├── database.php # Conexão PDO (Singleton)
│ └── session.php # Sessão, flash, helpers
│
├── controllers/
│ └── AuthController.php # Login, logout, validações
│
├── models/
│ └── User.php # Model de usuário (PDO)
│
├── views/
│ ├── auth/
│ │ └── login.php # Tela de login
│ ├── dashboard/
│ │ └── index.php # Dashboard (protegido)
│ ├── layouts/
│ │ ├── sidebar.php # Menu lateral
│ │ └── flash.php # Mensagens flash
│ └── errors/
│ └── 404.php # Página 404
│
├── routes/
│ └── routes.php # Bootstrap e roteador
│
├── assets/
│ ├── css/style.css # Estilos (DM Sans, índigo)
│ └── js/app.js # Scripts frontend
│
├── database/
│ ├── schema.sql # SQL completo (tabelas + seed)
│ └── seed.php # Gerador de hash bcrypt
│
└── uploads/ # Uploads futuros
| Recurso | Status |
|---|---|
| PDO Prepared Statements | ✅ |
password_hash() bcrypt cost=12 |
✅ |
| Proteção CSRF em formulários | ✅ |
| Session Regeneration (fixation) | ✅ |
| Session Regeneration periódica (30min) | ✅ |
| Cookie HttpOnly + SameSite=Lax | ✅ |
| Sanitização de inputs | ✅ |
| Headers de segurança (via .htaccess) | ✅ |
| Auto-rehash de senha | ✅ |
| Mensagem de erro genérica (login) | ✅ |
| Bloqueio de arquivos sensíveis (.sql, .env) | ✅ |
| Etapa | Módulo | Status |
|---|---|---|
| 1 | Base + Autenticação | ✅ Concluída |
| 2 | Módulo de Clientes | 🔜 Próxima |
| 3 | Módulo de Pedidos | 🔜 |
| 4 | Financeiro | 🔜 |
| 5 | Relatórios & Charts | 🔜 |
| 6 | API REST | 🔜 |
Para adicionar novos módulos na Etapa 2, basta:
- Criar o model em
models/ClienteModel.php - Criar o controller em
controllers/ClienteController.php - Criar as views em
views/clientes/ - Registrar as rotas em
routes/routes.php - Adicionar item no menu
views/layouts/sidebar.php
Desenvolvido como base escalável para CRM/ERP completo.