Skip to content

velo425/niceplanet-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Niceplanet Backend

API REST para cadastro e monitoramento de produtores e propriedades da carteira de clientes da Niceplanet.

Tecnologias

  • Node.js + Express
  • MySQL + Sequelize
  • JWT (autenticação)
  • bcryptjs (criptografia de senhas)

Pré-requisitos

  • Node.js 16+
  • MySQL 8+

Instalação

# Clone o repositório
git clone https://github.com/leomark-sio/Niceplanet-Backend.git

# Entre na pasta do projeto
cd Niceplanet-Backend

# Instale as dependências
npm install

Configuração

  1. Crie um arquivo .env na raiz do projeto (copie de .env.example):
cp .env.example .env
  1. Configure as variáveis de ambiente:
Variável Descrição Padrão
PORT Porta do servidor 8080
JWT_SECRET Chave secreta do JWT (obrigatório em produção)
JWT_EXPIRES_IN Expiração do token 3d
DB_NAME Nome do banco MySQL niceplanet
DB_USER Usuário do banco root
DB_PASSWORD Senha do banco -
DB_HOST Host do banco localhost
  1. Crie o banco de dados no MySQL:
CREATE DATABASE niceplanet;

Executando

npm start

O servidor estará disponível em http://localhost:8080.

Rotas da API

POST /cadastrar

Cadastra um novo usuário.

Body:

{
  "nomeUsuario": "seu_usuario",
  "senhaUsuario": "sua_senha"
}

POST /login

Autentica e retorna um token JWT.

Body:

{
  "nomeUsuario": "seu_usuario",
  "senhaUsuario": "sua_senha"
}

Resposta:

{
  "error": false,
  "mensagem": "Login realizado com sucesso!",
  "token": "eyJhbGciOiJIUzI1NiIs..."
}

Use o token no header das requisições protegidas:

Authorization: Bearer <seu_token>

POST /AddProdutorPropriedade (autenticado)

Cadastra produtor e/ou propriedade.

Body – ambos:

{
  "produtor": {
    "nomeProdutor": "Nome do Produtor",
    "cpfProdutor": "12345678900"
  },
  "propiedade": {
    "nomePropriedade": "Nome da Propriedade",
    "cadastroRural": "00XX0115322247C65"
  }
}

Body – apenas produtor:

{
  "produtor": {
    "nomeProdutor": "Nome do Produtor",
    "cpfProdutor": "12345678900"
  }
}

Body – apenas propriedade:

{
  "propiedade": {
    "nomePropriedade": "Nome da Propriedade",
    "cadastroRural": "00XX0115322247C65"
  }
}

GET /Get/:ids (autenticado)

Busca produtor e/ou propriedade por ID. IDs separados por hífen.

URL Descrição
/Get/5 Busca produtor com id 5
/Get/-3 Busca propriedade com id 3
/Get/5-3 Busca produtor 5 e propriedade 3

Estrutura do Projeto

Niceplanet-Backend/
├── config.js           # Configurações e variáveis de ambiente
├── main.js             # Entrada da aplicação e rotas
├── middlewares/
│   └── auth.js         # Middleware de autenticação JWT
├── models/
│   ├── banco.js        # Conexão Sequelize
│   ├── Produtor.js     # Modelo Produtor
│   ├── Propriedade.js  # Modelo Propriedade
│   └── Usuario.js      # Modelo Usuario
├── public/
│   ├── imgs/
│   └── index.html      # Documentação da API
└── .env.example        # Exemplo de variáveis de ambiente

About

API REST para cadastro e monitoramento de produtores e propriedades da carteira de clientes da Niceplanet.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors