https://github.com/andersonbosa/desafio-desenvolvedor-fullstack-vision-bill
https://github.com/andersonbosa/desafio-desenvolvedor-fullstack-vision-bill
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/andersonbosa/desafio-desenvolvedor-fullstack-vision-bill
- Owner: andersonbosa
- License: cc0-1.0
- Created: 2024-10-17T22:31:14.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-23T18:03:15.000Z (9 months ago)
- Last Synced: 2025-05-18T06:09:29.137Z (6 months ago)
- Language: TypeScript
- Size: 1.46 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
[](http://creativecommons.org/publicdomain/zero/1.0/)
[](#)
[](#)
---
### Como rodar (em docker)
1. Vá até pasta src onde se encontra Makefile [(aqui)](./src/)
2. Rode `make dev` para inicializar os containers
3. Caso seja primeira vez iniciando o banco de dados será preciso rodar o comando abaixo para iniciá-lo:
```bash
POSTGRES_URL="postgres://psql_user:psql_pass@localhost:5432/lumi_db" pnpm db:first-setup
```
4. Após isso a aplicação frontend estará online no endereço http://localhost:3001
### Cliente de API
- Usar Insomnia para importar a configuração em [insomnia_api_client.json](./insomnia_api_client.json)
### Planejamento / trabalho futuro
Vou detalhar aqui abaixo as coisas que faltaram na aplicação.
- Testes unitários e de interface
- Tabela de exibição dos dados:
- Faltou paginação
- Faltou pesquisa
- Faltou filtros
- Mais gráficos
#### Rascunho de tarefas a serem feitas que não completei.
```
└─ desafio-desenvolvedor-fullstack-vision-bill
├─ fastify.d.ts
│ └─ line 7: TODO define user structure decoded from JWT
├─ error-handler.plugin.ts
│ └─ line 14: TODO remove in development
├─ parsers.ts
│ └─ line 202: TODO create specific table on database to store this kind of data ?
├─ upload.controller.ts
│ ├─ line 20: DONE create basic structure to parse file
│ ├─ line 22: NOTE future enhancement: allow upload of multiple files same time
│ ├─ line 34: DONE create fingerprint of the file: dont recreate if it already uploaded
│ ├─ line 53: DONE define Output object of parsedData (review test info)
│ ├─ line 56: DONE persist parsed data on database
│ ├─ line 79: DONE persist file on disk where fingerprint is the filename
│ └─ line 86: DONE return fileId to user query the parsed Data throught API
├─ healthcheck.schema.ts
│ └─ line 1: TODO use fastify with zod type provider
└─ dashboard.view.tsx
└─ line 31: NOTE future enhancement download overview report ?
```