Introducing "PokéPC" – a personalized Pokemon management web app designed for Pokemon enthusiasts. Whether you’re a casual fan of the series or a dedicated pokemon master, PokéPC will provide you with a simplistic platform to manage your Pokemon collection and build your team! This app is designed for:
- Pokemon Collectors: For those who find their pleasure in catching and collecting all sorts of Pokemon. PokePC acts as a digital storage system to catalog and organize your Pokemon.
- Competitive Battlers: Anyone preparing for battles or tournaments can plan and structure their team, adjusting compositions and strategies directly from PokéPC.
- Casual Players: Even if you play the games for fun, PokéPC offers a simple way to track and manage the Pokemon you’ve captured throughout your adventures.
Many existing Pokemon management tools online can be overbearing or lack friendly easy-to-use UIs, making it difficult for players to keep track of their teams. PokePC aims to fill this gap by offering an intuitive platform that simplifies Pokemon management while still providing depth for serious players. With features like easy drag-and-drop team adjustments and details for each Pokemon, PokéPC is the perfect tool for anyone looking to take their Pokemon experience to the next level.
- Pokemon PC Management: Users can add, update, or remove Pokemon from their PC.
- Team Management: Users can create and adjust their team of six Pokemon.
- User Account Management: Registration, login, and logout functionalities for user-specific access and data security.
- Pokemon Level Tracking: Each Pokemon’s level can be recorded and adjusted as they gain experience in battles.
- Drag-and-Drop Interface: Users can easily drag Pokemon between their PC and active team.
- As a user, I want to add a Pokemon to my PC so that I can keep track of all the Pokemon I have collected.
- As a user, I want to update the information of a Pokemon in my PC (ex: level) to reflect the changes as it grows and evolves.
- As a user, I want to remove a Pokemon from my PC if I no longer wish to keep it.
- As a user, I want to create a team of six Pokemon so that I can prepare for battles and competitions.
- As a user, I want to add a Pokemon from my PC to my team to tailor my team’s capabilities and strategies.
- As a user, I want to remove a Pokemon from my team to make space for others or to adjust my battle strategy.
- As a user, I want to rearrange the Pokemon in my team using a drag-and-drop interface to easily modify team order without multiple steps.
- As a user, I want to be able to copy another users team.
- As a user, I want to register for an account so I can personalize and save my Pokemon collection and teams.
- As a user, I want to log into my account to access my saved Pokemon and team configurations.
- As a user, I want to log out of my account to ensure my data is secure when I'm not using the app.
- As a user, I want to view all the Pokemon I have in my PC in a list/grid view so that I can easily manage and access my collection.
- As a user, I want to view my team separately from my PC storage to easily distinguish between stored Pokemon and those in my active lineup.
- As a user, I want to view all the teams of ther users.
erDiagram
users {
SERIAL id PK
VARCHAR(200) password
VARCHAR(100) email
}
pokemon_species {
SERIAL id PK
VARCHAR(100) name
VARCHAR(50) type
VARCHAR(1000) entry
VARCHAR(1000) category
VARCHAR(255) userImageURL
}
box {
SERIAL id PK
VARCHAR(100) name
INTEGER user_id FK
}
box_species {
SERIAL id PK
INTEGER pokemon_id FK
INTEGER user_id FK
INTEGER box_id FK
INTEGER level
VARCHAR(50) nature
VARCHAR(50) ability
}
team {
SERIAL id PK
VARCHAR(100) name
INTEGER user_id FK
}
team_positions {
INT team_id PK
INT box_species_id PK
INT position
}
moves {
SERIAL id PK
VARCHAR(100) name
INT accuracy
INT effect_chance
INT pp
INT power
}
pokemon_moves {
INT box_species_id PK
INT move_id PK
}
users ||--o{ box : "has"
users ||--o{ team : "has"
users ||--o{ box_species : "has"
box ||--o{ box_species : "contains"
box_species ||--|{ pokemon_species : "belongs to"
box_species ||--o| moves : "uses"
team ||--o{ team_positions : "includes"
team_positions ||--|{ box_species : "refers to"
team_positions ||--|{ team : "belongs to"
pokemon_moves ||--|{ box_species : "refers to"
pokemon_moves ||--|{ moves : "includes"
- Authentication System: Handles the user's ability to register for a new account, log in with a unique username and password, log out, and manage user sessions to ensure that their Pokemon collection and team configurations are personal and secure.
- Pokemon Management: Manages the logic for adding new Pokemon to the user's PC, updating their details (like level and stats), and removing Pokemon from the user's collection as needed.
- Team Management: Allows for the creation and management of a user's Pokemon team. Users can add Pokemon to their team, rearrange team order, and remove Pokemon from the team.
- UI Elements: Includes the design of various elements such as forms for adding or updating Pokemon, grids for displaying the user's PC and team, and interactive elements for managing Pokemon within these lists.
Request | Action | Response | Description |
---|---|---|---|
POST /box/:boxId/pokemon/:pokemonId/ | PokemonController::addPokemon | 201 /pokemon/box | Add a new Pokemon to the user's PC storage. |
GET /box/:boxId/pokemon/:pokemonId/ | PokemonController::getPokemon | 200 /pokemon/box | Retrieve details of a specific Pokemon. |
PUT /box/:boxId/pokemon/:pokemonId/ | PokemonController::updatePokemon | 200 /pokemon/box | Update an existing Pokemon’s level or other attributes. |
DELETE /box/:boxId/pokemon/:pokemonId/ | PokemonController::removePokemonFromPC | 204 | Remove a Pokemon from the user's PC. |
Request | Action | Response | Description |
---|---|---|---|
POST /users/register | UserController::registerUser | 201 /users/:id | Register a new user and redirect to the user’s profile. |
POST /users/login | UserController::loginUser | 200 /users/:id | Authenticate a user and start a session. |
POST /users/logout | UserController::logoutUser | 204 | End the user’s session. |
Request | Action | Response | Description |
---|---|---|---|
PUT /team/:teamid/pokemon/swap | TeamController::updateTeam | 200 | Swap a position of two Pokemon |
GET /team/:teamid/pokemon | TeamController::getTeam | 200 /team | Retrieve the details of the user's current team. |
DELETE /team/:teamid | TeamController::deleteTeam | 204 | Remove all Pokemon from the team. |
DELETE /team/:teamid/pokemon/:pokemonId | TeamController::deleteTeam | 204 | Remove all Pokemon from the team. |