Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joao1barbosa/csv-operator-assignment
Full-stack application for assigning clients to operators with CSV import and export.
https://github.com/joao1barbosa/csv-operator-assignment
csv mysql nestjs nextjs typescript
Last synced: 7 days ago
JSON representation
Full-stack application for assigning clients to operators with CSV import and export.
- Host: GitHub
- URL: https://github.com/joao1barbosa/csv-operator-assignment
- Owner: joao1barbosa
- License: mit
- Created: 2024-09-04T18:12:21.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-09-13T19:21:52.000Z (5 months ago)
- Last Synced: 2024-12-19T14:45:52.087Z (2 months ago)
- Topics: csv, mysql, nestjs, nextjs, typescript
- Language: TypeScript
- Homepage:
- Size: 6.04 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CSV-Operator-Assignment
Este projeto consiste na solução de um desafio técnico para desenvolvedor fullstack. Dentre as funcionalides estão:
- Visualização: Permite visualizar os operadores cadastrados e os clientes designados a eles.
- Cadastro de Clientes: Oferece a funcionalidade de enviar um arquivo CSV para o cadastro imediato de clientes.
- Exportação de Clientes: Possibilita baixar um arquivo CSV com a lista de todos os clientes cadastrados.Mais detalhes no arquivo [SinkaTest](./docs/SinkaTest.md).
## 📷 Demonstrações
### Dashboard
![]()
### Upload de arquivo
![]()
### Responsividade
![]()
## 🎲 Estrutura do Banco de Dados
![]()
## 📱 Technologias
- **TypeScript**
- **React**
- **Next.js**
- **React Query**
- **React Hook Form**
- **Zod**
- **Tailwind**
- **Componentes do ShadCN**
- **NestJS**
- **Multer**
- **CSV-parser**
- **Fast-CSV**
- **Prima**
- **Jest**
- **MySQL**## 🌐 Variáveis Ambiente
Como a aplicação é construída usando containers docker e não é uma aplicação que será mantida em produção, optei por deixar o arquivo **.env.example** com as variáveis já configuradas.
Desta forma é necessário apenas renomear o aquivo para **.env**.## 🏁 Dependências
- Docker
- Docker Compose V2## 🏗 Setup e Run
Para construir e executar a aplicação, basta ter as dependências instaladas e executar o comando abaixo:
```sh
docker compose up --build -d
```## 📋 Endpoints da API
### App
- **GET** `/` - Retorna "API on!".
### Operators
- **POST** `/operators` - Cria um operador.
- **Body:** `CreateOperatorDto`
- **GET** `/operators` - Retorna todos os operadores.- **GET** `/operators/:id` - Retorna um operador pelo ID.
- **Params:** `id` (number)
- **PATCH** `/operators/:id` - Atualiza um operador.
- **Params:** `id` (number)
- **Body:** `UpdateOperatorDto`- **DELETE** `/operators/:id` - Remove um operador.
- **Params:** `id` (number)### Clients
- **POST** `/clients` - Cria um cliente.
- **Body:** `CreateClientDto`
- **GET** `/clients` - Retorna todos os clientes.
- **GET** `/clients/download` - Exporta clientes em CSV.
- **GET** `/clients/redistribute` - Redistribui clientes entre operadores.
- **POST** `/clients/upload` - Faz upload de um CSV de clientes.
- **Form Data:** `file` (CSV)
- **GET** `/clients/:id` - Retorna um cliente pelo ID.
- **Params:** `id` (number)
- **PATCH** `/clients/:id` - Atualiza um cliente.
- **Params:** `id` (number)
- **Body:** `UpdateClientDto`- **DELETE** `/clients/:id` - Remove um cliente.
- **Params:** `id` (number)