A simple and beautiful interface for exploring relationships between Pokemon.
Visually explore the relationships between Generation 1 Pokemon, focusing on evolutions and shared types.
My goal is to create a web application where it's easy and fun to explore new and familiar Pokemon. Evolutions and types are common vectors to discover related Pokemon.
- A central, large image shows the "focused" Pokemon.
- Smaller, clickable images of related Pokemon are displayed around it:
- Evolutions: Pokemon it evolves from and into are shown (e.g., vertically).
- Shared Types: Other Pokemon sharing the same type(s) are shown (e.g., horizontally).
- Clicking (swiping?) any related Pokemon image shifts the focus to that Pokemon.
The relationship between Pokemon and their specific evolution steps is modeled
using two main tables: Pokemon and Evolution. The relationship "related by
type" is handled by comparing data within the Pokemon table in the
application logic, not by a direct database link shown here.
erDiagram
POKEMON ||--o{ EVOLUTION : "can be 'from' Pokemon in"
POKEMON ||--o{ EVOLUTION : "can be 'to' Pokemon in"
POKEMON {
int id PK
string name
string image_url
string type1
string type2
}
EVOLUTION {
int id PK
int from_pokemon_id FK
int to_pokemon_id FK
string trigger_info
}
- Nix: The Nix package manager is required to set up the development environment defined in shell.nix.
- Clone the Repository:
git clone https://github.com/beauremus/pokedex-explorer
cd pokedex-explorer- Enter the Development Environment:
This command reads the shell.nix file and makes Ruby, NodeJS, SQLite, and Rails available.
nix-shell(This might takes some time on the first run to download dependencies)
- Install Ruby Gems:
Inside the nix-shell, use Bundler to install the gems specified in the Gemfile.
bundle install- Setup the Database:
This command will create the database (if it doesn't exist), load the schema, and run the seed file.
rails db:setup- Start the Rails Server:
# Ensure you are inside the nix-shell
rails server- Access the Application:
Open your web browser and navigate to http://localhost:3000.
- Explore:
Click on the Pokemon images to navigate through evolutions and related types.
- Running Tests:
rails test- Database Migrations: If the database schema changes create a migration file:
rails generate migration AddColumnToTable column:type
rails db:migrate- Seed Data: The Pokemon data (names, types, images, evolutions) is populated from db/seeds.rb. Modifying this file and re-running rails db:seed will update the database content.
This is a source-available project. Contributions will not be considered.
This project is licensed under the terms of the copy-left GNU Affero General Public License v3.0 (AGPLv3).
Pokemon data sourced/referenced from Bulbapedia and PokeAPI.
Built with Ruby on Rails and the awesome Nix package manager.