Sistema completo de gestão de pedidos e notas fiscais desenvolvido com as mais modernas tecnologias.
- Sistema de login seguro com JWT
- Controle de acesso baseado em roles (Admin, Gerente, Operador)
- Criptografia de senhas com bcrypt
- Middleware de autenticação e autorização
- Criação, edição e exclusão de pedidos
- Controle de status (Pendente, Em Produção, Pronto, Entregue, Cancelado)
- Cálculo automático de valores
- Filtros e busca avançada
- Paginação de resultados
- Criação de notas fiscais vinculadas aos pedidos
- Controle de status (Rascunho, Emitida, Cancelada, Paga)
- Cálculo automático de impostos
- Validação de dados fiscais
- Controle de vencimento
- Cadastro e gerenciamento de usuários
- Controle de permissões por role
- Perfil de usuário personalizável
- Histórico de ações
- Estatísticas em tempo real
- Gráficos de status de pedidos e notas fiscais
- Indicadores de performance
- Ações rápidas
- Node.js com Express
- MongoDB com Mongoose
- JWT para autenticação
- bcryptjs para criptografia
- express-validator para validações
- helmet e cors para segurança
- mongoose-paginate-v2 para paginação
- React 18 com Hooks
- React Router para navegação
- Tailwind CSS para estilização
- React Hook Form para formulários
- Axios para requisições HTTP
- Lucide React para ícones
- React Hot Toast para notificações
- Node.js 16+
- MongoDB
- npm ou yarn
# Configuração automática
node setup-atlas.js# Linux/macOS
chmod +x setup-database.sh
./setup-database.sh
# Windows
setup-database.bat# 1. Instalar dependência
npm install mongodb
# 2. Importar dados
node database/import-mongodb.js
# 3. Ou usar o script de seed do backend
cd backend
npm run seed- 5 usuários com diferentes níveis de acesso
- 8 pedidos com produtos variados
- 5 notas fiscais em diferentes status
- Admin: admin@pedidofacil.com / admin123
- Gerente: gerente@pedidofacil.com / gerente123
- Operador: operador@pedidofacil.com / operador123
git clone <url-do-repositorio>
cd PedidoFacilcd backend
npm install
cp env.example .env
# Edite o arquivo .env com suas configurações
npm run seed # Popula o banco com dados iniciais
npm run dev # Inicia o servidor de desenvolvimentocd frontend
npm install
npm start # Inicia o servidor de desenvolvimento- Frontend: http://localhost:3000
- Backend: http://localhost:5000
- Email: admin@pedidofacil.com
- Senha: admin123
- Email: gerente@pedidofacil.com
- Senha: gerente123
- Email: operador@pedidofacil.com
- Senha: operador123
PedidoFacil/
├── backend/
│ ├── controllers/ # Controladores da API
│ ├── models/ # Modelos do MongoDB
│ ├── routes/ # Rotas da API
│ ├── middleware/ # Middlewares customizados
│ ├── config/ # Configurações
│ ├── scripts/ # Scripts utilitários
│ └── server.js # Servidor principal
├── frontend/
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── pages/ # Páginas da aplicação
│ │ ├── contexts/ # Contextos React
│ │ └── App.js # Componente principal
│ └── package.json
├── database/
│ ├── pedidofacil-db.json # Dados completos para importação
│ ├── import-mongodb.js # Script de importação (local)
│ ├── import-atlas.js # Script de importação (Atlas)
│ ├── config-atlas.js # Configuração MongoDB Atlas
│ └── README.md # Documentação do banco
├── setup-atlas.js # Configuração automática Atlas
├── setup-database.sh # Script de instalação (Linux/macOS)
├── setup-database.bat # Script de instalação (Windows)
└── README.md
IMPORTANTE: Os seguintes arquivos contêm informações sensíveis e NÃO devem ser commitados:
.env(variáveis de ambiente)database/config-atlas.js(configuração do MongoDB Atlas)backend/.env(configuração do backend)
Use os arquivos de exemplo fornecidos:
backend/env.example→ copie parabackend/.envdatabase/config-atlas.example.js→ copie paradatabase/config-atlas.js
# Banco de Dados
MONGO_URI=mongodb://localhost:27017/pedidofacil
# Servidor
PORT=5000
NODE_ENV=development
# JWT
JWT_SECRET=sua_chave_secreta_muito_segura_aqui
# Email (opcional)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=seu_email@gmail.com
EMAIL_PASS=sua_senha_de_appPOST /api/users/register- Registrar usuárioPOST /api/users/login- LoginGET /api/users/profile- Perfil do usuárioPUT /api/users/profile- Atualizar perfil
GET /api/orders- Listar pedidosPOST /api/orders- Criar pedidoGET /api/orders/:id- Buscar pedidoPUT /api/orders/:id- Atualizar pedidoDELETE /api/orders/:id- Deletar pedidoGET /api/orders/stats- Estatísticas
GET /api/invoices- Listar notas fiscaisPOST /api/invoices- Criar nota fiscalGET /api/invoices/:id- Buscar nota fiscalPUT /api/invoices/:id- Atualizar nota fiscalPATCH /api/invoices/:id/emitir- Emitir nota fiscalPATCH /api/invoices/:id/cancelar- Cancelar nota fiscalPATCH /api/invoices/:id/pagar- Marcar como paga
A interface foi desenvolvida com foco na usabilidade e experiência do usuário:
- Design Responsivo - Funciona em desktop, tablet e mobile
- Tema Moderno - Interface limpa e profissional
- Navegação Intuitiva - Sidebar com navegação clara
- Feedback Visual - Notificações e estados de loading
- Acessibilidade - Componentes acessíveis
- Autenticação JWT
- Criptografia de senhas
- Validação de dados
- Rate limiting
- Headers de segurança
- CORS configurado
- Relatórios avançados
- Integração com SEFAZ
- Upload de arquivos
- Notificações por email
- Backup automático
- API para terceiros
- App mobile
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido com ❤️ para simplificar a gestão empresarial