Skip to content

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.

License

Notifications You must be signed in to change notification settings

lucasplcorrea/EcoColeta

Repository files navigation

EcoColeta ♻️

PostgreSQL Axios BcryptJS dotenv Express Sequelize Swagger

Descrição do Projeto

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.

Funcionalidades 🔧

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

Como Executar o Projeto

Requisitos

  • Node.js
  • PostgreSQL

Configuração do Ambiente 🔑

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

Configuração do Banco de Dados 💾

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.

Instalação ⚙️

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

Docs da API 📝

A documentação das rotas da API pode ser acessada via Swagger em http://localhost:3000/api-docs.

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published