API desenvolvida para apoiar o sistema AquaMA, uma plataforma educativa e colaborativa voltada para o monitoramento participativo e a conscientização sobre alagamentos em São Luís/MA.
/src
├── config/ # Conexão com o banco de dados
├── controllers/ # Lógica de negócio (cadastro, login, CRUD de relatos)
├── middlewares/ # Autenticação, validações e tratamento de erros
├── models/ # Schemas do banco de dados (Usuário, Relato)
├── routes/ # Definição dos endpoints da API
└── server.js # Arquivo principal que inicia o servidor
- Node.js instalado
- MongoDB (local ou Atlas)
- Git
- Clone o repositório:
git clone https://github.com/uriel-ewerton/api-aqua-ma.git
cd api-aqua-ma- Instale as dependências:
npm install- Crie um arquivo
.envna raiz do projeto com o seguinte conteúdo (ajuste conforme seu ambiente):
PORT=3000
MONGO_URI=mongodb://localhost:27017/aquama
JWT_SECRET=suaChaveSecretaAquiPara rodar o servidor em modo de desenvolvimento:
npm run devAcesse: http://localhost:3000
npm install
node src/server.jshttp://localhost:3000/api
Cadastra um novo usuário.
Body:
{
"name": "João Silva",
"email": "joao@exemplo.com",
"password": "123456"
}Autentica o usuário e retorna um token JWT.
Body:
{
"email": "joao@exemplo.com",
"password": "123456"
}Resposta:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp..."
}(Privado - requer token JWT)
Cria um novo relato de alagamento.
Body:
{
"descricao": "Rua completamente alagada após a chuva",
"severity": "high",
"location": {
"type": "Point",
"coordinates": [-44.30, -2.53]
}
}Resposta:
{
"message": "Relatório enviado com sucesso."
}Retorna todos os relatos cadastrados.
Retorna um relato específico pelo ID.
(Privado - apenas o autor pode remover)
Remove um relato do banco de dados.
Verifica se o servidor está online.
Resposta:
{
"status": "online"
}{
name: String,
email: String, // único
password: String, // criptografada com bcryptjs
}{
user: ObjectId, // referência ao autor
description: String,
severity: String, // 'low', 'medium', 'high', 'critical'
location: {
type: "Point",
coordinates: [longitude, latitude]
},
createdAt: Date
}Você pode visualizar todos os endpoints de forma interativa em:
- Local: http://localhost:5000/api-docs
- Produção (Render):
https://<seu-servico>.onrender.com/api-docs
- Node.js
- Express
- MongoDB + Mongoose
- JWT (JSON Web Tokens)
- bcryptjs (criptografia de senhas)
- dotenv (variáveis de ambiente)
- Swagger UI Express (documentação interativa)
Código-fonte disponível em:
👉 github.com/uriel-ewerton/api-aqua-ma
Este projeto está licenciado sob a licença MIT.
Feito com 💙 para o programa Trilhas Inova Maranhão.