A FAIRE
Mehdi:
- EnsReservations (+Structure de données)
- Reservation
Jean:
- EnsEmprunts (+Structure de données)
- Emprunt
Rahim:
- EnsExtensions (+Structure de données)
Vincent:
- Extension (+Spécification fonctionnelle)
==>Extension
- On peut reserver une extension sans avoir reservé le jeu de base
- On peut reserver une extension et un jeu (SEULEMENT si l'extension lui appartient)
- On peut reserver une seule extension
- Recuperer le nombre d'extension d'un jeu
- Recuperer le nombre d'extensions disponibles
- Recuperer une Extension
- Ajouter une extension
- Supprimer une extension
- Modifier une extension
#Class Connexion
Structure de données:
- username: string
- password: string
Spécification fonctionnelle:
est_valide: Connexion -> Bool
creer_session: Connexion -> Session
(1) creer_session <=> est_valide(Connexion)
#Class Session
Structure de données:
- User: Utilisateur
- admin: Bool
Spécification fonctionnelle:
est_admin: Session -> Bool
set_admin: Session x Bool -> Session
get_id: Session -> Int
#Class Utilisateur
Structure de données:
- user_id: Int
- username: STRING
- password: STRING
- abonnementValide: Bool
- empruntEnCours: Bool
- reservationEnCours: Bool
- nbRetard: Int
Spécification fonctionnelle:
get_user_id: Utilisateur -> String
get_username: Utilisateur -> String
get_password: Utilisateur -> String
get_abonnementValide: Utilisateur -> Bool
get_empruntEnCours: Utilisateur -> Bool
get_reservationEnCours: Utilisateur -> Bool
get_nbRetard: Utilisateur -> Int
set_username: Utilisateur x String -> Utilisateur
set_password: Utilisateur x String -> Utilisateur
set_abonnementValide: Utilisateur x Bool -> Utilisateur
set_empruntEnCours: Utilisateur x Bool -> Utilisateur
set_reservationEnCours: Utilisateur x Bool -> Utilisateur
set_nbRetard: Utilisateur x Int -> Utilisateur
est_admin: Utilisateur -> Bool
make_admin: Utilisateur ->
delete_user: Utilisateur ->
save: Utilisateur ->
#Class Jeu
Structure de données:
- Jeu_id: Int
- Nom_jeu: STRING
- Annee: STRING
- Editeur: STRING
- AgeMini: STRING
- NombreJoueur: STRING
- Description: TEXT
Spécification fonctionnelle:
get_Nom_jeu: Jeu -> String
get_AgeMini: Jeu -> String
get_Description: Jeu -> String
get_Jeu_id: Jeu -> Int
get_nombre_exemplaires: Jeu -> Int
get_nombre_exemplaires_dispo: Jeu -> Int
get_NombreJoueurs: Jeu -> String
get_Editeur: Jeu -> String
get_Annee: Jeu -> String
set_Nom_jeu: Jeu x String -> Jeu
set_AgeMini: Jeu x String -> Jeu
set_Description: Jeu x Text -> Jeu
set_NombreJoueurs: Jeu x String -> Jeu
set_Editeur: Jeu x String -> Jeu
set_Annee: Jeu x String -> Jeu
save: Jeu ->
#Class Exemplaire
Structure de données:
- Exemplaire_id: Int
- Jeu_id: Int
- Est_disponible: Bool
Spécification fonctionnelle:
get_Jeu_id: Exemplaire -> Int
get_Exemplaire_id: Exemplaire -> Int
get_Est_disponible: Exemplaire -> Bool
set_Jeu_id: Exemplaire x Int -> Exemplaire
set_Est_disponible: Exemplaire x Bool -> Exemplaire
save: Exemplaire ->
#Class Reservation
Structure de données:
- Reservation_id = int
- user_id = int
- Jeu_id = int
- Extension_id = int
- Exemplaire_id = int
- date_Reservation = date
- Terminer = bool
Spécification fonctionnelle:
get_Reservation_id: Reservation -> Int
get_user_id: Utilisateur -> Int
get_Jeu_id: Jeu -> Int
get_Extension_id: Extension -> Int
get_Exemplaire_id: Exemplaire -> Bool
get_date_Reservation: Reservation-> date
get_Terminer: Reservation -> Bool
set_Reservation_id: Reservation x int-> Reservation
set_user_id: Utilisateur x int -> Utilisateur
set_Jeu_id: Jeu x int -> Jeu
set_Extension_id: Extension x int -> Extension
set_Exemplaire_id: Exemplaire x int -> Exemplaire
set_date_Reservation: Reservation x date -> Reservation
set_Terminer: Reservation x Bool -> Reservation
Fonctions:
- createTable(): Crée la table EnsUtilisateurs
- destroyTable(): Detruit la table EnsUtilisateurs
- has_username(username): Renvoie True si un utilisateur est enregistré au même nom
- is_password(password,User): Renvoie True si c'est le mot de passe de User
- get_nombre_utilisateurs(): Renvoie le nombre d'utilisateurs
- get_user(user_id=None,username=None): Renvoie un type Utilisateur à partir de l'id et/ou de l'username
- delete_user(User): Supprime un utilisateur de la base de données
(1) Si un utilisateur est admin, le supprime aussi de EnsAdmins - user_to_table(User): Renvoie une liste avec les attributs d'un type Utilisateur
- insert(User): Insert un type Utilisateur dans la base de données
- printAll(): Renvoie un tableau avec tous les utilisateurs
Fonctions:
- createTable(): Crée la table EnsAdmins
- destroyTable(): Detruit la table EnsAdmins
- est_admin(User): Renvoie True si l'Utilisateur est admin
- delete_admin(User): Supprime un statut admin de la base de données
(1) Ne supprime pas l'utilisateur associé - insert(User): Insert un type Admin dans la base de données
- printAll(): Renvoie un tableau avec tous les admins
Fonctions:
- createTable(): Crée la table EnsJeux
- destroyTable(): Detruit la table EnsJeux
- jeu_to_table(Jeu): Renvoie les attributs d'un Jeu sous forme de liste
- get_Jeu(Jeu_id=None,Nom_jeu=None): Renvoie un jeu associé au Jeu_id et/ou au Nom_jeu
- delete_jeu(Jeu): Supprime un type Jeu de la base de données
(1) Supprime les exemplaires associés (2) Vérifie si un exemplaire est emprunté - insert(Jeu): Insert un type Jeu dans la base de données
- rechercher(Nom_jeu): Recherche type Jeu dans la base de données
- update(Jeu): Update un type Jeu dans la base de données
- printAll(): Renvoie un tableau avec tous les Jeux
Fonctions:
- createTable(): Crée la table EnsExemplaires
- destroyTable(): Detruit la table EnsExemplaires
- exemplaire_to_table(Jeu): Renvoie les attributs d'un Exemplaire sous forme de liste
- get_nombre_exemplaires(Jeu,disponible): Renvoie le nombre d'exemplaire
Tous: disponible = 2, Disponibles: disponible=1, Indisponibles: disponible=0 - get_Exemplaire_dispo(Jeu): Renvoie un exemplaire disponible associé à un Type Jeu
- delete_Exemplaire(Exemplaire): Supprime un type Exemplaire de la base de données
- insert(Exemplaire): Insert un type Exemplaire dans la base de données
- printAll(): Renvoie un tableau avec tous les Exemplaires