O projeto Resource Control (Back-end) é uma API REST de um sistema de controle de fluxo de recursos. A temática desse projeto é baseada em uma situação em que há a necessidade de controle de tráfego de recursos por meio de administradores (ADMIN's) que terão a permissão de adicionar, remover, editar e acessar todos os recursos cadastrados, além disso também existe a demanda que usuários comuns (USER's) possam acompanhar a movimentação de recursos.
Essas instruções permitirão que você obtenha uma cópia do projeto em operação na sua máquina local para fins de desenvolvimento e teste.
Consulte Implantação para saber como implantar o projeto.
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:
- Git
- Node.js (usei a versão mais recente 18.13.0)
- Java 17
- PostgreSQL (version 15.1)
- pgAdmin 4 (Vem junto com o download do PostgreSQL)
- Postman
- Intellij (ou qualquer outra IDE)
- Clone o projeto via git
# Clone este repositório
$ git clone https://github.com/UserZeca/resource-control
ou baixe-o diretamente pelo github.
- Abra o projeto em sua IDE
- Abra o pdAdmin 4 (ou use a interface padrão do postgre via terminal/cmd) e crie um banco de dados com o nome "resource-control-db"
- Abra o arquivo application.properties e altere para sua senha do banco de dados
spring.datasource.url= jdbc:postgresql://localhost:5432/resource-control-db
spring.datasource.username=postgres
spring.datasource.password= COLOQUE SUA SENHA AQUI
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.jdbc.lob.lab.non_contextual_creation=true
- Execute a classe ResourceControlApplication
- Execute o arquivo SQL "queryStartResourceControl" para carregar dados pré prontos
- Vá até o arquivo "WebSecurityConfig"
Para testar a Aplicação use o Postman, que permitirá realizar requisições GET, POST, DELETE e PUT.
Para começar use como padrão username = "anna" e password= "senha123", é possivel cadastrar usuários comuns via endpoint porém usuários ADMIN somente serão definidos via query diretamente no banco de dados.
Atenção: No postman você deve utilizar a aba authorization para adicionar o username e o password para ter acesso aos metodos.
Rotas para obter dados de usuários e de alimentos (food).
# Rota para obter alimentos (USER e ADMIN tem acesso)
http://localhost:8080/food
http://localhost:8080/food/id do alimento
Rota para obter usuários (ADMIN tem acesso)
http://localhost:8080/user/search
http://localhost:8080/user/search/nome do usuário
Rotas para adicionar dados de usuários e de alimentos (food).
# Rota para adicionar alimentos (ADMIN tem acesso)
http://localhost:8080/food
Rota para postar usuários ( ADMIN tem acesso)
http://localhost:8080/user/signIn/create/
Rotas para editar dados de usuários e de alimentos (food).
# Rota para editar alimentos (ADMIN tem acesso)
http://localhost:8080/food/id do alimento
Rota para editar acesso usuários do usuário(essa rota é necessaria pais o acesso ao usuaário é uma role separada da tabela usuário) (ADMIN tem acesso)
http://localhost:8080/user/signIn/create/
Rotas para editar dados de usuários e de alimentos (food).
# Rota para deletar alimentos (ADMIN tem acesso)
http://localhost:8080/food/id do alimento
Rota para editar acesso usuários do usuário(essa rota é necessaria pais o acesso ao usuaário é uma role separada da tabela usuário) (ADMIN tem acesso)
http://localhost:8080/user/nome do usuário
# Vincular alimento a algum usuário comum (método PUT)
http://localhost:8080/user/food/{id}/responsibleForTransport/{username}
Dentro dessa tabela temos informações sobre o nome, senha, grupo do sistema ao qual pertence.
Possuem as regras que os usuários são submetidos, ou seja, USER e ADMIN;
Dentro dessa tabela temos informações sobre o nome da comida, origem, transportador, destino, etc.
- Spring Boot
- Postgresql