Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌦️ WeatherApp - Desktop Dashboard

Python PySide6 Architecture License

Aplicación de escritorio moderna para monitoreo climático. Refactorizada implementando Clean Architecture, gestión segura de secretos y diseño modular.

Reportar Bug · Solicitar Feature


🚀 Características Técnicas

Este proyecto no es solo una calculadora de clima; es una demostración de ingeniería de software robusta:

  • Arquitectura Modular: Separación estricta de responsabilidades en src/ui (Vista), src/services (Lógica de Negocio) y src/config (Configuración).
  • Seguridad: Manejo de API Keys mediante variables de entorno (.env), evitando credenciales hardcodeadas en el código fuente.
  • Testing: Suite de pruebas unitarias con pytest implementando mocking de servicios para aislar la lógica de red.
  • GUI Reactiva: Interfaz construida con PySide6 (Qt) y estilizada con QSS (Qt Style Sheets).

📂 Estructura del Proyecto

WeatherApp/
├── src/
│   ├── config.py       # Gestión de variables de entorno
│   ├── services.py     # Lógica de consumo de API (Requests)
│   └── ui.py           # Interfaz Gráfica (PySide6)
├── tests/              # Tests unitarios mockeados
├── main.py             # Punto de entrada (Entry Point)
├── .env                # Archivo de secretos (No se sube al repo)
└── requirements.txt    # Dependencias

🛠️ Requisitos Previos

⚙️ Instalación y Configuración

Sigue estos pasos para levantar el entorno de desarrollo:

1. Clonar el repositorio

git clone [https://github.com/ymvs84/WeatherApp.git](https://github.com/ymvs84/WeatherApp.git)
cd WeatherApp

2. Crear entorno virtual (Recomendado)

python -m venv venv
# En Windows:
.\venv\Scripts\activate
# En Mac/Linux:
source venv/bin/activate

3. Instalar dependencias

pip install -r requirements.txt

4. Configurar Seguridad (.env)

Este proyecto usa python-dotenv. Crea un archivo llamado .env en la raíz del proyecto y añade tu clave:

WEATHER_API_KEY=tu_clave_de_openweathermap_aqui

(Sin comillas y sin espacios)

▶️ Ejecución

Para iniciar la aplicación, ejecuta el punto de entrada principal:

python main.py

🧪 Pruebas (Testing)

El proyecto incluye tests que validan la lógica sin realizar llamadas reales a la API (Mocking).

pytest -v

📦 Compilación a Ejecutable (.exe)

Para generar un archivo ejecutable portable para Windows:

pyinstaller --onefile --windowed --name="WeatherApp" main.py

El archivo resultante estará en la carpeta dist/.


Autor: Yago Menéndez Senior Software Engineer & Computer Science Student LinkedIn | GitHub

About

Aplicación del tiempo realizada con Python

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages