Merge branch 'master' into Springboot

Springboot
Victor SOULIER 1 year ago
commit 46dbcb1700

@ -46,12 +46,12 @@ entity "Utilisateur" as utilisateur {
entity "Invite" as invite { entity "Invite" as invite {
<u>#idJoueur : int <u>#idJoueur : int
<u>idSession : int
} }
entity "Partie" as partie { entity "Partie" as partie {
<u>id : int <u>id : int
codeInvitation : string codeInvitation : string
isStarted: bool
#idJeu : int #idJeu : int
} }
@ -84,11 +84,46 @@ entity "Question" as question {
question : string question : string
} }
entity "Action" as action {
<u>id : int
dateAction : date
}
entity "Jouer" as jouer {
#idAction
#idPartie
}
entity "ActionPendu" as actionPendu {
<u>#idAction
lettre : char
wordToFind : string
lifeLeft : int
}
entity "ActionKahoot" as actionKahoot {
<u>#idAction
numReponse: int
tempsReponse: int
#idJoueur
}
entity "ActionQuiEstCe" as actionQuiEstCe {
<u>#idAction
#idJoueur
}
actionPendu --> action
actionQuiEstCe --> action
actionQuiEstCe --> joueur
actionKahoot --> action
actionKahoot --> joueur
jouer --> action
jouer --> partie
partie --> jeu partie --> jeu
partie <-- joueur partie <-- joueur
invite --> joueur invite --> joueur
utilisateur --> joueur utilisateur --> joueur
utilisateur --> scientifique
scientifique --> thematique scientifique --> thematique
scientifique --> difficulte scientifique --> difficulte
scientifique --> indice scientifique --> indice

@ -1,11 +1,10 @@
**Jeu(<ins>id</ins>, nom, nbrParties)** **Jeu(<ins>id</ins>, nom, nbrParties)**
- *id* : clef primaire de la table Jeu - *id* : clef primaire de la table Jeu
**Scientifique(<ins>id</ins>, nom, prenom, photo, dateNaissance, descriptif, ratioTrouvee, #idThematique, #idDifficulte, #idSexe)** **Scientifique(<ins>id</ins>, nom, prenom, photo, dateNaissance, descriptif, ratioTrouvee, sexe, #idThematique, #idDifficulte)**
- *id* : clef primaire de la table Scientifique - *id* : clef primaire de la table Scientifique
- *#idThematique* clef étrangère en référence à *id* de la table Thematique - *#idThematique* clef étrangère en référence à *id* de la table Thematique
- *#idDifficulte* clef étrangère en référence à *id* de la table Difficulté - *#idDifficulte* clef étrangère en référence à *id* de la table Difficulté
- *#idSexe* clef étrangère en référence à *id* de la table Sexe
**Thematique(<ins>id</ins>, libelle)** **Thematique(<ins>id</ins>, libelle)**
- *id* : clef primaire de la table Thematique - *id* : clef primaire de la table Thematique
@ -13,23 +12,20 @@
**Difficulté(<ins>id</ins>, libelle)** **Difficulté(<ins>id</ins>, libelle)**
- *id* : clef primaire de la table Difficulté - *id* : clef primaire de la table Difficulté
**Sexe(<ins>id</ins>, libelle)** **Joueur(<ins>id</ins>, pseudo, #idPartie)**
- *id* : clef primaire de la table Sexe
**Joueur(<ins>id</ins>, pseudo)**
- *id* : clef primaire de la table Joueur - *id* : clef primaire de la table Joueur
- *#idPartie* : clef étrangère en référence à *id* de la table Partie
**Utilisateur(<ins>#idJoueur</ins>, email, motDePasse, pseudo)** **Utilisateur(<ins>#idJoueur</ins>, email, motDePasse, pseudo)**
- *idJoueur* : clef primaire de la table Joueur - *idJoueur* : clef primaire de la table Joueur
- *#idJoueur* : clef étrangère en référence à *id* de la table Joueur - *#idJoueur* : clef étrangère en référence à *id* de la table Joueur
**Invite(<ins>#idJoueur</ins>, idSession)** **Invite(<ins>#idJoueur</ins>)**
- *idJoueur* : clef primaire de la table Joueur - *idJoueur* : clef primaire de la table Joueur
- *#idJoueur* : clef étrangère en référence à *id* de la table Joueur - *#idJoueur* : clef étrangère en référence à *id* de la table Joueur
**Partie(<ins>id</ins>, codeInvitation, #idJoueur, #idJeu)** **Partie(<ins>id</ins>, codeInvitation, #idJeu)**
- *id* : clef primaire de la table Partie - *id* : clef primaire de la table Partie
- *#idJoueur* : clef étrangère en référence à *id* de la table Joueur
- *#idJeu* : clef étrangère en référence à *id* de la table Jeu - *#idJeu* : clef étrangère en référence à *id* de la table Jeu
**Admin(<ins>#id</ins>, email, motDePasse)** **Admin(<ins>#id</ins>, email, motDePasse)**

@ -1,149 +1,134 @@
-- Testé sous pgsql 15 -- Testé sous pgsql 15
DROP TABLE IF EXISTS Reponse; DROP TABLE IF EXISTS Reponse CASCADE;
DROP TABLE IF EXISTS Question CASCADE;
DROP TABLE IF EXISTS Question; DROP TABLE IF EXISTS Admin CASCADE;
DROP TABLE IF EXISTS Partie CASCADE;
DROP TABLE IF EXISTS Admin; DROP TABLE IF EXISTS Jeu CASCADE;
DROP TABLE IF EXISTS Decouvrir CASCADE;
DROP TABLE IF EXISTS Partie; DROP TABLE IF EXISTS Utilisateur CASCADE;
DROP TABLE IF EXISTS Invite CASCADE;
DROP TABLE IF EXISTS Jeu; DROP TABLE IF EXISTS Joueur CASCADE;
DROP TABLE IF EXISTS Indice CASCADE;
DROP TABLE IF EXISTS Decouvrir; DROP TABLE IF EXISTS Scientifique CASCADE;
DROP TABLE IF EXISTS Thematique CASCADE;
DROP TABLE IF EXISTS Utilisateur;
DROP TABLE IF EXISTS Invite;
DROP TABLE IF EXISTS Joueur;
DROP TABLE IF EXISTS Indice;
DROP TABLE IF EXISTS Scientifique;
DROP TABLE IF EXISTS Thematique;
DROP TABLE IF EXISTS Difficulte; DROP TABLE IF EXISTS Difficulte;
-- THEMATIQUE -- THEMATIQUE
CREATE TABLE Thematique( CREATE TABLE Thematique(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
libelle varchar(128) NOT NULL UNIQUE libelle varchar(128) NOT NULL UNIQUE
); );
-- DIFFICULTE -- DIFFICULTE
CREATE TABLE Difficulte( CREATE TABLE Difficulte(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
libelle varchar(128) NOT NULL UNIQUE libelle varchar(128) NOT NULL UNIQUE
); );
-- SCIENTIFIQUE -- SCIENTIFIQUE
CREATE TABLE Scientifique( CREATE TABLE Scientifique(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
nom varchar(128) NOT NULL, nom varchar(128) NOT NULL,
prenom varchar(128) NOT NULL, prenom varchar(128) NOT NULL,
photo varchar(512) NOT NULL, photo varchar(512) NOT NULL,
dateNaissance date NOT NULL, dateNaissance date NOT NULL,
descriptif text NOT NULL, descriptif text NOT NULL,
ratioTrouvee numeric(5,4), ratioTrouvee numeric(5,4),
sexe char(1) NOT NULL CHECK(sexe IN ('F', 'H')), sexe char(1) NOT NULL CHECK(sexe IN ('F', 'H')),
idThematique integer REFERENCES Thematique(id), idThematique integer REFERENCES Thematique(id),
idDifficulte integer REFERENCES Difficulte(id), idDifficulte integer REFERENCES Difficulte(id)
); );
-- INDICE -- INDICE
CREATE TABLE Indice( CREATE TABLE Indice(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
libelle varchar(512) NOT NULL UNIQUE, libelle varchar(512) NOT NULL,
idScientifique integer REFERENCES Scientifique(id) idScientifique integer REFERENCES Scientifique(id)
); );
-- QUESTION -- QUESTION
CREATE TABLE Question( CREATE TABLE Question(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
question varchar(256) NOT NULL UNIQUE question varchar(256) NOT NULL UNIQUE
); );
-- REPONSE -- REPONSE
CREATE TABLE Reponse( CREATE TABLE Reponse(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
reponse varchar(255) NOT NULL, reponse varchar(255) NOT NULL,
idQuestion integer REFERENCES Question(id), idQuestion integer REFERENCES Question(id),
idScientifique integer REFERENCES Scientifique(id) idScientifique integer REFERENCES Scientifique(id)
); );
-- ADMIN -- ADMIN
CREATE TABLE Admin( CREATE TABLE Admin(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
email varchar(255) NOT NULL UNIQUE, email varchar(255) NOT NULL UNIQUE,
password varchar(255) NOT NULL password varchar(255) NOT NULL
); );
-- Jeu
CREATE TABLE Jeu(
id SERIAL PRIMARY KEY,
nom varchar(128) NOT NULL UNIQUE,
nbrParties integer NOT NULL DEFAULT 0
);
-- Partie
CREATE TABLE Partie(
id SERIAL PRIMARY KEY,
codeInvitation varchar(5) NOT NULL UNIQUE,
idJeu integer REFERENCES Jeu(id)
);
-- JOUEUR -- JOUEUR
CREATE TABLE Joueur( CREATE TABLE Joueur(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
idPartie integer REFERENCES Partie(id), idPartie integer REFERENCES Partie(id),
pseudo varchar(255) NOT NULL UNIQUE pseudo varchar(255) NOT NULL UNIQUE
); );
-- Invite -- Invite
CREATE TABLE Invite( CREATE TABLE Invite(
idJoueur integer PRIMARY KEY REFERENCES Joueur(id), idJoueur integer PRIMARY KEY REFERENCES Joueur(id)
idSession varchar(255) NOT NULL UNIQUE
); );
-- Utilisateur -- Utilisateur
CREATE TABLE Utilisateur( CREATE TABLE Utilisateur(
idJoueur integer PRIMARY KEY REFERENCES Joueur(id), idJoueur integer PRIMARY KEY REFERENCES Joueur(id),
email varchar(255) NOT NULL UNIQUE, email varchar(255) NOT NULL UNIQUE,
password varchar(255) NOT NULL password varchar(255) NOT NULL
); );
-- Decouvrir -- Decouvrir
CREATE TABLE Decouvrir( CREATE TABLE Decouvrir(
idUtilisateur integer REFERENCES Utilisateur(idJoueur), idUtilisateur integer REFERENCES Utilisateur(idJoueur),
idScientifique integer REFERENCES Scientifique(id), idScientifique integer REFERENCES Scientifique(id),
PRIMARY KEY (idUtilisateur, idScientifique) PRIMARY KEY (idUtilisateur, idScientifique)
);
-- Jeu
CREATE TABLE Jeu(
id SERIAL PRIMARY KEY,
nom varchar(128) NOT NULL UNIQUE,
nbrParties integer NOT NULL DEFAULT 0
);
-- Partie
CREATE TABLE Partie(
id SERIAL PRIMARY KEY,
codeInvitation varchar(10) NOT NULL UNIQUE,
idJeu integer REFERENCES Jeu(id)
); );
@ -152,11 +137,11 @@ CREATE TABLE Partie(
-- Scientifiques -- Scientifiques
INSERT INTO Difficulte(libelle) VALUES ('Facile'),('Intermédiaire'),('Difficile'); INSERT INTO Difficulte(libelle) VALUES ('Facile'),('Intermédiaire'),('Difficile');
INSERT INTO Thematique(libelle) VALUES ('Nucléaire'),('Mathématiques'); INSERT INTO Thematique(libelle) VALUES ('Nucléaire'),('Mathématiques');
INSERT INTO Scientifique(nom, prenom, photo, dateNaissance, descriptif, ratioTrouvee, idThematique, idDifficulte, idSexe) INSERT INTO Scientifique(nom, prenom, photo, dateNaissance, descriptif, ratioTrouvee, idThematique, idDifficulte, sexe)
VALUES VALUES
('Marie', 'Curie', '', CURRENT_DATE, 'desc', 0, 1, 1, 'F'), ('Marie', 'Curie', '', CURRENT_DATE, 'desc', 0.50, 1, 1, 'F'),
('Albert', 'Einstein', '', CURRENT_DATE, 'desc', 0, 2, 1, 'H'), ('Albert', 'Einstein', '', CURRENT_DATE, 'desc', 0.7540, 2, 1, 'H'),
('Sophie', 'Germain', '', CURRENT_DATE, 'desc', 0, 2, 2, 'F'); ('Sophie', 'Germain', '', CURRENT_DATE, 'desc', 0.1432, 2, 2, 'F');
-- Jeu -- Jeu
INSERT INTO Jeu(nom) VALUES ('Qui-est-ce ?'),('Science Quizz'), ('Pendu'); INSERT INTO Jeu(nom) VALUES ('Qui-est-ce ?'),('Science Quizz'), ('Pendu');
@ -168,6 +153,11 @@ VALUES
('Quel mathématicien a dit : « Dieu existe, cest les mathématiques » ?'), ('Quel mathématicien a dit : « Dieu existe, cest les mathématiques » ?'),
('Quel mathématicienne utilisa comme nom d"emprunt « Antoine Auguste Le Blanc » ?'); ('Quel mathématicienne utilisa comme nom d"emprunt « Antoine Auguste Le Blanc » ?');
-- Indices
INSERT INTO Indice (libelle, idscientifique) VALUES
('Indice pour aider', 1),
('S''appelle Marie', 1);
-- Réponses -- Réponses
INSERT INTO Reponse(reponse, idQuestion, idScientifique) INSERT INTO Reponse(reponse, idQuestion, idScientifique)
VALUES VALUES
@ -176,11 +166,16 @@ VALUES
('Sophie Germain', 3, 3); ('Sophie Germain', 3, 3);
-- Utilisateurs -- Utilisateurs
INSERT INTO Joueur(id,pseudo) VALUES (1337, 'moi, le meilleur joueur du monde'); INSERT INTO Joueur(pseudo) VALUES ('moi, le meilleur joueur du monde'); --id = 1
INSERT INTO Utilisateur(idJoueur,email,password) VALUES (1337, 'joueur','$2y$10$juGnlWC9cS19popEKLZsYeir0Jl39k6hDl0dpaCix00FDcdiEbtmS'); INSERT INTO Utilisateur(idJoueur,email,password) VALUES (1, 'joueur','$2y$10$juGnlWC9cS19popEKLZsYeir0Jl39k6hDl0dpaCix00FDcdiEbtmS');
-- mdp = test -- mdp = test
INSERT INTO decouvrir(idUtilisateur,idScientifique) VALUES (1337,1); -- Découvrir
INSERT INTO decouvrir(idUtilisateur,idScientifique) VALUES (1,1);
-- Admin
INSERT INTO Admin(id,email,password) VALUES (1, 'admin','$2y$10$juGnlWC9cS19popEKLZsYeir0Jl39k6hDl0dpaCix00FDcdiEbtmS'); INSERT INTO Admin(id,email,password) VALUES (1, 'admin','$2y$10$juGnlWC9cS19popEKLZsYeir0Jl39k6hDl0dpaCix00FDcdiEbtmS');
-- mdp = test -- mdp = test
-- Partie
INSERT INTO Partie(codeInvitation, idJeu) VALUES ('abcde', 1);
Loading…
Cancel
Save