API de Catálogo de Produtos desenvolvida em Node.js com Express e Sequelize, utilizando SQLite como banco de dados local. Inclui um frontend básico para gerenciamento de produtos e categorias.
- CRUD completo para Categorias e Produtos
- Paginação na listagem de produtos
- Busca por nome ou descrição de produtos
- Filtro por categoria
- Frontend responsivo com interface moderna
- Banco de dados SQLite para desenvolvimento local
- Node.js (versão 14 ou superior)
- npm ou yarn
- Clone o repositório:
git clone <url-do-repositorio>
cd Cat-logodeProdutos- Instale as dependências:
npm install- Execute o projeto em modo de desenvolvimento:
npm run dev- Acesse a aplicação:
- Frontend: http://localhost:3000
- API: http://localhost:3000/api
.
├── src/
│ ├── models/
│ │ ├── category.js # Modelo de Categoria
│ │ ├── product.js # Modelo de Produto
│ │ └── index.js # Configuração de associações
│ ├── controllers/
│ │ ├── categoryController.js # Controller de Categorias
│ │ └── productController.js # Controller de Produtos
│ ├── routes/
│ │ ├── categoryRoutes.js # Rotas de Categorias
│ │ └── productRoutes.js # Rotas de Produtos
│ ├── config/
│ │ └── database.js # Configuração do banco
│ └── app.js # Aplicação principal
├── public/
│ ├── index.html # Frontend principal
│ ├── styles.css # Estilos CSS
│ └── script.js # JavaScript do frontend
├── database.sqlite # Banco de dados SQLite
├── package.json
└── README.md
id(auto-incremento)name(string, obrigatório, único)createdAt/updatedAt
id(auto-incremento)name(string, obrigatório)description(string opcional)price(decimal, obrigatório)categoryId(FK → Categoria)createdAt/updatedAt
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /api/categories |
Criar categoria |
| GET | /api/categories |
Listar todas as categorias |
| GET | /api/categories/:id |
Obter categoria por ID |
| PUT | /api/categories/:id |
Atualizar categoria |
| DELETE | /api/categories/:id |
Excluir categoria |
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /api/products |
Criar produto |
| GET | /api/products |
Listar produtos (com paginação, busca e filtro) |
| GET | /api/products/:id |
Obter produto por ID |
| PUT | /api/products/:id |
Atualizar produto |
| DELETE | /api/products/:id |
Excluir produto |
curl -X POST http://localhost:3000/api/categories \
-H "Content-Type: application/json" \
-d '{"name": "Eletrônicos"}'curl "http://localhost:3000/api/products?page=1&limit=5"curl "http://localhost:3000/api/products?q=smartphone"curl "http://localhost:3000/api/products?categoryId=1"curl -X POST http://localhost:3000/api/products \
-H "Content-Type: application/json" \
-d '{
"name": "Smartphone XYZ",
"description": "Smartphone com tela de 6.1 polegadas",
"price": 999.99,
"categoryId": 1
}'O frontend inclui:
- Interface responsiva para desktop e mobile
- Gerenciamento de categorias com CRUD completo
- Gerenciamento de produtos com:
- Paginação
- Busca em tempo real
- Filtro por categoria
- Modais para criação/edição
- Feedback visual para ações do usuário
- Design moderno com CSS Grid e Flexbox
# Desenvolvimento (com nodemon)
npm run dev
# Produção
npm start- Node.js - Runtime JavaScript
- Express - Framework web
- Sequelize - ORM para banco de dados
- SQLite - Banco de dados local
- HTML5/CSS3/JavaScript - Frontend
- Nodemon - Desenvolvimento
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes. Catálogo de Produtos em Node.js (JavaScript) com Express e Sequelize, usando SQLite como banco local.