Skip to content

ThiagoBarbosaDev/csv-reader-full-stack-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

csv-reader-full-stack-app

Aplicação

Aplicação SPA, em React, Node com express, fullstack que utiliza um banco de dados MySQL para armazenar dados de produtos, esses dados são utilizados para gerar pacotes promocionais.

Todos os requerimentos do desafio cumpridos..

O app permite o usuário enviar um arquivo .csv que será validado de acordo com várias regras e regras de negócios, e caso tudo esteja de acordo habilita-se então a opção para atualizar o banco de dados com os preços dos produtos.

A aplicação é responsiva!

P.S Alguns arquivos .csv de exemplo estão disponíveis na pasta csv-exemplos

Validações:

  • Os dados precisam estar preenchidos corretamente no arquivo .csv.
  • O código do produto alterado precisa existir no banco de dados.
  • O novo preço não pode ser inferior ao valor do preço de custo do produto a ser alterado.
  • O preço a ser alterado não pode ser 10% maior ou menor do que o valor anterior.

Dependências

Frontend

Produção
  • React
  • Axios
  • React-dropzone
  • React-icons
  • classnames
Desenvolvimento
  • Sass
  • eslint
  • stylelint

Backend

Produção
  • Express
  • Express-async-errors
  • Joi
  • Multer
  • Papaparse
  • Sequelize
  • cors
  • dotenv
Desenvolvimento
  • Typescript
  • ts-node-dev
  • sequelize-cli
  • mysql2
  • eslint

Banco de dados

  • MySQL 8

Instalação da aplicação

Pré Requisitos:

  • Node 16^
  • npm 8.5.0^

Rodando a aplicação em docker:

  1. Abra o terminal e clone o repositório:
git clone git@github.com:ThiagoBarbosaDev/csv-reader-full-stack-app.git
  1. Navegue até a raíz do projeto

  2. rode o comando

docker-compose up
  1. Espere todos os serviços ficarem de pé entre no http://localhost:5173/

Rodando a aplicação localmente


  1. Abra o terminal e clone o repositório:
git clone git@github.com:ThiagoBarbosaDev/csv-reader-full-stack-app.git
  1. Vá para a raíz do frontend projeto:
cd csv-reader-full-stack-app/frontend
  1. Instale as dependencias do frontend
npm install
  1. Inicie o servidor frontend do projeto
npm start
  1. Abra uma nova janela do terminal sem fechar a anterior, abra uma instância do MySQL 8, por padrão ele tentara utilizar a senha '123456' para conectar no banco na porta 3306, caso queira mudar este comportamento, remove o ".example" do arquivo ".env.example" e preencha a porta e o password da maneira que lhe for conveniente.

  2. Atenção, por padrão a aplicação roda na porta 3001, no momento ela encontra-se hardcodeada dessa maneira, portanto não troque a porta em que o backend roda.

  3. Entre na pasta raíz do backend do projeto

cd ../backend
  1. Instale as dependência
npm install
  1. Rode o script que irá criar a tabela e popular os dados
npm run db:reset
  1. Rode o servidor backend da aplicação
npm run dev
  1. Abra seu navegador no http://localhost:3000/

Contato

Qualquer dúvida, questionamento ou feedback entrar em contato por:

About

Product app that uses .csv to update database

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published