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.
- Upload de arquivo
.txtcom 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
- Intervalo de datas (
├── 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
git clone https://github.com/brunobrilhante/VerticalLogistica.git
cd VerticalLogisticanpm installCrie um arquivo .env na raiz com as variáveis:
MONGO_URI=mongodb://localhost:27017/PedidoItem
PORT=3000
npm run devA API será executada em: http://localhost:3000
POST /
| Campo | Tipo | Descrição |
|---|---|---|
| file | Arquivo .txt |
Arquivo com os pedidos |
0000000001Zarelli 00000001230000000111000000051224 20211201
GET /pedidos
GET /pedidos/:dataInicio/:dataFim
Exemplo:
GET /pedidos/2021-12-01/2021-12-31
GET /pedido/:id
[
{
"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"
}
]
}
]
}
]- Node.js
- Express.js
- MongoDB + Mongoose
- Multer (upload de arquivos)
- dotenv
- Nodemon (desenvolvimento)
Desenvolvido por Bruno Brilhante