Aplicación para gestión de torneos personalizables de videojuegos de Pokémon.
Desarrollo de la parte del back-end con Python, gestión de la base de datos con SQLite y creación de una API REST.
- Gestión de usuarios (para obtener, crear y eliminar usuarios)
- Gestión de partidas (para obtener, crear y eliminar partidas)
- Variedad de opciones al crear partida:
- número de tiradas disponibles para obtener Pokémon aleatorios
- número de tiquets de tipo disponibles para obtener Pokémon aleatorios del tipo especificado
- cantidad de dinero disponible para comprar cartas de ventaja
- cantidad de puntos disponibles para comprar ítems
- número de generación máxima a la que pertenecen los Pokémon que se pueden obtener
- Variedad de filtros para la obtención de Pokémon aleatorios:
- incluir míticos
- incluir legendarios
- incluir semi-legendarios
- incluir pesos pesados
- incluir los demás Pokémon que no pertenecen a las categorías anteriores
- incluir sólo Pokémon completamente evolucionados
- obtener Pokémon con habilidad randomizada
- Gestión de compra de cartas que otorgan distintas ventajas:
- obtener Pokémon con mega-evolución
- intercambiar Pokémon para obtener uno nuevo
- realizar tiradas selectivas
- comprar más tiradas y tickets de tipo
- reiniciar las tiradas y Pokémon obtenidos
-
Crear entorno virtual (recomendado)
python -m venv venv -
Activar entorno virtual (recomendado)
.\venv\Scripts\activate -
Instalar dependencias:
python -m pip install -r requirements.txt -
Iniciar aplicación (inicia API Rest en localhost puerto 8080):
python -m api_server
Gestión de usuarios
Endpoint:
/user/{username}
Métodos:
- 'GET': Obtener usuario.
- 'POST': Crear usuario.
- 'DELETE': Eliminar usuario.
Ejemplo de crear nuevo usuario:
Gestión de partidas
Endpoint:
/user/{username}/game/{gamename}
Métodos:
- 'GET': Obtener partida.
- 'POST': Crear partida.
- 'DELETE': Eliminar partida.
Ejemplo de crear nueva partida con las opciones por defecto:
Gasta una tirada para obtener un Pokémon aleatorio según los filtros especificados en la partida.
Endpoint:
/user/{username}/game/{gamename}/roll
(Opcional) Añadir argumento {type} para gastar un ticket de tipo y obtener un Pokémon del tipo especificado.
Endpoint:
/user/{username}/game/{gamename}/roll?{type}
Métodos:
Gestión de compra de cartas que otorgan distintas ventajas.
Endpoint:
/user/{username}/game/{gamename}/card/{card_tag}
Cartas disponibles:
-
tag = 'mega'
nombre = ESPABILA, MEGAEVOLUCIONA
descripción = REALIZA UNA TIRADA DONDE SÓLO PUEDEN APARECER POKÉMON CON MEGA-EVOLUCIÓN.
precio = 6000 monedas
Métodos:
-
tag = 'fusion'
nombre = FUSIÓN ALEATORIA
descripción = ELIGE 2 POKÉMON, ELIMINALOS PARA REALIZAR UNA TIRADA ALEATORIA.
precio = 400 monedas
Métodos:
-
tag = 'intercambio'
name = INTERCAMBIO PRODIGIOSO
descripción = ELIGE 1 POKÉMON DE TUS 20, INTERCAMBIALO POR OTRO AL AZAR.
precio = 600 monedas
Métodos:
-
tag = 'preevo'
nombre = LA PRE-EVO ES MEJOR
descripción = PUEDES CAMBIAR UNO DE TUS POKÉMON POR SU PRE-EVOLUCIÓN.
precio = 1500 monedas
Métodos:
-
tag = 'comienzo'
nombre = NUEVO COMIENZO
descripción = ANTES DE GASTAR TU TIRADA Nº18, REINICIA TODAS TUS TIRADAS.
precio = 3200 monedas
Limitada a 1 uso.
-
tag = '2_powerhouse'
nombre = 2 ES MEJOR QUE 1
descripción = PODRÁS UTILIZAR 2 POKÉMON DE LA CATEGORÍA "PESOS PESADOS" EN EL EQUIPO EN LUGAR DE 1.
precio = 7000 monedas
Limitada a 1 uso.
-
tag = 'ticket_tipo'
nombre = TIQUET ELEMENTAL
descripción = OBTIENES UN TICKET ADICIONAL PARA FORZAR EL TIPO DEL POKÉMON.
precio = 400 monedas
-
tag = 'adicional_1'
nombre = TIRADA ADICIONAL 1
descripción = OBTIENES UNA TIRADA ADICIONAL.
precio = 800 monedas
Limitada a 1 uso.
-
tag = 'adicional_2'
nombre = TIRADA ADICIONAL 2
descripción = OBTIENES DOS TIRADAS ADICIONALES.
precio = 1400 monedas
Limitada a 1 uso.
-
tag = 'adicional_3'
nombre = TIRADA ADICIONAL 3
descripción = OBTIENES TRES TIRADAS ADICIONALES.
precio = 2000 monedas
Limitada a 1 uso.
-
tag = 'selectiva'
nombre = TIRADA SELECTIVA
descripción = HAZ UNA TIRADA DE 6 POKÉMON, PUEDES DESECHAR HASTA 5 SIN GASTAR TIRADAS.
precio = 3000 monedas
Limitada a 1 uso.
Métodos:
-
'GET': Obtienes la lista de Pokémon disponibles para elegir.
-
'POST': Envía los ids de los Pokémon seleccionados dentro del Body de la petición (como claves).
{id1} {id2} ...
-