Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/arashabe/springmvcwebapp

Una Web App per il corso di Progettazione, Algoritmi e Computabilità che consente agli utenti di registrarsi, accedere, aggiornare il profilo e ricevere notifiche per formare gruppi di studio con interessi comuni. La piattaforma utilizza Spring Framework, un database embedded H2 e adotta il pattern MVC.
https://github.com/arashabe/springmvcwebapp

h2-database jpa-hibernate junit-mockito junit5 mvc-pattern playwright postman spring-boot spring-mvc spring-security unibg user-authentication web-application

Last synced: 12 days ago
JSON representation

Una Web App per il corso di Progettazione, Algoritmi e Computabilità che consente agli utenti di registrarsi, accedere, aggiornare il profilo e ricevere notifiche per formare gruppi di studio con interessi comuni. La piattaforma utilizza Spring Framework, un database embedded H2 e adotta il pattern MVC.

Awesome Lists containing this project

README

        

# SpringMVCWebApp

- Il corso di [**Progettazione, algoritmi e computabilità**](https://unibg.coursecatalogue.cineca.it/insegnamenti/2022/38090-MOD1/2021/3212/89?coorte=2022&schemaid=68843) per l'anno accademico **2023/2024**.
- Docente: Prof.ssa Patrizia Scandurra
- Sviluppatori: **Arash Abedi** & **Daniele Alberti**

## Descrizione del Progetto

Una web app progettata per facilitare la comunicazione e la collaborazione tra studenti universitari. Gli utenti possono registrarsi, fare login, aggiornare i loro profili e inviare notifiche per formare gruppi di studio basati su interessi comuni. Il sistema non gestisce direttamente gli studenti, ma permette loro di interagire e organizzarsi autonomamente in gruppi di studio.

## Caratteristiche Principali

- **Registrazione e Login**: Gli utenti possono creare un nuovo account o accedere con le credenziali esistenti.
- **Aggiornamento Profilo**: Gli utenti possono modificare le informazioni del loro profilo.
- **Notifiche**: Gli utenti possono inviare e ricevere notifiche per creare e unirsi a gruppi di studio.
- **Gestione Gruppi di Studio**: Gli utenti possono formare gruppi di studio basati su interessi comuni e collaborare con altri membri del gruppo.

## Tecnologie Utilizzate

- **Spring Boot**: Framework per lo sviluppo di applicazioni Java basate su Spring.
- **Spring Security**: Per la gestione della sicurezza e dell'autenticazione.
- **Thymeleaf**: Motore di template per la generazione di pagine web.
- **Bootstrap**: Un framework HTML, CSS e JavaScript più popolare per sviluppare siti web responsivi e mobile-first.
- **H2 Database**: Database embedded per lo sviluppo e il test.
- **JUnit**: Framework per la scrittura di test unitari.
- **Playwright**: Un framework per il test e l'automazione web. Permette di testare Chromium, Firefox e WebKit utilizzando un'unica API.
- **Postman**: Una piattaforma per sviluppatori che facilita il testing, lo sviluppo e la documentazione delle API tramite un'interfaccia intuitiva.
- **Maven**: Sistema di gestione dei progetti e delle dipendenze.

## Modello di Sviluppo

Il progetto è stato sviluppato utilizzando il **modello di sviluppo Agile**. In particolare, abbiamo adottato il modello Agile in coppia. Abbiamo lavorato insieme in modo iterativo e incrementale per garantire una consegna continua di valore e una risposta rapida ai cambiamenti nei requisiti.

### Caratteristiche del Modello Agile Utilizzato

- **Iterazioni Brevi**: Sviluppo in cicli brevi per garantire feedback frequente e miglioramenti continui.
- **Collaborazione Stretta**: Lavoro a stretto contatto tra i programmatori per risolvere rapidamente i problemi e migliorare il prodotto.
- **Adattamento ai Cambiamenti**: Capacità di adattarsi ai cambiamenti nei requisiti e nelle condizioni del progetto.
- **Focus sul Valore**: Concentrarsi sulla consegna di valore reale e tangibile agli utenti finali.

## Istruzioni per l'Esecuzione del Progetto

1. **Clonare il Repository**: Utilizzare git clone per clonare il repository sul proprio ambiente locale.
2. **Importare il progetto in STS**: Aprire Spring Tool Suite (STS) e importare il progetto come Maven Project.
3. **Installare le Dipendenze**: Una volta importato, STS scaricherà automaticamente le dipendenze del progetto.
4. **Avviare l'applicazione**: selezionare Run As > Spring Boot App per avviare l'applicazione.
5. **Accedere all'applicazione**:Aprire il browser e navigare su http://localhost:8080.

## Indice

- [Introduzione](Documentazione/Introduzione.md)
- [Specifiche dei Requisiti](Documentazione/Documento%20di%20Specifica%20dei%20Requisiti%20Software.md)
- [Design dell'Architettura](Documentazione/Documento%20di%20Design%20dell%E2%80%99Architettura%20Software.md)
- [Documento per l’Analisi Dinamica](Documentazione/Documento%20per%20l%E2%80%99Analisi%20Dinamica%20Junit.md)
- [Documento di Testing delle API con Postman](Documentazione/Documento%20di%20Testing%20delle%20API%20con%20Postman.md)
- [Documento per l’Analisi Statica](Documentazione/Documenti%20per%20l%E2%80%99Analisi%20Statica.md)
- [Documentazione sui Test End-to-End con Playwright](Documentazione/Documentazione%20sui%20Test%20End-to-End%20con%20Playwright.md)
- [Demo del Progetto](Documentazione/demo.md)