Skip to content

Latest commit

 

History

History
103 lines (83 loc) · 2.75 KB

File metadata and controls

103 lines (83 loc) · 2.75 KB

Pokemon Graph Database

Este projeto utiliza dados da PokeAPI para criar um banco de dados de grafos no Neo4j. Ele permite explorar e visualizar conexões entre os primeiros 151 Pokémon, como tipos, habilidades e evoluções.


Recursos

  1. Pipeline ETL:

    • Extração de dados da PokeAPI.
    • Transformação dos dados para criar nós e relacionamentos.
    • Carregamento no banco de grafos Neo4j.
  2. Banco de Grafos:

    • Nós: Pokémon, Tipos, Habilidades.
    • Arestas:
      • PERTENCE_A: Liga Pokémon aos seus tipos.
      • TEM_HABILIDADE: Liga Pokémon às suas habilidades.
      • EVOLUI_PARA: Liga Pokémon às suas evoluções.
  3. Consultas em Cypher:

    • Explore Pokémon por tipo.
    • Visualize cadeias evolutivas.
    • Descubra habilidades específicas de Pokémon.

Requisitos

  1. Dependências do Projeto:

  2. Instale as Dependências: Certifique-se de instalar os pacotes listados no requirements.txt:

      pip install -r requirements.txt
  3. Configuração do Neo4j: Certifique-se de que o Neo4j esteja disponível em:


Como Executar

  1. Clone o Repositório: Repositório com a base do projeto:
   git clone https://github.com/maryucha/graph_pokemon.git

    # navegue até o repositório clonado
   cd graph_pokemon
  1. Inicie o Neo4j via compose: Certifique-se de que o Neo4j esteja disponível em localhost:7474:
    docker compose up --build -d
  1. Prepare seu ambiente instalando as bibliotecas necessárias: Prepare seu ambiente na sua ide utilizando o arquivo requiremnts.txt
    pip install -r requirements.txt
  1. Execute o Jupyter Notebook: No Jupyter Notebook, execute o script principal para:
    jupyter notebook

Execute a pipeline para:

  • jupyter: Para desenvolvimento e análise.
  • pandas: Manipulação de dados.
  • requests: Requisições HTTP para a PokeAPI.
  • neo4j: Driver para conexão com o banco de grafos.

Consultas

  1. Todos os pokemons
    MATCH (p:Poke) RETURN p

Grafo

  1. Chamar pelo nome
    MATCH (p:Poke{name:'pikachu'}) RETURN p

Grafo

  1. Pokémon por Tipo
    MATCH (p:Poke)-[:PERTENCE_A]->(t:Type {name: "fire"}) RETURN p.name

Grafo

  1. Habilidades de um Pokémon
    MATCH (p:Poke {name: "pikachu"})-[:TEM_HABILIDADE]->(a:Ability) RETURN a.name

Grafo