Giter VIP home page Giter VIP logo

desafio-bean's Introduction

🚀 Desafio Bean Software

O intuito desse desafio é construir uma pokedex em docker. Para consumir as informações foram usadas Axios, Hasura com GraphQL e o banco Postgres. Pode ser executado em formato web e mobile ( responsivo ).

🔦 Amostras do projeto

lista-pokemon

gif-projeto

Vídeo do projeto

https://youtu.be/-8puUqzLejw

💻 Executando projeto

  • Necessário ter o docker instalado na sua máquina.

Na raiz do projeto execute o comando:

docker compose up -d

Hasura GraphQL

  • ATENÇÃO: Necessário configurar o Hasura com GraphQL para salvar os pokemons no banco postgres, siga esses passos:

Conexão Hasura com Postgres

  1. Abra uma nova aba e digite
http://localhost:8080/console
  1. Dentro do console clique na guia DATA
  2. Clique no botão Connect Database
  3. Escolha o banco Postgres e clique em Connect Existing Database
  4. em "Database name" digite:
pokemon
  1. em "Connect Database via" marque : "Environment variable"
  2. Digite no campo "Environment variable":
HASURA_GRAPHQL_METADATA_DATABASE_URL
  1. Clique em Connect Database
  2. Clique no database, depois na pasta public e clique no botão criar tabela
  3. A tabela irá conter 3 colunas com os dados:
  • id: Int
  • name: Text
  • image: Text
  1. Marque id para ser a chave primária ( Primary Key )

Criação dos endpoints

- GET poke/team

  1. Clique na guia API
  2. Depois clique na guia REST
  3. Clique em Create Rest
  4. Vamos criar a rota para buscar todos os pokemons salvos no banco ( no caso do seu time )
  5. Digite a query comando no editor GraphQL Request:
query poke {
  team {
    id
    name
    image
  }
}
  1. Em URL PATH, coloque:
poke/team
  1. Marque o Method GET

- GET poke/team/:id

  1. Repita o processo anterior até o editor GraphQL Request:
  2. Digite a query:
query team_by_pk($id: Int!) {
  team_by_pk(id: $id) {
    id
    image
    name
  }
}
  1. Em URL PATH, coloque:
poke/team/:id
  1. Marque o Method GET

- POST poke/addpokemon

  1. Repita o processo anterior até o editor GraphQL Request:
  2. Digite a query:
mutation addPokemon($id: Int!, $name: String!, $image: String){
  insert_team_one(object: {id: $id, name: $name, image: $image}) {
    id,
    name,
    image
  }
}
  1. Em URL PATH, coloque:
poke/addpokemon
  1. Marque o Method POST

- DELETE poke/team/:id

  1. Repita o processo anterior até o editor GraphQL Request:
  2. Digite a query:
mutation delete_team_by_pk($id: Int!) {
  delete_team_by_pk(id: $id) {
    id
    image
    name
  }
}
  1. Em URL PATH, coloque:
poke/team/:id
  1. Marque o Method DELETE

🛠️ Tecnologias

  • ViteJS
  • React
  • Axios
  • Docker
  • Hasura
  • GraphQL
  • Postgres

📦 Dependências

  • Criar projeto com o comando:
npm create vite@latest
  • Requests com Axios
npm install axios

🎮 PokeAPI

📄 Documentação docker

comandos docker

Para interromper a execução digite:

docker compose down

Build da imagem com a tag/nome (vite-react-app)

  • docker build -t vite-react-app:latest .

Filtrar e exibir informações sobre imagens Docker que tenham "vite-react-app" em seu nome.

  • docker images | grep vite-react-app

Rodando docker para desenvolvimento

  • docker run -p 8082:8082 vite-react-app:latest

desafio-bean's People

Contributors

wagnerterry 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.