Skip to content

classy-giraffe/thesis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automazione di Processi Web tramite Selenium

Tesi di Laurea Triennale in Informatica
Università degli Studi di Parma
Dipartimento di Scienze Matematiche, Fisiche e Informatiche
A.A. 2024-2025

Autore: Tommaso Chiti
Relatore: Prof. Enea Zaffanella


📋 Panoramica

Questo repository contiene il lavoro completo della mia tesi di laurea triennale sull'automazione di processi web utilizzando Selenium. Il progetto esplora approcci pratici per automatizzare procedure di data entry in sistemi web che non forniscono API, con particolare focus sul portale IRIS (Institutional Research Information System).

La tesi affronta il paradosso della trasformazione digitale moderna: nonostante la crescente digitalizzazione, molte organizzazioni si trovano ancora a gestire processi manuali ripetitivi a causa della mancanza di integrazione tra sistemi. Quando le API non sono disponibili (sistemi legacy, vendor lock-in, costi elevati), l'automazione dell'interfaccia utente web diventa una soluzione pragmatica e necessaria.

🎯 Obiettivi

  • Automatizzare il processo manuale di compilazione del modulo di Public Engagement nel portale IRIS
  • Valutare diverse strategie di esecuzione per ottimizzare prestazioni e affidabilità
  • Creare un ambiente di test controllato per sviluppo sicuro e riproducibile
  • Dimostrare l'efficacia della Robotic Process Automation (RPA) in contesti reali

🏗️ Struttura del Repository

thesis/
├── IrisKit/              # Tool di automazione principale (Python + Selenium)
│   ├── core/            # Logica business e modelli
│   ├── runners/         # Strategie di esecuzione ottimizzate
│   ├── Pages/           # Ambiente di test con pagine statiche
│   └── server.py        # Server HTTP locale per testing
├── latex/               # Documentazione tesi (LaTeX)
│   ├── Capitoli/        # Capitoli della tesi
│   ├── Immagini/        # Risorse grafiche
│   └── Tesi.tex         # Documento principale
└── arsenic/             # PoC WebDriver in Rust (opzionale)

🚀 IrisKit: Il Tool di Automazione

IrisKit è un tool di web scraping automatizzato progettato per gestire la compilazione batch di form multi-step nel sistema IRIS. Caratteristiche principali:

Funzionalità Chiave

  • 🤖 Compilazione Automatica: Gestisce form complessi con vari tipi di input (text, dropdown, radio button, date)
  • 📊 Elaborazione Batch: Processa multipli record da file CSV
  • Strategie Multiple: 3 modalità di esecuzione ottimizzate
    • original: Massima affidabilità (1 browser per entry)
    • reuse: 2-3x più veloce (riuso browser)
    • threaded: 3-4x più veloce (multi-threading)
  • 🔒 Type-Safe: Modelli dati fortemente tipizzati (dataclasses, enums)
  • 📝 Logging Completo: Log dettagliati con timestamp
  • 📸 Screenshot su Errori: Cattura automatica per debugging
  • 🛡️ Gestione Errori Robusta: Gerarchia custom di eccezioni
  • 🔄 Resilienza: Continua elaborazione anche in caso di fallimenti individuali

Quick Start

# Installa dipendenze
cd IrisKit
uv sync

# Avvia server di test
python server.py

# Esegui automazione
python main.py original data.csv    # Massima affidabilità
python main.py reuse data.csv       # Bilanciato
python main.py threaded data.csv    # Massima velocità

Requisiti

  • Python 3.13+
  • Google Chrome

📚 Struttura della Tesi

La tesi è organizzata in capitoli che coprono aspetti teorici e pratici:

Capitoli Principali

  1. Contesto e Motivazione dell'Automazione

    • Panorama digitale e trasformazione dei processi aziendali
    • RPA (Robotic Process Automation) come disciplina strategica
    • Il dilemma dell'integrazione tra sistemi
    • Caso di studio: Data entry nel portale IRIS
  2. Fondamenti di Automazione Web e Metodologia

    • Ambiente di test controllato (server locale + pagine statiche)
    • Document Object Model (DOM) e natura dinamica del web
    • JavaScript come "sistema nervoso" della pagina
    • Sfide della sincronizzazione con contenuti dinamici
  3. Implementazione e Architettura

    • Design pattern e best practices
    • Gestione degli elementi web e strategie di attesa
    • Modelli dati e type safety
    • Error handling e logging
  4. Valutazione delle Prestazioni

    • Confronto tra strategie di esecuzione
    • Metriche di performance
    • Trade-off affidabilità vs velocità

📄 Licenza

Questo progetto è sviluppato per scopi accademici come parte di una tesi di laurea.

🙏 Ringraziamenti

Ringrazio il Prof. Enea Zaffanella per la guida e supervisione durante lo sviluppo di questo lavoro di tesi.

About

Drafts, notes, projects and slide about my BsC Thesis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors