Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧾 API de Processamento de Pedidos Desnormalizados - VerticalLogistica

Este projeto é uma API REST desenvolvida com Node.js, Express e MongoDB. A API recebe um arquivo .txt com dados de pedidos em formato desnormalizado, normaliza os dados e salva no banco de dados. Também permite a consulta dos pedidos agrupados por cliente e filtros como id do pedido e intervalo de compra.


📦 Funcionalidades

  • Upload de arquivo .txt com pedidos desnormalizados.
  • Normalização dos dados para estrutura JSON.
  • Salvamento dos pedidos no MongoDB.
  • Consulta dos pedidos em estrutura agrupada:
    • Por usuário → pedidos → produtos.
  • Filtros por:
    • Intervalo de datas (yyyy-mm-dd)
    • orderId

📁 Estrutura do Projeto

├── app.js
├── server.js
├── routes/
│   └── pedidoRoutes.js
├── controllers/
│   └── pedidoController.js
├── services/
│   ├── normalizarArquivoService.js
│   ├── normalizarRespostaService.js
│   └── pedidoService.js
├── models/
│   └── PedidoItem.js
├── uploads/
│   └── (arquivos .txt enviados)
└── .env

🚀 Como Rodar o Projeto

1. Clone o repositório

git clone https://github.com/brunobrilhante/VerticalLogistica.git
cd VerticalLogistica

2. Instale as dependências

npm install

3. Configure o MongoDB

Crie um arquivo .env na raiz com as variáveis:

MONGO_URI=mongodb://localhost:27017/PedidoItem
PORT=3000

4. Inicie o servidor

npm run dev

A API será executada em: http://localhost:3000


📥 Upload de Arquivo

📌 Rota

POST /

🧾 Payload (form-data)

Campo Tipo Descrição
file Arquivo .txt Arquivo com os pedidos

📁 Exemplo de linha no arquivo .txt:

Arquivos anexados na pasta /uploads

0000000001Zarelli                                    00000001230000000111000000051224 20211201

🔍 Consulta de Pedidos

✅ Retorna todos os pedidos normalizados

GET /pedidos

✅ Filtro por intervalo de data

GET /pedidos/:dataInicio/:dataFim

Exemplo:

GET /pedidos/2021-12-01/2021-12-31

✅ Filtro por ID do pedido

GET /pedido/:id

📄 Estrutura da Resposta

[
  {
    "user_id": 1,
    "name": "Zarelli",
    "orders": [
      {
        "order_id": 123,
        "total": "1024.48",
        "date": "2021-12-01",
        "products": [
          {
            "product_id": 111,
            "value": "512.24"
          },
          {
            "product_id": 122,
            "value": "512.24"
          }
        ]
      }
    ]
  }
]

📌 Tecnologias

  • Node.js
  • Express.js
  • MongoDB + Mongoose
  • Multer (upload de arquivos)
  • dotenv
  • Nodemon (desenvolvimento)

👨‍💻 Autor

Desenvolvido por Bruno Brilhante

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages