Aplicación web Flask para el análisis de tweets relacionados con la crisis de Ucrania. El dataset usado se ha extraído de Kaggle: Click aquí
- Python 3.8 o superior
- MongoDB 4.4 o superior
- pip (gestor de paquetes de Python)
- virtualenv (opcional, pero recomendado)
- Clona el repositorio:
git clone <https://github.com/gooorher/Ukraine-Crisis-Tweets-Analysis/>
cd flask_app- Da permisos de ejecución al script de configuración:
chmod +x setup.sh- Ejecuta el script de configuración:
./setup.sh- Activa el entorno virtual:
source venv/bin/activateEl script setup.sh creará un archivo .env con la configuración básica. Puedes modificar este archivo según tus necesidades:
FLASK_APP=app.py
FLASK_ENV=development
FLASK_DEBUG=1
MONGO_URI=mongodb://localhost:27017/ukraine_crisis
SECRET_KEY=your-secret-key-here- Asegúrate de que MongoDB esté en ejecución:
sudo systemctl start mongod # Para sistemas basados en systemd
# o
mongod # Para iniciar manualmente- Activa el entorno virtual si no está activado:
source venv/bin/activate- Ejecuta la aplicación:
python app.py- Abre un navegador y visita:
http://localhost:5000
flask_app/
├── app.py # Aplicación principal Flask
├── requirements.txt # Dependencias del proyecto
├── setup.sh # Script de configuración
├── services/ # Lógica de negocio
│ ├── __init__.py
│ ├── trends_service.py
│ ├── hashtags_service.py
│ └── users_service.py
├── routes/ # Rutas de la aplicación
│ ├── __init__.py
│ ├── trends_routes.py
│ ├── hashtags_routes.py
│ └── users_routes.py
├── templates/ # Plantillas HTML
│ ├── base.html
│ ├── trends.html
│ ├── hashtags.html
│ └── users.html
├── static/ # Archivos estáticos
│ ├── css/
│ └── js/
└── utils/ # Utilidades
├── __init__.py
├── date_utils.py
└── log_analyzer.py
- Análisis de tendencias temporales
- Visualización de hashtags populares
- Análisis de usuarios activos
- Gráficos interactivos
- Exportación de datos
- Sistema de logging avanzado
A continuación, se muestran capturas de pantalla de las tres secciones principales de la aplicación: Tendencias, Hashtags y Usuarios.
En esta sección se visualizan las tendencias diarias y semanales de los tweets relacionados con la crisis de Ucrania.
En esta sección se analizan los hashtags más populares y su evolución temporal.
En esta sección se muestra la actividad y el engagement de los usuarios más relevantes.
- GET
/trends/- Página principal de tendencias - GET
/trends/api/daily- Datos de tendencias diarias - GET
/trends/api/weekly- Datos de tendencias semanales
- GET
/hashtags/- Página de análisis de hashtags - GET
/hashtags/api/frequency- Frecuencia de hashtags - GET
/hashtags/api/evolution- Evolución temporal de hashtags - GET
/hashtags/api/cooccurrence- Red de co-ocurrencia
- GET
/users/- Página de análisis de usuarios - GET
/users/api/activity- Actividad de usuarios - GET
/users/api/engagement- Métricas de engagement - GET
/users/api/evolution- Evolución temporal de usuarios
Para ejecutar las pruebas:
python -m pytestLos logs se almacenan en el directorio logs/:
flask_app.log- Log principal de la aplicaciónerrors.log- Log específico de erroresaccess.log- Log de accesos HTTP
Endpoint de health check:
GET /health
- Actualizar dependencias:
pip install --upgrade -r requirements.txt- Limpiar logs:
> logs/flask_app.log
> logs/errors.log
> logs/access.log- Verificar MongoDB:
mongosh
use ukraine_crisis
db.tweets.stats()- Verifica que MongoDB esté en ejecución
- Comprueba la URI de conexión en
.env - Verifica los permisos de la base de datos
- Verifica que flask-cors esté instalado
- Comprueba la configuración de CORS en
app.py
- Asegúrate de que el entorno virtual esté activado
- Verifica que todas las dependencias estén instaladas
- Comprueba la variable de entorno PYTHONPATH
- Fork el repositorio
- Crea una rama para tu feature
- Realiza tus cambios
- Envía un pull request
Este proyecto está bajo la licencia MIT.


