ISOAP é um sistema web de gerenciamento de pedidos, produtos, despesas e clientes voltado para empresas que comercializam sabão artesanal. Desenvolvido com a arquitetura MVC (Model-View-Controller), o projeto visa oferecer uma estrutura clara, organizada e escalável, utilizando tecnologias modernas do ecossistema Node.js.
O sistema está dividido em três camadas principais:
Responsável pela estrutura e manipulação dos dados da aplicação, cada modelo representa uma entidade do sistema, utilizando Mongoose para interagir com o banco de dados MongoDB.
ClienteModel: Armazena informações dos clientes (nome, endereço, telefone, etc.).ProdutoModel: Gerencia dados dos produtos, como nome, preço e quantidade.PedidoModel: Registra pedidos com cliente, itens, frete, pagamento e total.DespesaModel: Representa despesas operacionais.UsuarioModel: Guarda informações de login e permissões de acesso dos usuários.
Cada modelo implementa métodos como save, find, findOneAndUpdate, e deleteOne.
As views são arquivos EJS responsáveis por renderizar páginas HTML dinâmicas com os dados recebidos dos controladores. Elas são organizadas por entidade e incluem formulários e listagens para:
- Cadastro, edição e listagem de clientes, produtos, pedidos e despesas.
- Interfaces de login, registro e confirmação de exclusão de usuários.
- Utilização de layout base para padronização visual e navegação fluida.
Controladores lidam com a lógica de negócios e as requisições HTTP. Cada entidade possui um controlador com métodos como:
list: Exibe a lista de registros.addPage,editPage: Renderizam formulários.add,edit,delete: Realizam operações no banco de dados.
Controladores implementados:
ClienteProdutoPedidoDespesaUsuario
app.js: Ponto de entrada da aplicação, define middlewares, rotas, conexão com o banco de dados e inicialização do servidor Express.auth.js: Middleware de autenticação para proteger rotas.admin.js: Middleware para validar se o usuário é administrador.
- Node.js – Ambiente de execução JavaScript no backend.
- Express – Framework web para criação das rotas e estrutura do servidor.
- MongoDB – Banco de dados NoSQL para persistência dos dados.
- Mongoose – ODM para modelagem dos dados em MongoDB.
- EJS – Motor de templates para renderização dinâmica de páginas HTML.
- Passport.js – Autenticação de usuários.
- Express-session – Gerenciamento de sessões do usuário.
- Body-parser – Interpretação de dados enviados via formulário.
- dotenv – Gerenciamento de variáveis de ambiente.
- PDFKit – Geração de PDFs de pedidos.
- CRUD completo para:
- Clientes
- Produtos
- Pedidos
- Despesas
- Login e cadastro de usuários com verificação de administrador.
- Geração de PDF dos pedidos.
- Interface amigável e responsiva com feedback de ações.
- Estrutura escalável com base em padrões da engenharia de software.
- Cadastro de usuário disponível na página inicial.
- Usuários com
eAdmin = 1possuem acesso a funcionalidades administrativas.
- O sistema não utiliza frontend moderno (como React ou Vue), focando em simplicidade com EJS.
- O padrão MVC facilita a manutenção, reutilização de código e futuras expansões.
- Pode ser facilmente adaptado para outras áreas de comércio.
Projeto Final do ano letivo de 2023 da matéria de Processo de Engenharia de Software I ministrada pelo professor Victor Francisco Araya Santander e desenvolvida pelos alunos Eduardo Cozer, Geandro Silva e Vinicius Messaggi de Lima Ribeiro na Instituição de ensino superior UNIOESTE (Universidade Estadual do Oeste do Paraná)
Eduardo Cozer |
Geandro Silva |
Vinicius Messaggi de Lima Ribeiro |