/TXAI-challenge

Teste técnico para Desenvolvedor Fullstack na TXAI.

Primary LanguageJavaScript

Desafio TXAI

Sobre o projeto

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.

Tecnologias Utilizadas

Backend

🔗 Node.js

🔗 Express

🔗 MySQL

🔗 Joi

🔗 ESLint

Frontend

🔗 React

🔗 Axios

🔗 ESLint

Pré-Requisitos

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.

Instalação

-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.

Como utilizar

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.

TelaDeLogin

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.

TelaDeCadastro

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.

TelaDeProdutos

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.

TelaDePerfil