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
- 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.
- React
- Axios
- React-dropzone
- React-icons
- classnames
- Sass
- eslint
- stylelint
- Express
- Express-async-errors
- Joi
- Multer
- Papaparse
- Sequelize
- cors
- dotenv
- Typescript
- ts-node-dev
- sequelize-cli
- mysql2
- eslint
- MySQL 8
- Node 16^
- npm 8.5.0^
- Abra o terminal e clone o repositório:
git clone git@github.com:ThiagoBarbosaDev/csv-reader-full-stack-app.git
-
Navegue até a raíz do projeto
-
rode o comando
docker-compose up
- Espere todos os serviços ficarem de pé entre no
http://localhost:5173/
- Abra o terminal e clone o repositório:
git clone git@github.com:ThiagoBarbosaDev/csv-reader-full-stack-app.git
- Vá para a raíz do frontend projeto:
cd csv-reader-full-stack-app/frontend
- Instale as dependencias do frontend
npm install
- Inicie o servidor frontend do projeto
npm start
-
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.
-
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.
-
Entre na pasta raíz do backend do projeto
cd ../backend
- Instale as dependência
npm install
- Rode o script que irá criar a tabela e popular os dados
npm run db:reset
- Rode o servidor backend da aplicação
npm run dev
- Abra seu navegador no http://localhost:3000/
Qualquer dúvida, questionamento ou feedback entrar em contato por: