O EcoColeta é uma plataforma que facilita o gerenciamento de resíduos e o acesso a pontos de coleta de materiais recicláveis. Os usuários podem cadastrar novos pontos de coleta, encontrar pontos próximos, visualizar informações sobre os materiais aceitos em cada ponto e registrar suas próprias contribuições para a reciclagem.
Funcionalidade Usuários | Status |
---|---|
O sistema deve iniciar carregando do banco de dados uma lista de usuários já cadastrados. | ✅ |
No endpoint de usuários, deve haver opções para login e cadastro de novos usuários. | ✅ |
Os usuários devem fornecer informações como nome, sexo, CPF, endereço, e-mail, senha, data de nascimento. | ✅ |
Regras de validação devem ser implementadas, como evitar o cadastro de pessoas com o mesmo CPF e ou mesmo email. | ✅ |
Funcionalidade Coleta de Resíduos | Status |
---|---|
Cada usuário pode cadastrar um ou mais locais de coleta de resíduos, fornecendo informações detalhadas sobre cada local. | ✅ |
Informações como nome do local, descrição, localidade, coordenadas geográficas, e outras devem ser capturadas. | ✅ |
O usuário deve ser capaz de resgatar o link do Google Maps apontando para o local cadastrado. | ✅ |
Regras específicas devem ser implementadas, como não permitir a deleção de um usuário que tenha locais associados. | 🚨 |
Acabei não me atentando na regra de deleção de usuário com local associado, e criei uma regra de deleção de outro usuário somente se a senha do usuário e o ID forem passados "deleteByID".
Implementação de Mecanismo de Autenticação (JWT) | Status |
---|---|
Todas as rotas, com exceção da rota de login e de cadastro de novo usuário, devem ser privadas. | ✅ |
Rotas privadas necessitam que o usuário tenha um token válido, disponível na requisição, para que sejam acessadas. | ✅ |
Exigências | Status |
---|---|
Banco de Dados Relacional | ✅ |
Documentação de Rotas com Swagger | ✅ |
Listar todos os locais do usuário autenticado | ✅ |
Listar informações de um local específico do usuário | ✅ |
Criar documentação no formato README.md, explicando a estrutura do projeto, como executá-lo localmente, e outras informações relevantes. | ✅ |
Sistema de Autenticação | ✅ |
Rotas de Usuário: Login e Criação de Novo Usuário | ✅ |
Cadastro de novo Local | ✅ |
Excluir informações de um local específico do usuário | ✅ |
Alterar informações de um local específico do usuário | ✅ |
Código organizado e correto uso das boas práticas de desenvolvimento de software | ✅ |
Implementação da Rota com link para o Google Maps de acordo com o Local Específico do Usuário | ✅ |
- Node.js
- PostgreSQL
Crie um arquivo .env
na raiz do projeto com o seguinte conteúdo:
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_NAME=nome_do_seu_banco
DB_HOST=nome_do_seu_host
JWT_SECRET=sua_chave_JWT
Crie um arquivo config.json na pasta config com o seguinte conteúdo:
{
"development": {
"username": "seu_usuario",
"password": "sua_senha",
"database": "ecocoleta",
"host": "127.0.0.1",
"dialect": "postgres"
},
"test": {
"username": "seu_usuario",
"password": "sua_senha",
"database": "ecocoleta_test",
"host": "127.0.0.1",
"dialect": "postgres"
},
"production": {
"username": "seu_usuario",
"password": "sua_senha",
"database": "ecocoleta_production",
"host": "127.0.0.1",
"dialect": "postgres"
}
}
Uma lista com os comandos SQL utilizados foi deixada dentro da pasta SQL.
1 - Clone o repositório:
git clone https://github.com/seu-usuario/ecocoleta.git
2 - Instale as dependências
npm install
3 - Execute as migrações do banco de dados
npx sequelize db:migrate
4 - Inicie o servidor
npm start
A documentação das rotas da API pode ser acessada via Swagger em http://localhost:3000/api-docs.