Skip to content

ansmartin/avry-app

Repository files navigation

App Liga Rushdown

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.

Características

  • 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

Cómo iniciar la aplicación

  1. Crear entorno virtual (recomendado)

    python -m venv venv
    
  2. Activar entorno virtual (recomendado)

    .\venv\Scripts\activate
    
  3. Instalar dependencias:

    python -m pip install -r requirements.txt
    
  4. Iniciar aplicación (inicia API Rest en localhost puerto 8080):

    python -m api_server
    

Lista de recursos disponibles de la API

- User

Gestión de usuarios

Endpoint: /user/{username}

Métodos:

  • 'GET': Obtener usuario.
  • 'POST': Crear usuario.
  • 'DELETE': Eliminar usuario.

Ejemplo de crear nuevo usuario:

Captura_user

- Game

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:

Captura_game

- Roll

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:

  • 'GET': Realizar tirada para obtener un Pokémon aleatorio.

    Captura_roll

- Card

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:

    • 'GET': Obtiene un Pokémon con mega-evolución.

      Captura_card_mega
  • tag = 'fusion'

    nombre = FUSIÓN ALEATORIA

    descripción = ELIGE 2 POKÉMON, ELIMINALOS PARA REALIZAR UNA TIRADA ALEATORIA.

    precio = 400 monedas

    Métodos:

    • 'POST': Envía los ids de los Pokémon a fusionar dentro del Body de la petición. Obtiene un nuevo Pokémon aleatorio.

        pokemon_id1 : {id}
        pokemon_id2 : {id}
      
      Captura_card_fusion
  • tag = 'intercambio'

    name = INTERCAMBIO PRODIGIOSO

    descripción = ELIGE 1 POKÉMON DE TUS 20, INTERCAMBIALO POR OTRO AL AZAR.

    precio = 600 monedas

    Métodos:

    • 'POST': Envía el id del Pokémon a intercambiar dentro del Body de la petición. Obtiene un nuevo Pokémon aleatorio.

        pokemon_id : {id}
      
      Captura_card_intercambio
  • 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:

    • 'POST': Envía el id del Pokémon a cambiar dentro del Body de la petición. Obtiene el Pokémon pre-evolucionado.

        pokemon_id : {id}
      
      Captura_card_preevo
  • 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}
        ...
      

About

Aplicación para gestión de torneos personalizables de videojuegos de Pokémon.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors