Uma aplicação completa para gerenciamento de produtos com interface web e API RESTful, desenvolvida com Node.js e Express.
Este projeto implementa um sistema de gerenciamento de produtos com operações CRUD (Create, Read, Update, Delete) completas e persistência de dados em arquivos JSON. A aplicação possui uma interface web amigável e uma API RESTful para integração com outros sistemas.
- Cadastro, edição e remoção de produtos
- Listagem de todos os produtos
- Busca de produtos por termo
- Validação de dados
- Persistência em arquivos JSON
- Interface web responsiva
- Node.js: Ambiente de execução JavaScript
- Express.js: Framework web para Node.js
- JavaScript: Linguagem de programação
- HTML/CSS: Interface do usuário
- Fetch API: Comunicação com o backend
- JSON: Formato de armazenamento de dados
app07/
├── controllers/ # Controladores da aplicação
│ └── produtosController.js
├── data/ # Diretório para armazenamento de dados
│ └── produtos.json
├── middleware/ # Middlewares do Express
│ ├── errorHandler.js
│ └── notFound.js
├── models/ # Modelos de dados
│ └── produtoModel.js
├── public/ # Arquivos estáticos
│ ├── css/
│ │ └── styles.css
│ ├── js/
│ │ └── main.js
│ └── index.html
├── routes/ # Rotas da API
│ └── produtosRoutes.js
├── utils/ # Utilitários
│ └── validador.js
├── app.js # Arquivo principal da aplicação
├── package.json # Dependências e scripts
└── README.md # Documentação
- Clone o repositório
- Instale as dependências:
npm install - Inicie o servidor:
ou para desenvolvimento:
npm startnpm run dev - Acesse a aplicação em
http://localhost:3000
| Método | Rota | Descrição |
|---|---|---|
| GET | /api/produtos | Lista todos os produtos |
| GET | /api/produtos/:id | Obtém um produto pelo ID |
| GET | /api/produtos/busca?termo=xyz | Busca produtos por termo |
| POST | /api/produtos | Cria um novo produto |
| PUT | /api/produtos/:id | Atualiza um produto existente |
| DELETE | /api/produtos/:id | Remove um produto |
{
"id": 1,
"nome": "Nome do Produto",
"descricao": "Descrição detalhada do produto",
"preco": 99.90,
"estoque": 100,
"categoria": "Categoria do Produto",
"dataCriacao": "2023-06-15T10:30:00.000Z",
"dataAtualizacao": "2023-06-16T14:20:00.000Z"
}- Arquitetura MVC: Separação de responsabilidades entre Model, View e Controller
- API RESTful: Implementação de endpoints seguindo princípios REST
- Middleware: Uso de middlewares para tratamento de erros e rotas não encontradas
- Validação de Dados: Validação e normalização de dados de entrada
- Persistência em Arquivos: Armazenamento de dados em arquivos JSON
- Frontend Interativo: Interface web com JavaScript para interação com a API
- Responsividade: Design adaptável a diferentes tamanhos de tela
- Implementar autenticação de usuários
- Adicionar testes automatizados
- Implementar paginação na listagem de produtos
- Adicionar upload de imagens para os produtos
- Migrar para um banco de dados relacional ou NoSQL
Este projeto está licenciado sob a licença ISC.