Coder Social home page Coder Social logo

resource-control's Introduction

Resource Control (Back-end)

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.

🚀 Começando

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.

📋 Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:

🔧 Instalação/Configuração

  • 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

Com o projeto aberto:

  • 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"

⚙️ Testando a aplicação

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.

🔩 GET

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

🔩 POST

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/

🔩 PUT

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/


🔩 DELETE

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


⌨️ Metodos que envolvem vinculo de chave estrangeira


# Vincular alimento a algum usuário comum (método PUT)
http://localhost:8080/user/food/{id}/responsibleForTransport/{username}

📦 Estrutura das tabelas e informações gerais

User

Dentro dessa tabela temos informações sobre o nome, senha, grupo do sistema ao qual pertence.

Role

Possuem as regras que os usuários são submetidos, ou seja, USER e ADMIN;

Food

Dentro dessa tabela temos informações sobre o nome da comida, origem, transportador, destino, etc.

🛠️ Construído com

  • Spring Boot
  • Postgresql

✒️ Autor

resource-control's People

Contributors

userzeca avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.