Skip to content

Webapp that simulates a betting system for major sport leagues. Develop for the Introduction to Web Programming course at University of Trento, a.y. 2024/2025

License

Notifications You must be signed in to change notification settings

mircostelzer/MatchWeb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MatchWeb

Descrizione

MatchWeb è un progetto didattico pensato per introdurre gli studenti ai principi fondamentali dello sviluppo web full-stack tramite la simulazione di un servizio di scommesse su campionati sportivi. Il progetto combina la creazione di una API REST in Spring Boot con un frontend dinamico e responsive, fornendo una panoramica completa delle tecnologie attuali per il web.

Obiettivi del Progetto

  • Familiarizzare con l’architettura client-server e le basi della programmazione per il web.
  • Comprendere e applicare i fondamentali del framework Spring, dalla configurazione di un'applicazione fino alla suddivisione della logica tramite controller e servizi.
  • Imparare a progettare, pubblicare e consumare API REST, facilitando la comunicazione tra frontend e backend.
  • Approfondire le basi del frontend: gestione pagine web, interattività, accesso ai dati remoti tramite JavaScript moderne (fetch API, promises).
  • Integrare la gestione utenti, autenticazione, ranking e scommesse, per simulare flussi e funzionalità tipiche di app web reali.

Contenuti Principali

  1. Backend

    • Implementazione con Spring Boot.
    • Definizione di modelli dati.
    • Esposizione di API REST per le principali funzionalità offerte.
    • Gestione della business logic tramite repository e servizi.
  2. Integrazione e Architettura

    • Suddivisione in più moduli: uno per la generazione e pubblicazione API delle partite, uno che consuma queste API tramite proxy.
    • Comunicazione tramite standard REST e utilizzo di client come Feign per l’integrazione interna tra moduli.
  3. Frontend

    • Realizzazione di pagine HTML/CSS/JS che sfruttano le API REST.
    • Utilizzo di chiamate asincrone con fetch e gestione delle risposte tramite promises, aggiornando dinamicamente la UI.
    • Adozione di semplici tecniche di responsive design per migliorare l’usabilità su dispositivi mobili e desktop tramite Bootstrap.

Suddivisione Ruoli Utente e User Flow

Il sistema simula una comunità di utenti suddivisi in diversi ruoli:

  • Admin: gestisce gli utenti, può promuovere altri utenti a moderatori, visualizza tutta la classifica, può assegnare i premi ai migliori scommettitori e vedere la lista utenti.
  • User: può effettuare scommesse sulle partite in calendario, visualizzare il proprio profilo con statistiche, commentare e consultare la propria posizione in classifica.
  • Moderator: ruolo intermedio che può essere attribuito dall’admin a un utente e può accedere ad alcune funzionalità riservate.

User flow tipico:

  • Registrazione/Login: l’utente crea un account o effettua l'accesso, acquisendo un ruolo di default ("User").
  • Consultazione calendario: ogni utente può vedere le partite in programma e i risultati già disponibili tramite pagine dedicate che si aggiornano dinamicamente tramite chiamate alle API REST.
  • Scommesse: l’utente esprime pronostici sulle partite del giorno scegliendo il vincitore tra le squadre; i dati vengono inviati al backend, e la logica di calcolo confronta i pronostici con i risultati reali simulati.
  • Classifica e premi: in base ai risultati delle scommesse, il sistema calcola una classifica aggiornata. Gli admin possono assegnare premi ai migliori utenti tramite un meccanismo di estrazione casuale tra i top player.
  • Gestione avanzata: Admin/moderatori hanno accesso ad aree riservate per la gestione dei privilegi, dei premi e della visualizzazione statistica globale.

Dettagli Implementativi

  • Il backend, sviluppato in Spring Boot, organizza la logica in servizi e controller, separando chiaramente la generazione dati dalle funzionalità di interazione.
  • Le partite vengono generate dinamicamente e possono essere filtrate e visualizzate giorno per giorno, con risultati disponibili tramite endpoint REST.
  • Il frontend si collega al backend tramite API, rendendo possibile aggiornare in tempo reale il calendario, i risultati e la classifica utenti.
  • La gestione degli utenti, l’autenticazione, la registrazione e il ranking sono esempi di flusso end-to-end che includono sia gestione dati sul backend che interfaccia web adattiva.
  • L'integrazione tra i vari moduli avviene tramite chiamata di servizi REST interni e proxy che permettono di mantenere l'architettura modulare e riusabile.

About

Webapp that simulates a betting system for major sport leagues. Develop for the Introduction to Web Programming course at University of Trento, a.y. 2024/2025

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published