Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maryucha/graph_pokemon
Banco de dados de grafos no Neo4j utilizando dados da PokeAPI para explorar relações entre Pokémon, como tipos, habilidades e evoluções. ------ Graph database in Neo4j using PokeAPI data to explore Pokémon relationships, such as types, abilities, and evolutions.
https://github.com/maryucha/graph_pokemon
api-integration cypher data-visualization etl-pipeline graph graphdatabase jupyter-notebook neo4j pokeapi pokemon python
Last synced: 27 days ago
JSON representation
Banco de dados de grafos no Neo4j utilizando dados da PokeAPI para explorar relações entre Pokémon, como tipos, habilidades e evoluções. ------ Graph database in Neo4j using PokeAPI data to explore Pokémon relationships, such as types, abilities, and evolutions.
- Host: GitHub
- URL: https://github.com/maryucha/graph_pokemon
- Owner: Maryucha
- License: mit
- Created: 2024-11-25T10:56:48.000Z (29 days ago)
- Default Branch: main
- Last Pushed: 2024-11-25T13:23:44.000Z (29 days ago)
- Last Synced: 2024-11-25T13:29:25.868Z (29 days ago)
- Topics: api-integration, cypher, data-visualization, etl-pipeline, graph, graphdatabase, jupyter-notebook, neo4j, pokeapi, pokemon, python
- Language: Jupyter Notebook
- Homepage: https://www.linkedin.com/in/maryuchammariani/
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# **Pokemon Graph Database**
Este projeto utiliza dados da [PokeAPI](https://pokeapi.co/) 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**:
- Python 3.8+
- [Neo4j Community Edition](https://neo4j.com/download-center/)2. **Instale as Dependências**:
Certifique-se de instalar os pacotes listados no `requirements.txt`:
```bash
pip install -r requirements.txt
```
3. **Configuração do Neo4j**:
Certifique-se de que o Neo4j esteja disponível em:
- [Porta HTTP](http://localhost:7474)
- [Porta BOLT](http://localhost:7687)
---
## **Como Executar**1. **Clone o Repositório**:
Repositório com a base do projeto:```bash
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:
```bash
docker compose up --build -d
```
2. **Prepare seu ambiente instalando as bibliotecas necessárias**:
Prepare seu ambiente na sua ide utilizando o arquivo requiremnts.txt
```bash
pip install -r requirements.txt
```
3. **Execute o Jupyter Notebook**:
No Jupyter Notebook, execute o script principal para:```bash
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
```cypher
MATCH (p:Poke) RETURN p
```
![Grafo](screenshots/query_all.png)2. Chamar pelo nome
```cypher
MATCH (p:Poke{name:'pikachu'}) RETURN p
```
![Grafo](screenshots/query_p_name.png)2. Pokémon por Tipo
```cypher
MATCH (p:Poke)-[:PERTENCE_A]->(t:Type {name: "fire"}) RETURN p.name
```
![Grafo](screenshots/query_type_name.png)3. Habilidades de um Pokémon
```cypher
MATCH (p:Poke {name: "pikachu"})-[:TEM_HABILIDADE]->(a:Ability) RETURN a.name
```
![Grafo](screenshots/query_ability_type.png)