Untitled

 avatar
unknown
plain_text
6 months ago
2.6 kB
3
Indexable
1) Estensione del Database

Tabella users: Già esistente, ma aggiungiamo nuovi dettagli per ogni utente, come:

user_id (PK)
username (UNIQUE)
email
password
first_name
last_name
role (es. "admin" o "member")

Tabella groups:

group_id (PK)
title
creation_date
duration_days
min_participants
max_participants
creator_id (FK verso users.user_id)

Tabella group_members: Associazione tra utenti e gruppi, rappresentando l'appartenenza degli utenti ai gruppi. Includiamo anche un campo per indicare se un membro è "attivo" nel gruppo:

group_member_id (PK)
group_id (FK verso groups.group_id)
user_id (FK verso users.user_id)
status (es. "active", "invited", "removed")

Tabella group_invitations: Per memorizzare gli inviti ai gruppi, che possono essere accettati o rifiutati:

invitation_id (PK)
group_id (FK verso groups.group_id)
user_id (FK verso users.user_id)
invitation_status (es. "pending", "accepted", "rejected")
sent_date



2) Estensione delle Funzionalità in JSP e Servlet

2.1) Aggiungere Ruoli e Permessi

Implementa una distinzione tra admin e member. Gli admin possono creare nuovi gruppi e gestire tutti i gruppi esistenti, mentre i member possono solo 
unirsi o essere invitati a gruppi.

Mostra funzionalità diverse nelle JSP in base al ruolo: ad esempio, nella pagina di dettagli gruppo, un admin può vedere l'icona del cestino per rimuovere partecipanti, mentre un member no.

2.2) Gestione degli Inviti

Servlet per l’Invio degli Inviti: Crea una servlet (SendInvitationServlet) che invia inviti agli utenti e aggiorna la tabella group_invitations.

Visualizzazione degli Inviti: Nella home page, aggiungi una sezione dove l’utente può vedere gli inviti ricevuti, con opzioni per accettare o rifiutare. Una servlet (RespondToInvitationServlet) gestisce l'aggiornamento dello stato dell'invito in group_invitations.

Conferma di Partecipazione: Se l’utente accetta un invito, viene inserito in group_members con stato "active".

2.3) Log delle Attività

Aggiungi una tabella activity_log per memorizzare le azioni principali, come la creazione di gruppi, l’aggiunta o rimozione di membri, ecc.

Servlet per il Logging: Ogni servlet che gestisce un’operazione importante (come la creazione di un gruppo o la rimozione di un membro) aggiunge un record in activity_log.

Visualizzazione del Log: Crea una pagina JSP dove l’admin può visualizzare il log delle attività recenti dei gruppi.

2.4) Filtri Avanzati nella Lista dei Gruppi

Aggiungi filtri per data di creazione o durata del gruppo nella home page, con una servlet (FilterGroupsServlet) per gestire le richieste e restituire i gruppi filtrati.
Editor is loading...
Leave a Comment