Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bulletsentence/credifit-fullstack
Projeto com o objetivo de avaliar as habilidades em programação.
https://github.com/bulletsentence/credifit-fullstack
docker nestjs nodejs postgresql reactjs
Last synced: about 7 hours ago
JSON representation
Projeto com o objetivo de avaliar as habilidades em programação.
- Host: GitHub
- URL: https://github.com/bulletsentence/credifit-fullstack
- Owner: BulletSentence
- Created: 2023-04-30T10:01:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-03T13:49:39.000Z (6 months ago)
- Last Synced: 2024-05-03T17:19:15.830Z (6 months ago)
- Topics: docker, nestjs, nodejs, postgresql, reactjs
- Language: JavaScript
- Homepage:
- Size: 874 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# * Fullstack Developer Node/React
> This is a challenge by CoodeshSurgiu uma nova demanda urgente e precisamos de uma área exclusiva para fazer o
upload de um arquivo das transações feitas na venda de produtos por nossos
clientes.
Nossa plataforma trabalha no modelo criador-afiliado, sendo assim um criador
pode vender seus produtos e ter 1 ou mais afiliados também vendendo esses
produtos, desde que seja paga uma comissão por venda.
Sua tarefa é construir uma interface web que possibilite o upload de um arquivo
de transações de produtos vendidos, normalizar os dados e armazená-los em um
banco de dados relacional.
Você deve utilizar o arquivo sales.txt para fazer o teste da
aplicação. O formato esá descrito na seção "Formato do arquivo de entrada".* Video: [Video de Apresentação do Challenge](https://www.loom.com/share/24cdfeced2fd480cb4e1602ed098c8d0)
### Stack:
- NodeJS
- ReactJS
- NestJS
- Typescript### Banco de Dados
- PostgreSQL### Documentação de Testes Detalhada (Wiki)
https://github.com/BulletSentence/Credifit-FullStack/wiki### Requisitos Funcionais
Ter uma tela (via formulário) para fazer o upload do arquivo
Fazer o parsing do arquivo recebido, normalizar os dados e armazená-los em um
banco de dados relacional, seguindo as definições de interpretação do arquivo
Exibir a lista das transações de produtos importadas por produtor/afiliado,
com um totalizador do valor das transações realizadas
Fazer tratamento de erros no backend, e reportar mensagens de erro amigáveis
no frontend.### Requisitos Não Funcionais
A aplicação deve ser simples de configurar e rodar, compatível com ambiente
Unix. Você deve utilizar apenas bibliotecas gratuitas ou livres.
Utilize docker para os diferentes serviços que compõe a aplicação para
que funcione facilmente fora do seu ambiente pessoal.
Use qualquer banco de dados relacional.
Use commits pequenos no Git e escreva uma boa descrição para cada um.
Escreva unit tests tanto no backend quanto do frontend.
Faça o código mais legível e limpo possível.
Escreva o código (nomes e comentários) em inglês. A documentação pode ser em
português se preferir.### Formato do arquivo de entrada
| Campo | Início | Fim | Tamanho | Descrição |
| -------- | ------ | --- | ------- | ------------------------------ |
| Tipo | 1 | 1 | 1 | Tipo da transação |
| Data | 2 | 26 | 25 | Data - ISO Date + GMT |
| Produto | 27 | 56 | 30 | Descrição do produto |
| Valor | 57 | 66 | 10 | Valor da transação em centavos |
| Vendedor | 67 | 86 | 20 | Nome do vendedor |### Tipos de transação
Esses são os valores possíveis para o campo Tipo:
| Tipo | Descrição | Natureza | Sinal |
| ---- | ----------------- | -------- | ----- |
| 1 | Venda produtor | Entrada | + |
| 2 | Venda afiliado | Entrada | + |
| 3 | Comissão paga | Saída | - |
| 4 | Comissão recebida | Entrada | + |## * Iniciando Projeto
0 - Iniciando o Node
cd backend
npm install
cd frontend
npm install
1 - Iniciando o Banco de Dados pelo Docker
cd backend
docker-compose up -d
2 - Criando as Migrações
cd backend
npx prisma migrate dev --name init
3 - Criando as Seeds
cd backend
npm run prisma:seed
4 - Iniciando Backend
cd backend
npm run start:dev
5 - Iniciando Frontend
cd frontend
npm run start:dev
6 - Testes
cd frontend
npm run test
cd backend
npm run test
## * Dependências e Bibliotecas
Prisma
> Object-Relational Mapping (ORM)
Class-validator
> Responsável por validar os dados do modelo ORM
react-router-dom
> Responsável pelo roteamento e escalabilidade
date-fns
> Usado na formatação de datas
Bulma
> Estilização da Frontend
react-data-table
> Base para a construção da tabela de dados na Frontend
## Preview
Screenshots