Desafio Técnico para processo seletivo, este projeto consiste na implementação de um um sistema de controle de estoque com um login, CRUD de produtos e CRUD de usuários.
Onde feito o login e gerado um token para a autenticação do usuário, pois apenas o próprio usuário pode ver, criar, atualizar e deletar seus produtos em estoque.
🔗 Node.js
🔗 Express
🔗 MySQL
🔗 Joi
🔗 ESLint
🔗 React
🔗 Axios
🔗 ESLint
Este projeto Utiliza o banco de dados MySQL, para o funcionamento é necessário ter o banco de dados em sua máquina. Para instruções sobre a instalação do banco de dados acesse MySQL.
-Clone o repositório através da seguinte chave https: https://github.com/devwelljr/TXAI-challenge.git
-Instale as dependências do backend e frontend, entrando na raiz ./backend
dando npm install
e o mesmo processo no frontend.
-Crie um arquivo de variáveis de ambiente na raiz do ./backend
, .env
seguindo o arquivo .env.example
como molde.
-Dentro da raiz do backend ./backend
rode no terminal npm run db:reset
ou os seguintes comandos: npx sequelize-cli db:create && npx sequelize-cli db:migrate && npx sequelize-cli db:seed:all
, assim o sequelize irá criar o banco de dados no MySQL e popular o banco com alguns usuários. PS: O usuário sistematxai
pedido será populado com o comando npx sequelize-cli db:seed:all
.
-Para rodar a aplicação de npm start
no ./frontend
e no ./backend
.
Login: http://localhost:3000/login
A aplicação começa com o cliente tendo que fazer login ou se cadastrar no Estoque TXAI
, onde deve gitar seu usuário
com no mínimo 4 carácteres e sua senha.
Cadastro: http://localhost:3000/register
Na tela de cadastro para se criar uma conta o usuário precisa cadastrar seu usuário
com no mínimo 4 carácteres, sua senha
com no mínimo 6 carácteres e um email
válido.
PS: O email
é unico no sistema, não sendo possível ter dois usuários com o mesmo email.
Produtos: http://localhost:3000/customer/products
Na tela de produtos são renderizados cards com os produtos daquele usuário logado, onde no canto esquerdo é possível adicionar um novo produto, onde deve-se colocar nome
com no mínimo 2 carácteres, preço
com preço mínimo de R$ 0.01 e quantidade
que deve ser maior que 0.
Nos cards há dois botões sendo o de lixeira para deletar o produto e o lápis para edição do produto, sendo que deve-se colocar nos inputs as alterações desejadas e logo após clicar no botão de lápis.
Produtos: http://localhost:3000/customer/perfil
Nesta tela o usuário pode ver seu usuário e email cadastrado e podendo alterar seu usuário
e email
ou deletar seu perfil.