Loading repository data…
Loading repository data…
MateoGiuffra / repository
Automatización de tareas web y una API REST, diseñada para generar y gestionar resúmenes financieros a partir de sistemas externos. Utiliza Flask, Selenium y Pandas.
Este proyecto es una combinación de automatización de tareas y una API REST que permite generar y obtener un resumen financiero a partir de un sistema externo. Utiliza herramientas modernas como Flask, Selenium y Pandas para ofrecer una solución robusta y escalable.
autogs/
├── abs_path.py
├── application/
│ ├── configuration/
│ │ └── firebase_config.py
│ ├── controller/
│ │ ├── rest/
│ │ │ ├── wsgi.py
│ │ │ └── SummaryREST.py
│ ├── models/
| | ├── Summary.py
│ │ ├── automation/
│ │ │ ├── date_setter/
│ │ │ │ ├── DateSetter.py
│ │ │ │ ├── DateSetterLastMonth.py
│ │ │ │ ├── DateSetterLastMonthToday.py
│ │ │ │ └── DateSetterCurrentMonth.py
│ │ │ ├── file_downloader_module.py
│ │ │ ├── login_module.py
│ │ │ ├── report_module.py
│ │ │ └── WebDriverManager.py
│ │ ├── pandas/
│ │ └── excel_reader.py
│ ├── service/
│ │ ├── SchedulerService.py
│ │ └── SummaryService.py
│ ├── persistence/
│ │ └── SummaryDAO.py
├── front/
│ ├── static/
│ │ ├── css/
│ │ │ └── mystyle.css
│ │ ├── js/
│ │ │ └── scripts.css
│ │ ├── assets/
│ ├── templates/
│ │ │ └── index.html
├── Dockerfile.py
└── requirements.txt
firebase_config.py: Encargado de leer las credenciales para inicializar la app de firebase y crear una instancia de firestore.SummaryApi.py: Define los endpoints /diferenciaResumenes, /diferenciaResumenesHoy y /obtenerResumen para interactuar con el servicio.WebDriverManager.py: Trabaja como Orquestador usando el resto de las clases. Configura el WebDriver, navega y descarga reportes.DateSetter.py: Establece rangos de fechas en formularios dependiendo lo requerido.login_module.py: Realiza el inicio de sesión en el sistema externo.report_module.py: Navega al reporte deseado dentro del sistema.file_downloader_module.py: Descarga el archivo del reporte y verifica su existencia.Summary.py: Define la lógica del negocio. Orquesta los pasos de automatización y procesamiento de datos. Almacena los datos de valor.ExcelReader.py: Lee y analiza el archivo descargado para extraer el total. Se maneja de forma eficiente borrando al anterior
para ahorrar espacio en memoria y recursos.SummaryService.py: Interviene como intermediario entre el negocio y la persistencia de datos para asegurar consistencia en los datos.SchedulerService.py: Implementacion de APScheduler para ejecutar registro de reportes en dias y horarios especificos. Especificamente, obtiene el resumen de este mismo dia pero de un mes atras cada dia que pasa y el resumen total del mes pasado cada vez que cambia el mes.SummaryDAO.py: Crea y actualiza instancias de Summary con lo suficiente para asegurar su correcto funcionamiento.pip install -r requirements.txt
.env con las credenciales:
DB_USER=usuario
DB_PASSWORD=contraseña
DB_KEY=key de firebase (tiene que estar en una sola linea)
TIMEZONE=declaras la zona horaria de tu preferencia, por defecto esta la de BsAs
git clone <url_repositorio>
cd carpeta_raiz
pip install -r requirements.txt
python -m application.controller.APIREST.SummaryApi
/resumenDelMesPasado: Actualizar el monto obtenido en todo el mes anterior y en la pagina se muestra su diferencia con el resumen actual en forma de porcentaje.
-- Ejemplo: Suponiendo que hoy es 26/12/2024, entonces la resta es entre el resumen del 30/11/2024 y del 26/12/2024/resumenDeUnMesAtras: Actualizar el monto obtenido este mismo dia pero de un mes anterior y en la pagina se muestra su diferencia con el resumen actual en forma de porcentaje.
-- Ejemplo: La resta es entre el resumen del 26/11/2024 y del 26/12/2024/resumenActual: Actualiza los datos obteniendo el resumen del dia actual, fecha con hora de cuando se solicito por ult vez el resumen y la diferencia con el total anteriormente pedido.Cualquier consulta o mejora, no dudes en contactarme: matteogiuffrah40@gmail.com