The goal of this thesis is to document my internship experience at Certimeter s.r.l., aimed at acquiring the design and development methodologies of an application, in order to implement a management web-application for gyms. The purpose of the developed application is to facilitate the management of a gym, thanks to the implementation of differentiated roles and functions (Administrator, Personal Trainer and Customer), covering the majority of management tasks, centralizing them in a single system. The technologies used in the project were Java Spring Boot for the back-end and Angular for the front-end, two frameworks widely used and suitable for developing complex applications, simplifying and speeding up various aspects of the development process. The user interface and user experience (UI/UX) aspects have been taken care of through the integration of Bootstrap, a CSS framework, and Angular Bootstrap, a toolkit of components that integrates the graphic aspects of Bootstrap with Angular, allowing to obtain a pleasant, modern and responsive interface. Finally, the application was designed using a microservices architecture, supported by a Backend-for-Frontend (BFF) layer and communicating through RESTful APIs. This approach made possible to divide the application into independent and modular components, facilitating maintenance and updates. Microservices can be individually scaled to optimize resources usage, while the BFF layer aggregates and optimizes the requests from the frontend, improving overall system efficiency and user experience. At the end of my internship, all the functions defined as "core" in the design phase, i.e. those of highest priority for the functioning of the application, have been successfully implemented, making it possible to manage user profiles , training routines and subscriptions through the web application. Role-based functionality division has also been implemented through a stateless authentication system based on JSON Web Tokens (JWT) combined with client-side and server-side authorization controls, to minimize the possibility of unauthorized data access.
L'obiettivo di questa tesi è documentare il mio percorso di stage all'interno di Certimeter s.r.l., volto all'acquisizione delle metodologie di progettazione e sviluppo di un applicativo, al fine di implementare una web-application gestionale per palestre. Lo scopo dell'applicativo sviluppato è quello di facilitare la gestione, nel caso specifico, di una palestra, grazie all'implementazione di ruoli e funzionalità differenziate (Amministratore, Personal Trainer e Cliente), andando a ricoprire la maggior parte degli impegni gestionali, accentrandoli in un unico sistema. Le tecnologie utilizzate sono state Java Spring Boot per il back-end e Angular per il front-end, due framework attualmente largamente utilizzati ed adatti a sviluppare applicativi complessi, semplificandone e velocizzandone diversi aspetti. Gli aspetti inerenti alla grafica ed alla user experience (UI/UX) sono stati curati attraverso l'integrazione del framework CSS Bootstrap e di Angular Bootstrap, un toolkit di componenti che integrano gli aspetti grafici di Bootstrap con Angular, permettendo di ottenere un'interfaccia piacevole, moderna e responsiva. Implementando infine un'architettura a microservizi, supportata da un Backend-for-Frontend (BFF) e comunicante attraverso API RESTful, è stato possibile suddividere l'applicazione in componenti indipendenti e modulari, facilitando la manutenzione e l'aggiornamento. I microservizi possono essere scalati singolarmente per ottimizzare le risorse, mentre il BFF aggrega e ottimizza le richieste del front-end, migliorando l'efficienza complessiva del sistema e l'esperienza utente. Al termine del percorso di stage, tutte le funzionalità definite in fase di progettazione come "core", ovvero di priorità più alta per il funzionamento dell'applicativo, sono state completate, rendendo possibile gestire, attraverso la web-application, i profili degli utenti, le schede di allenamento e gli abbonamenti. La compartimentazione delle funzionalità basata sui ruoli inoltre è stata implementata attraverso un sistema di autenticazione stateless basato sui JSON Web Token (JWT) in combinazione con controlli di autorizzazione lato client e lato server, per ridurre al minimo la possibilità di accessi non autorizzati ai dati.
Progettazione e sviluppo di un'applicativo gestionale per palestre
VIVONE, ALESSANDRO
2023/2024
Abstract
L'obiettivo di questa tesi è documentare il mio percorso di stage all'interno di Certimeter s.r.l., volto all'acquisizione delle metodologie di progettazione e sviluppo di un applicativo, al fine di implementare una web-application gestionale per palestre. Lo scopo dell'applicativo sviluppato è quello di facilitare la gestione, nel caso specifico, di una palestra, grazie all'implementazione di ruoli e funzionalità differenziate (Amministratore, Personal Trainer e Cliente), andando a ricoprire la maggior parte degli impegni gestionali, accentrandoli in un unico sistema. Le tecnologie utilizzate sono state Java Spring Boot per il back-end e Angular per il front-end, due framework attualmente largamente utilizzati ed adatti a sviluppare applicativi complessi, semplificandone e velocizzandone diversi aspetti. Gli aspetti inerenti alla grafica ed alla user experience (UI/UX) sono stati curati attraverso l'integrazione del framework CSS Bootstrap e di Angular Bootstrap, un toolkit di componenti che integrano gli aspetti grafici di Bootstrap con Angular, permettendo di ottenere un'interfaccia piacevole, moderna e responsiva. Implementando infine un'architettura a microservizi, supportata da un Backend-for-Frontend (BFF) e comunicante attraverso API RESTful, è stato possibile suddividere l'applicazione in componenti indipendenti e modulari, facilitando la manutenzione e l'aggiornamento. I microservizi possono essere scalati singolarmente per ottimizzare le risorse, mentre il BFF aggrega e ottimizza le richieste del front-end, migliorando l'efficienza complessiva del sistema e l'esperienza utente. Al termine del percorso di stage, tutte le funzionalità definite in fase di progettazione come "core", ovvero di priorità più alta per il funzionamento dell'applicativo, sono state completate, rendendo possibile gestire, attraverso la web-application, i profili degli utenti, le schede di allenamento e gli abbonamenti. La compartimentazione delle funzionalità basata sui ruoli inoltre è stata implementata attraverso un sistema di autenticazione stateless basato sui JSON Web Token (JWT) in combinazione con controlli di autorizzazione lato client e lato server, per ridurre al minimo la possibilità di accessi non autorizzati ai dati.File | Dimensione | Formato | |
---|---|---|---|
915448_tesi_vivone.pdf
non disponibili
Tipologia:
Altro materiale allegato
Dimensione
2.02 MB
Formato
Adobe PDF
|
2.02 MB | Adobe PDF |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14240/160791