Skip to content

adriansaav27/stats-acepta-el-reto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CrawlerAceptaElReto

Este proyecto es una aplicación ASP.NET Core que recopila datos estadísticos de la web 'Acepta el Reto' y genera un ranking de problemas basado en la dificultad y porcentaje de éxito de los usuarios.

Contenido

Instalación

  1. Clonar el repositorio
git clone https://github.com/tu_usuario/CrawlerAceptaElReto.git
cd CrawlerAceptaElReto
  1. Restaurar dependencias
dotnet restore
  1. Configuración

Crear un archivo appsettings.json en la raíz del proyecto con el siguiente contenido:

{
  "UrlAceptaElReto": "https://aceptaelreto.com/problems/volumes.php"
}    
  1. Ejecutar la aplicación
dotnet run

Uso

Después de iniciar la aplicación, puedes acceder al endpoint para generar el ranking de problemas. El endpoint principal es:

  • GET /AceptaElReto/GenerarRanking

Este endpoint devuelve una lista ordenada de problemas según la dificultad y porcentaje de éxito de los usuarios.

Estructura del Proyecto

  • Controllers

    • AceptaElRetoController.cs: Controlador principal que maneja las solicitudes HTTP.
  • Models

    • DataCrawler.cs: Modelo que representa los datos de un problema.
  • Utilities

    • UtilsCrawler.cs: Clase que contiene la lógica para recopilar y procesar los datos de la web 'Acepta el Reto'.
    • UtilsConfig.cs: Clase que maneja la configuración de la aplicación.

API

image

GET /AceptaElReto/GenerarRanking

Genera el ranking de problemas de 'Acepta el Reto'.

Respuesta Exitosa (200 OK)

Devuelve una lista ordenada de objetos DataCrawler:

[
  {
    "id": "string",
    "name": "string",
    "numeroUsuarios": 0,
    "porcentaje": 0
  }
]

Respuesta Sin Contenido (204 No Content)

No se encontraron problemas para generar el ranking.

Respuesta de Error (500 Internal Server Error)

Devuelve un mensaje de error si ocurrió algún problema al generar el ranking:

{
  "message": "string"
}

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.