Skip to content

FootySage es una aplicación web de análisis y simulación de partidos de fútbol en tiempo real, con visualización de eventos en el terreno de juego, predicciones mediante modelos de ML, análisis de ligas mediante gráficas por liga y comparativas y un apartado informativo de próximos partidos. Desarrollada con Django REST, React y PostgreSQL.

License

Notifications You must be signed in to change notification settings

Jaime-Linares/FootySage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FootySage ⚽️💻

FootySage es una aplicación web de análisis y simulación de partidos de fútbol en tiempo real, con visualización de eventos en el terreno de juego, predicciones mediante modelos de ML, análisis de ligas mediante gráficos interactivos por liga y comparativas y un apartado informativo de próximos partidos. Desarrollado utilizando:

  • Backend: Django + Django REST Framework
  • Frontend: React
  • Base de datos: PostgreSQL
  • Entornos separados: Python (venv) y Node (npm)

📁 Estructura del proyecto

FootySage/
├── backend/                            # Backend con Django + DRF
│   ├── backend/                        # Configuración principal del backend
│   ├── users/                          # App para la lógica y gestión de usuarios
│   ├── graphic_analysis/               # App para gráficos
│   ├── matches/                        # App para la lógica y gestión de partidos
|   |    └── real_time_simulation/      # Submódulo para la simulación de partidos
│   ├── scripts/                        # Scripts de carga de datos
│   ├── database/                       # Base de datos inicial   
│   ├── models/                         # Modelos de ML por liga en formato .pkl
│   ├── .env.example                    
│   ├── manage.py                       
│   └── requirements.txt                # Dependencias del backend
├── frontend/                           # Frontend con React
│   ├── public/                         
│   ├── src/                            
│   │   ├── assets/                     # Recursos visuales
│   │   │   ├── fonts/                  # Tipografías
│   │   │   ├── images/                 # Imágenes usadas en la UI
│   │   │   └── styles/                 # Hojas de estilo CSS base
│   │   ├── components/                 # Componentes reutilizables
│   │   ├── context/                    # Contextos globales de la app
│   │   ├── views/                      # Páginas principales de la aplicación
│   │   │   ├── CompetitionsAnalysis/   # Análisis por competiciones
│   │   │   ├── Home/                   # Vista de inicio tras iniciar sesión
│   │   │   ├── LandingPage/            # Landing pública de presentación
│   │   │   ├── Matches/                # Subsecciones relacionadas con partidos
│   │   │   │   ├── MatchAnalysis/       
│   │   │   │   ├── MatchSelector/       
│   │   │   │   ├── SimulateMatch/       
│   │   │   │   └── UpcomingMatches/    
│   │   │   └── User/                   # Subsecciones relacionadas con el usuario
│   │   │       ├── Login/              
│   │   │       ├── Profile/            
│   │   │       ├── RecoverPassword/    
│   │   │       └── Register/           
│   │   ├── App.jsx                     
│   │   └── index.js                   
│   ├── .env.example                    
│   ├── package.json                    # Dependencias y scripts del proyecto
│   └── package-lock.json               # Lockfile de npm
|── .gitignore
└── README.md

🛠️ Requisitos previos

Asegúrate de tener instalado lo siguiente:


🚀 Instrucciones para levantar el proyecto

1️⃣ Clonar el repositorio

git clone https://github.com/Jaime-Linares/FootySage.git
cd FootySage

🐘 Base de Datos PostgreSQL

2️⃣ Crear la base de datos en PostgreSQL

Abre SQL Shell (psql) o tu terminal y ejecuta:

createdb -U tu_usuario footysage_db
  • Si te ha funcionado pasa al siguiente punto. Si no te funciona ejecuta lo siguiente:

    psql -U tu_usuario -d tu_usuario

    Una vez dentro del prompt postgres=#, ejecuta:

    CREATE DATABASE footysage_db;

    Para salir de la consola:

    \q

🔙 Backend (Django + DRF)

3️⃣ Crear entorno virtual e instalar dependencias

cd backend
python -m venv venv
.\venv\Scripts\Activate.ps1              # En Windows
# source venv/bin/activate               # En Linux/Mac

pip install -r requirements.txt

4️⃣ Configurar el archivo .env

Copia el archivo de ejemplo y edita los valores:

cp .env.example .env

Contenido del .env.example:

DB_NAME=footysage_db
DB_USER=
DB_PASSWORD=
DB_HOST=localhost
DB_PORT=5432
API_FOOTBALL_KEY=
EMAIL_HOST_PASSWORD=

Modifica .env con tus credenciales de PostgreSQL, de API-Football y escribe al correo info.footysage@gmail.com para que te dé el valor de la variable EMAIL_HOST_PASSWORD que habilita la funcionalidad de recuperar contraseñas.

5️⃣ Carga inicial de datos

Carga rápida (cargar base datos inicial)

pg_restore -U tu_usuario -d footysage_db -v database/footysage_db.bak

Carga a lenta (carga manual)

⚠️ Puede llevar mucho tiempo ⚠️

python manage.py migrate
python scripts/load_statsbomb_data.py

6️⃣ Levantar el servidor Django

python manage.py runserver

Accede a: http://localhost:8000


🌐 Frontend (React)

7️⃣ Configurar el archivo .env

Copia el archivo de ejemplo y edita los valores:

cd ../frontend
cp .env.example .env

Contenido del .env.example:

REACT_APP_API_BASE_URL=

Modifica .env con la ruta a la API. Tal y como esta configurado deberías de poner lo siguiente:

REACT_APP_API_BASE_URL=http://localhost:8000

8️⃣ Instalar dependencias y levantar el frontend

npm install
npm start

Accede a: http://localhost:3000


📝 Licencia

Este proyecto está bajo licencia MIT. Puedes ver los detalles aquí.

About

FootySage es una aplicación web de análisis y simulación de partidos de fútbol en tiempo real, con visualización de eventos en el terreno de juego, predicciones mediante modelos de ML, análisis de ligas mediante gráficas por liga y comparativas y un apartado informativo de próximos partidos. Desarrollada con Django REST, React y PostgreSQL.

Resources

License

Stars

Watchers

Forks

Packages

No packages published