| api | ||
| etc | ||
| spa | ||
| README.md | ||
NAPPDesafio
Cadastro de Produto
Precisamos criar uma aplicação, em que iremos realizar o cadastro de Produto, Estoque e Preço. Essa aplicação precisa ter um frontend em react em que podemos criar, atualizar, listar e deletar produtos. As informações enviadas para essa API devem ser armazenadas em um banco de dados de sua preferência.
Para o cadastro ser completo precisamos receber via API as seguintes informações:
- Código
- Nome
- Estoque
- Estoque Total
- Estoque de Corte
- Preço De
- Preço Por
No banco de dados precisamos ter no mínimo seguintes informações de forma obrigatória:
- Código
- Nome
- Estoque
- Estoque Total
- Estoque de Corte
- Estoque Disponível
- Preço De
- Preço Por OBS: fique à vontade para acrescentar mais campos caso necessário
Algumas regras que devem ser seguidas:
- O código precisa ser único;
- Ao realizar um POST e/ou PUT deve ser enviado apenas o "Estoque Total" e "Estoque de Corte", mas a aplicação precisa calcular e salvar no "Estoque Disponível" o resultado do "Estoque Total" - "Estoque de Corte";
- O Preço De não pode ser inferior ao Preço Por;
- Precisamos "auditar" as informações, ou seja, precisamos ver data e hora das transações no banco de dados; A aplicação precisa estar de forma fácil para realizarmos o setup, de preferência Docker. A API não precisa ter autenticação, mas fique à vontade caso queira implementar.
Projeto de CRUD Simples de Produtos com React.js e Golang
Este é um projeto de uma aplicação de um CRUD simples desenvolvida com React.JS para o frontend e Golang (utilizando o framework Fiber) para o backend. O banco de dados utilizado é o Postgres. O propósito deste projeto é demonstrar minhas habilidades de desenvolvimento web e back-end.
Como Rodar o Projeto
Pré-requisitos
Antes de começar, certifique-se de ter o Docker e o Docker Compose instalados em sua máquina.
Passo 1: Clone o Repositório
Clone este repositório para a sua máquina usando o seguinte comando:
git clone https://gitea.pradoc.com.br/Rhuan/NAPPDesafio.git
Passo 2: Navegue até o Diretório do Projeto
Navegue até o diretório do projeto recém-clonado:
cd NAPPDesafio
Passo 3: Configure as Variáveis de Ambiente
Crie um arquivo .env no diretório raiz do projeto e configure as variáveis de ambiente necessárias. Você pode usar o arquivo .env.example como referência.
Para api preencha:
.env
PORT=3003
JWT_KEY=t35t4nd0
DATABASE_URL=postgresql://postgres:postgres@postgres-db-api:5432/postgres?sslmode=disable&pool_max_conns=10
Crie um arquivo .env no diretório raiz do projeto e configure as variáveis de ambiente necessárias. Você pode usar o arquivo .env.example como referência.
Para spa-insta preencha:
.env
VITE_APP_API_URL=http://127.0.0.1:3003
Passo 4: Navegue até o Diretório do Projeto
Navegue até o diretório do projeto /etc:
cd etc/
Passo 5: Inicie o Projeto com Docker Compose
Use o Docker Compose para construir e iniciar os contêineres do frontend, backend e banco de dados:
docker compose up --build
Isso irá construir as imagens Docker e iniciar os serviços. Aguarde até que todos os serviços estejam em execução.
Passo 6: Acesse a Aplicação
Após a conclusão dos passos anteriores, a aplicação deve estar em execução. Você pode acessá-la em seu navegador em:
http://localhost:3000
Funcionalidades Principais
-
Login: Fazer login na aplicação.
-
CRUD Produtos: CRUD básico de produtos.
Tecnologias Utilizadas
- React - Framework React para o frontend.
- Golang - Linguagem de programação para o backend.
- Fiber - Framework web para Golang.
- PostgreSQL - Banco de dados PostgreSQL.
- sqlc - Gerador de queries Sqlc.
Contribuição
Este projeto foi criado para fins de demonstração de habilidades. Se você deseja contribuir, sinta-se à vontade para abrir um problema ou enviar uma solicitação pull.
Licença
Este projeto é licenciado sob a licença MIT. Consulte o arquivo LICENSE para obter mais detalhes.