API REST para cadastro e monitoramento de produtores e propriedades da carteira de clientes da Niceplanet.
- Node.js + Express
- MySQL + Sequelize
- JWT (autenticação)
- bcryptjs (criptografia de senhas)
- Node.js 16+
- MySQL 8+
# 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- Crie um arquivo
.envna raiz do projeto (copie de.env.example):
cp .env.example .env- 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 |
- Crie o banco de dados no MySQL:
CREATE DATABASE niceplanet;npm startO servidor estará disponível em http://localhost:8080.
Cadastra um novo usuário.
Body:
{
"nomeUsuario": "seu_usuario",
"senhaUsuario": "sua_senha"
}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>
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"
}
}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 |
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