140 lines
4.2 KiB
Markdown
140 lines
4.2 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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
|
|
|
|
```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
|
|
|
|
```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`:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```url
|
|
http://localhost:3000
|
|
```
|
|
|
|
## Funcionalidades Principais
|
|
|
|
- **Login**: Fazer login na aplicação.
|
|
|
|
- **CRUD Produtos**: CRUD básico de produtos.
|
|
|
|
|
|
|
|
## Tecnologias Utilizadas
|
|
|
|
- [React](https://react.dev/) - Framework React para o frontend.
|
|
- [Golang](https://golang.org) - Linguagem de programação para o backend.
|
|
- [Fiber](https://gofiber.io) - Framework web para Golang.
|
|
- [PostgreSQL](https://www.postgresql.org/) - Banco de dados PostgreSQL.
|
|
- [sqlc](https://sqlc.dev/) - 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](LICENSE) para obter mais detalhes. |