Skip to content

CancianiWill/Cat-logodeProdutos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Catálogo de Produtos API

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.

🚀 Funcionalidades

  • 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

📋 Requisitos

  • Node.js (versão 14 ou superior)
  • npm ou yarn

🛠️ Instalação

  1. Clone o repositório:
git clone <url-do-repositorio>
cd Cat-logodeProdutos
  1. Instale as dependências:
npm install
  1. Execute o projeto em modo de desenvolvimento:
npm run dev
  1. Acesse a aplicação:

📁 Estrutura do Projeto

.
├── 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

🗄️ Modelos de Dados

Categoria

  • id (auto-incremento)
  • name (string, obrigatório, único)
  • createdAt / updatedAt

Produto

  • id (auto-incremento)
  • name (string, obrigatório)
  • description (string opcional)
  • price (decimal, obrigatório)
  • categoryId (FK → Categoria)
  • createdAt / updatedAt

🔗 Endpoints da API

Categorias

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

Produtos

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

📝 Exemplos de Uso

Criar uma categoria

curl -X POST http://localhost:3000/api/categories \
  -H "Content-Type: application/json" \
  -d '{"name": "Eletrônicos"}'

Listar produtos com paginação

curl "http://localhost:3000/api/products?page=1&limit=5"

Buscar produtos

curl "http://localhost:3000/api/products?q=smartphone"

Filtrar por categoria

curl "http://localhost:3000/api/products?categoryId=1"

Criar um produto

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
  }'

🎨 Frontend

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

🚀 Scripts Disponíveis

# Desenvolvimento (com nodemon)
npm run dev

# Produção
npm start

🛠️ Tecnologias Utilizadas

  • Node.js - Runtime JavaScript
  • Express - Framework web
  • Sequelize - ORM para banco de dados
  • SQLite - Banco de dados local
  • HTML5/CSS3/JavaScript - Frontend
  • Nodemon - Desenvolvimento

📄 Licença

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.

About

Catálogo de Produtos em Node.js (JavaScript) com Express e Sequelize, usando SQLite como banco local.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors