After Width: | Height: | Size: 42 KiB |
@ -0,0 +1,90 @@
|
|||||||
|
```plantuml
|
||||||
|
@startuml "BDD"
|
||||||
|
|
||||||
|
class Scientifique{
|
||||||
|
nom : String
|
||||||
|
prenom : String
|
||||||
|
photo : Raw
|
||||||
|
dateNaissance : Date
|
||||||
|
descriptif : String
|
||||||
|
ratioTrouvee : Float
|
||||||
|
}
|
||||||
|
|
||||||
|
class Thematique{
|
||||||
|
libelle : String
|
||||||
|
}
|
||||||
|
|
||||||
|
class Sexe{
|
||||||
|
libelle : String
|
||||||
|
}
|
||||||
|
|
||||||
|
class "Difficulte"{
|
||||||
|
libelle: String
|
||||||
|
}
|
||||||
|
|
||||||
|
class Indice{
|
||||||
|
indice : String
|
||||||
|
}
|
||||||
|
|
||||||
|
Scientifique "*" --> "1..*" Thematique
|
||||||
|
Scientifique "*" --> "1" Sexe
|
||||||
|
Scientifique "*" --> "1" "Difficulte"
|
||||||
|
Scientifique "*" <-- "*"Utilisateur : A découvert <
|
||||||
|
Scientifique .. Admin : Gérer <
|
||||||
|
Scientifique "1" --> "*" Indice
|
||||||
|
|
||||||
|
|
||||||
|
class Question{
|
||||||
|
question : String
|
||||||
|
}
|
||||||
|
|
||||||
|
class Reponse{
|
||||||
|
reponse : String
|
||||||
|
}
|
||||||
|
|
||||||
|
Question "1" --> "1..*" Reponse
|
||||||
|
Reponse "0..*" --> "1" Scientifique
|
||||||
|
|
||||||
|
abstract class Joueur{
|
||||||
|
pseudo : String {unique}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Utilisateur{
|
||||||
|
email : String {unique}
|
||||||
|
motDePasse : Hash
|
||||||
|
}
|
||||||
|
|
||||||
|
class Invite{
|
||||||
|
idSession : Integer
|
||||||
|
}
|
||||||
|
|
||||||
|
Joueur <|-- Utilisateur
|
||||||
|
Joueur <|-- Invite
|
||||||
|
|
||||||
|
class Admin{
|
||||||
|
email : String {unique}
|
||||||
|
motDePasse : Hash
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class Jeu{
|
||||||
|
nom : String
|
||||||
|
nbrParties : Integer
|
||||||
|
}
|
||||||
|
|
||||||
|
Jeu .. Scientifique : Accède >
|
||||||
|
|
||||||
|
class Pendu extends Jeu
|
||||||
|
|
||||||
|
Pendu "1" --> "1..*" Scientifique
|
||||||
|
|
||||||
|
class Partie{
|
||||||
|
codeInvitation : String
|
||||||
|
isFinished : Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
Partie "*" --> "1" Jeu
|
||||||
|
|
||||||
|
Partie "1" --> "1..*" Joueur
|
||||||
|
|
||||||
|
@enduml
|
||||||
|
```
|
After Width: | Height: | Size: 107 KiB |
@ -0,0 +1,130 @@
|
|||||||
|
Logiciel : plantuml
|
||||||
|
https://plantuml.com/fr/
|
||||||
|
|
||||||
|
@startuml "Diagramme de classes participantes PHP"
|
||||||
|
|
||||||
|
class FrontController <<contrôle>>{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FrontController --> ControllerAdmin
|
||||||
|
FrontController --> ControllerUtilisateur
|
||||||
|
FrontController --> ControllerInvite
|
||||||
|
|
||||||
|
class ControllerUtilisateur <<contrôle>>{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ControllerUtilisateur --> ControllerLancerJeu
|
||||||
|
|
||||||
|
class ControllerInvite <<contrôle>>{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ControllerInvite --> ControllerLancerJeu
|
||||||
|
|
||||||
|
class ControllerAdmin <<contrôle>>{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class ControllerLancerJeu <<contrôle>>{
|
||||||
|
lancerJeuAléatoirement()
|
||||||
|
lancerJeu()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class Accueil <<dialogue>>{
|
||||||
|
rejoindrePartie()
|
||||||
|
lancerUnJeu()
|
||||||
|
seConnecter()
|
||||||
|
seDeconnecter()
|
||||||
|
}
|
||||||
|
|
||||||
|
Accueil --> RejoindrePartie
|
||||||
|
Accueil --> LancerUnJeu
|
||||||
|
Accueil --> Connexion
|
||||||
|
|
||||||
|
class RejoindrePartie <<dialogue>>{
|
||||||
|
codeInvitation : String
|
||||||
|
rejoindrePartie()
|
||||||
|
}
|
||||||
|
|
||||||
|
class LancerUnJeu <<dialogue>>{
|
||||||
|
jeux : Array
|
||||||
|
choisirJeu()
|
||||||
|
choisirJeuAléatoirement()
|
||||||
|
}
|
||||||
|
|
||||||
|
class Connexion <<dialogue>>{
|
||||||
|
email : String
|
||||||
|
motDePasse : String
|
||||||
|
seConnecter()
|
||||||
|
}
|
||||||
|
|
||||||
|
Connexion --> EspacePersonnel
|
||||||
|
|
||||||
|
class EspacePersonnel <<dialogue>>{
|
||||||
|
scientifiqueTrouvés : Array
|
||||||
|
accéderFicheScientifique()
|
||||||
|
ChangerPseudo()
|
||||||
|
}
|
||||||
|
|
||||||
|
EspacePersonnel --> DetailsScientifique
|
||||||
|
EspacePersonnel --> ChangerPseudo
|
||||||
|
|
||||||
|
class DetailsScientifique <<dialogue>>{
|
||||||
|
nom : String
|
||||||
|
prenom : String
|
||||||
|
photo : String
|
||||||
|
dateNaissance : Date
|
||||||
|
descriptif : String
|
||||||
|
thematiques : Array
|
||||||
|
retourEspacePersonnel()
|
||||||
|
}
|
||||||
|
|
||||||
|
class ChangerPseudo <<dialogue>>{
|
||||||
|
pseudo : String
|
||||||
|
setPseudo()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Scientifique <<entité>>{
|
||||||
|
nom : String
|
||||||
|
prenom : String
|
||||||
|
photo : Raw
|
||||||
|
dateNaissance : Date
|
||||||
|
descriptif : String
|
||||||
|
ratioTrouvee : Float
|
||||||
|
}
|
||||||
|
|
||||||
|
class Thematique <<entité>>{
|
||||||
|
libelle : String
|
||||||
|
}
|
||||||
|
|
||||||
|
class "Difficulté" <<entité>>{
|
||||||
|
libelle: String
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract Compte <<entité>>{
|
||||||
|
email : String
|
||||||
|
motDePasse : Hash
|
||||||
|
}
|
||||||
|
|
||||||
|
class Utilisateur <<entité>>{
|
||||||
|
pseudo : String
|
||||||
|
}
|
||||||
|
|
||||||
|
class Admin <<entité>>{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class Jeu <<entité>>{
|
||||||
|
nom : String
|
||||||
|
nbrParties : Integer
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@enduml
|
@ -0,0 +1,90 @@
|
|||||||
|
Logiciel : plantuml
|
||||||
|
https://plantuml.com/fr/
|
||||||
|
|
||||||
|
@startuml "Diagramme de classes participantes lancer une partie"
|
||||||
|
class Invité <<acteur>>{}
|
||||||
|
|
||||||
|
Invité --> Accueil : 1
|
||||||
|
Accueil --> FrontController : 2
|
||||||
|
LancerUnJeu --> FrontController : 9
|
||||||
|
|
||||||
|
class FrontController <<contrôle>>{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FrontController --> ControllerInvite : 3 , 1O, 16, 24
|
||||||
|
|
||||||
|
|
||||||
|
class ControllerInvite <<contrôle>>{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ControllerInvite --> ControllerLancerJeu : 4, 11, 17, 25
|
||||||
|
|
||||||
|
|
||||||
|
class ControllerLancerJeu <<contrôle>>{
|
||||||
|
lancerJeuAléatoirement()
|
||||||
|
lancerJeu()
|
||||||
|
}
|
||||||
|
ControllerLancerJeu --> LancerUnJeu : 6
|
||||||
|
ControllerLancerJeu --> Jeu : 5
|
||||||
|
ControllerLancerJeu --> SaisirPseudo : 12
|
||||||
|
ControllerLancerJeu --> Difficulté : 18
|
||||||
|
ControllerLancerJeu --> Thematique : 19
|
||||||
|
ControllerLancerJeu --> ConfigurerUnjeu : 20
|
||||||
|
ControllerLancerJeu --> VueDuJeu : 26
|
||||||
|
|
||||||
|
class Accueil <<dialogue>>{
|
||||||
|
rejoindrePartie()
|
||||||
|
lancerUnJeu()
|
||||||
|
seConnecter()
|
||||||
|
seDeconnecter()
|
||||||
|
}
|
||||||
|
|
||||||
|
class VueDuJeu <<dialogue>>{
|
||||||
|
|
||||||
|
}
|
||||||
|
VueDuJeu --> Invité : 27
|
||||||
|
|
||||||
|
class SaisirPseudo <<dialogue>>{
|
||||||
|
pseudo : String
|
||||||
|
valider()
|
||||||
|
}
|
||||||
|
SaisirPseudo --> Invité : 13
|
||||||
|
SaisirPseudo <-- Invité : 14
|
||||||
|
SaisirPseudo --> FrontController : 15
|
||||||
|
|
||||||
|
class LancerUnJeu <<dialogue>>{
|
||||||
|
jeux : Array
|
||||||
|
choisirJeu()
|
||||||
|
choisirJeuAléatoirement()
|
||||||
|
}
|
||||||
|
|
||||||
|
class ConfigurerUnjeu <<dialogue>>{
|
||||||
|
difficulté : Integer
|
||||||
|
thématique : Integer
|
||||||
|
valider()
|
||||||
|
}
|
||||||
|
Invité <-- ConfigurerUnjeu : 21
|
||||||
|
Invité --> ConfigurerUnjeu : 22
|
||||||
|
ConfigurerUnjeu --> FrontController : 23
|
||||||
|
|
||||||
|
LancerUnJeu --> Invité : 7
|
||||||
|
LancerUnJeu <-- Invité : 8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Thematique <<entité>>{
|
||||||
|
libelle : String
|
||||||
|
}
|
||||||
|
|
||||||
|
class "Difficulté" <<entité>>{
|
||||||
|
libelle: String
|
||||||
|
}
|
||||||
|
|
||||||
|
class Jeu <<entité>>{
|
||||||
|
nom : String
|
||||||
|
nbrParties : Integer
|
||||||
|
}
|
||||||
|
|
||||||
|
@enduml
|
After Width: | Height: | Size: 189 KiB |
@ -0,0 +1,125 @@
|
|||||||
|
<mxfile host="app.diagrams.net" modified="2023-10-26T14:31:05.858Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0" etag="DA3skaueM-lHySTBLYxc" version="22.0.8" type="device">
|
||||||
|
<diagram name="Page-1" id="jla4qwjFgwFRS1lIauP8">
|
||||||
|
<mxGraphModel dx="1434" dy="764" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-5" value="" style="whiteSpace=wrap;html=1;aspect=fixed;movable=0;resizable=0;rotatable=0;deletable=0;editable=0;locked=1;connectable=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="150" y="20" width="630" height="630" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-4" target="4sC6NxI0jN4h-IAwyfg9-7">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-4" target="4sC6NxI0jN4h-IAwyfg9-39">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-4" value="enseignant" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="50" y="38" width="30" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-6" value="<div>kahoot</div>" style="text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="150" y="20" width="80" height="26" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-7" value="Creer partie" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="160" y="46" width="130" height="44" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-10" value="<div>Choisir niveau de difficulté</div><div>en fonction de la popularité</div>" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="470" y="28" width="180" height="70" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-11" value="<div>Choisir le theme des scientifiques</div><div>(Math, SVT, Informatique, tous...)</div>" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="480" y="110" width="220" height="70" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-19" target="4sC6NxI0jN4h-IAwyfg9-23">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-19" target="4sC6NxI0jN4h-IAwyfg9-46">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-19" value="<div>joueur</div>" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="50" y="325" width="30" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-23" value="<div>Rejoindre partie</div><div>non lancée<br></div>" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="155" y="330" width="130" height="50" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-25" value="<div>Répondre a une question</div>" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="440" y="330" width="140" height="70" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-26" value="<div>&lt;&lt;include&gt;&gt;</div>" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-40" target="4sC6NxI0jN4h-IAwyfg9-25">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="350" y="355" as="sourcePoint" />
|
||||||
|
<mxPoint x="440" y="345" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-27" value="<div>Répondre juste a une question</div>" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="390" y="435" width="130" height="50" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-28" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.585;exitY=-0.02;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.343;entryY=0.957;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-27" target="4sC6NxI0jN4h-IAwyfg9-25">
|
||||||
|
<mxGeometry width="160" relative="1" as="geometry">
|
||||||
|
<mxPoint x="400" y="345" as="sourcePoint" />
|
||||||
|
<mxPoint x="560" y="345" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-29" value="<div>Répondre faux a une question</div>" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="540" y="425" width="130" height="50" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-30" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;entryX=0.793;entryY=0.9;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-29" target="4sC6NxI0jN4h-IAwyfg9-25">
|
||||||
|
<mxGeometry width="160" relative="1" as="geometry">
|
||||||
|
<mxPoint x="476" y="444" as="sourcePoint" />
|
||||||
|
<mxPoint x="498" y="397" as="targetPoint" />
|
||||||
|
<Array as="points" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-31" value="<div>Ajouter scientifique dans historique</div>" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="395" y="525" width="120" height="50" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-33" value="<div>&lt;&lt;include&gt;&gt;</div>" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-27" target="4sC6NxI0jN4h-IAwyfg9-31">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="520" y="345" as="sourcePoint" />
|
||||||
|
<mxPoint x="440" y="345" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-34" value="<div>Affiche les questions<br></div>" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="375" y="200" width="140" height="50" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-36" value="<div>&lt;&lt;include&gt;&gt;</div>" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=0.454;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-7" target="4sC6NxI0jN4h-IAwyfg9-39">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="460" y="280" as="sourcePoint" />
|
||||||
|
<mxPoint x="380" y="280" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-37" value="<div>&lt;&lt;include&gt;&gt;</div>" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.923;exitY=0.727;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-7" target="4sC6NxI0jN4h-IAwyfg9-11">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="460" y="280" as="sourcePoint" />
|
||||||
|
<mxPoint x="380" y="280" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-38" value="<div>&lt;&lt;include&gt;&gt;</div>" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-7" target="4sC6NxI0jN4h-IAwyfg9-10">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="460" y="280" as="sourcePoint" />
|
||||||
|
<mxPoint x="380" y="280" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-39" value="<div>Lancer partie</div>" style="ellipse;whiteSpace=wrap;html=1;direction=west;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="160" y="150" width="130" height="50" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-40" value="Jouer dans partie lancée" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="170" y="425" width="130" height="50" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-42" value="&lt;&lt;include&gt;&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-39" target="4sC6NxI0jN4h-IAwyfg9-34">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="460" y="280" as="sourcePoint" />
|
||||||
|
<mxPoint x="380" y="280" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-44" value="&lt;&lt;include&gt;&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4sC6NxI0jN4h-IAwyfg9-23" target="4sC6NxI0jN4h-IAwyfg9-40">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="460" y="280" as="sourcePoint" />
|
||||||
|
<mxPoint x="230" y="390" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="4sC6NxI0jN4h-IAwyfg9-46" value="voir résultats finaux" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="150" y="230" width="140" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
</mxfile>
|
After Width: | Height: | Size: 29 KiB |
@ -0,0 +1,26 @@
|
|||||||
|
PHP SAE
|
||||||
|
|
||||||
|
|
||||||
|
Actions disponibles pour admin :
|
||||||
|
- connexion
|
||||||
|
- déconnexion
|
||||||
|
- gestion scientifique
|
||||||
|
- accéder stats site
|
||||||
|
|
||||||
|
Actions users :
|
||||||
|
- créer partie
|
||||||
|
- rejoindre partie
|
||||||
|
- historique scientifiques trouvés
|
||||||
|
|
||||||
|
|
||||||
|
Vues nécessaires :
|
||||||
|
- Accueil
|
||||||
|
- création partie
|
||||||
|
- rejoindre partie
|
||||||
|
- la partie (dépend des jeux)
|
||||||
|
- historique des scientifiques trouvés
|
||||||
|
|
||||||
|
Pour admin
|
||||||
|
- connexion (pop-up si possible)
|
||||||
|
- Gestion des scientifiques (genre une liste et on peut les supprimer)
|
||||||
|
- ajouter scientifique
|
After Width: | Height: | Size: 52 KiB |
@ -0,0 +1,105 @@
|
|||||||
|
```plantuml
|
||||||
|
@startuml
|
||||||
|
|
||||||
|
entity "Jeu" as jeu {
|
||||||
|
<u>id : int
|
||||||
|
nom : string
|
||||||
|
nbrParties : int
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Scientifique" as scientifique {
|
||||||
|
<u>id : int
|
||||||
|
nom : string
|
||||||
|
prenom : string
|
||||||
|
photo : string
|
||||||
|
dateNaissance : date
|
||||||
|
descriptif : string
|
||||||
|
ratioTrouvee : float
|
||||||
|
#idThematique : int
|
||||||
|
#idDifficulte : int
|
||||||
|
#idSexe : int
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Thematique" as thematique {
|
||||||
|
<u>id : int
|
||||||
|
libelle : string
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Difficulte" as difficulte {
|
||||||
|
<u>id : int
|
||||||
|
libelle : string
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Sexe" as sexe {
|
||||||
|
<u>id : int
|
||||||
|
libelle : string
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Joueur" as joueur {
|
||||||
|
<u>id : int
|
||||||
|
pseudo : string
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Utilisateur" as utilisateur {
|
||||||
|
<u>#idJoueur : int
|
||||||
|
email : string
|
||||||
|
motDePasse : string
|
||||||
|
pseudo : string
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Invite" as invite {
|
||||||
|
<u>#idJoueur : int
|
||||||
|
<u>idSession : int
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Partie" as partie {
|
||||||
|
<u>id : int
|
||||||
|
codeInvitation : string
|
||||||
|
#idJoueur : int
|
||||||
|
#idJeu : int
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Admin" as admin {
|
||||||
|
<u>id : int
|
||||||
|
email : string
|
||||||
|
motDePasse : string
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Decouvrir" as decouvrir {
|
||||||
|
<u>#idUtilisateur : int
|
||||||
|
<u>#idScientifique : int
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Indice" as indice {
|
||||||
|
<u>id : int
|
||||||
|
indice : string
|
||||||
|
#idScientifique : int
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Reponse" as reponse {
|
||||||
|
<u>id : int
|
||||||
|
reponse : string
|
||||||
|
#idScientifique : int
|
||||||
|
#idQuestion : int
|
||||||
|
}
|
||||||
|
|
||||||
|
entity "Question" as question {
|
||||||
|
<u>id : int
|
||||||
|
question : string
|
||||||
|
}
|
||||||
|
|
||||||
|
partie --> jeu
|
||||||
|
partie --> joueur
|
||||||
|
invite --> joueur
|
||||||
|
utilisateur --> joueur
|
||||||
|
utilisateur --> scientifique
|
||||||
|
scientifique --> thematique
|
||||||
|
scientifique --> sexe
|
||||||
|
scientifique --> difficulte
|
||||||
|
scientifique --> indice
|
||||||
|
question --> reponse
|
||||||
|
reponse --> scientifique
|
||||||
|
decouvrir --> scientifique
|
||||||
|
decouvrir --> utilisateur
|
||||||
|
jeu --> scientifique
|
||||||
|
@enduml
|
@ -0,0 +1,53 @@
|
|||||||
|
**Jeu(<ins>id</ins>, nom, nbrParties)**
|
||||||
|
- *id* : clef primaire de la table Jeu
|
||||||
|
|
||||||
|
**Scientifique(<ins>id</ins>, nom, prenom, photo, dateNaissance, descriptif, ratioTrouvee, #idThematique, #idDifficulte, #idSexe)**
|
||||||
|
- *id* : clef primaire de la table Scientifique
|
||||||
|
- *#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é
|
||||||
|
- *#idSexe* clef étrangère en référence à *id* de la table Sexe
|
||||||
|
|
||||||
|
**Thematique(<ins>id</ins>, libelle)**
|
||||||
|
- *id* : clef primaire de la table Thematique
|
||||||
|
|
||||||
|
**Difficulté(<ins>id</ins>, libelle)**
|
||||||
|
- *id* : clef primaire de la table Difficulté
|
||||||
|
|
||||||
|
**Sexe(<ins>id</ins>, libelle)**
|
||||||
|
- *id* : clef primaire de la table Sexe
|
||||||
|
|
||||||
|
**Joueur(<ins>id</ins>, pseudo)**
|
||||||
|
- *id* : clef primaire de la table Joueur
|
||||||
|
|
||||||
|
**Utilisateur(<ins>#idJoueur</ins>, email, motDePasse, pseudo)**
|
||||||
|
- *idJoueur* : clef primaire de la table Joueur
|
||||||
|
- *#idJoueur* : clef étrangère en référence à *id* de la table Joueur
|
||||||
|
|
||||||
|
**Invite(<ins>#idJoueur</ins>, idSession)**
|
||||||
|
- *idJoueur* : clef primaire de la table Joueur
|
||||||
|
- *#idJoueur* : clef étrangère en référence à *id* de la table Joueur
|
||||||
|
|
||||||
|
**Partie(<ins>id</ins>, codeInvitation, #idJoueur, #idJeu)**
|
||||||
|
- *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
|
||||||
|
|
||||||
|
**Admin(<ins>#id</ins>, email, motDePasse)**
|
||||||
|
- *id* : clef primaire de la table Admin
|
||||||
|
|
||||||
|
**Decouvrir(<ins>#idUtilisateur</ins>, <ins>#idScientifique</ins>)**
|
||||||
|
- *idUtilisateur*, *idScientifique* : clef primaire de la table découvrir
|
||||||
|
- *#idUtilisateur* : clef étangère en référence à *idJoueur* de la table Utilisateur
|
||||||
|
- *#idScientifique* : clef étrangère en référence à *id* de la table Scientifique
|
||||||
|
|
||||||
|
**Indice(<ins>id</ins>, indice, #idScientifique)**
|
||||||
|
- *id* : clef primaire de la table Indice
|
||||||
|
- *#idScientifique* : clef étrangère en référence à *id* de la table Scientifique
|
||||||
|
|
||||||
|
**Reponse(<ins>id</ins>, reponse, #idScientifique, #idQuestion)**
|
||||||
|
- *id* : clef primaire de la table Reponse
|
||||||
|
- *#idScientifique* : clef étrangère en référence à *id* de la table Scientifique
|
||||||
|
- *#idQuestion* : clef étrangère en référence à *id* de la table Question
|
||||||
|
|
||||||
|
**Question(<ins>id</ins>, question)**
|
||||||
|
- *id* : clef primaire de la table Question
|
@ -0,0 +1,59 @@
|
|||||||
|
```plantuml
|
||||||
|
|
||||||
|
@startuml
|
||||||
|
:Utilisateur: as u
|
||||||
|
:Utilisateur avec compte: as uc
|
||||||
|
:Administrateur: as admin
|
||||||
|
|
||||||
|
uc <|-- u
|
||||||
|
package Mini-jeux{
|
||||||
|
|
||||||
|
u --> (Rejoindre une partie avec un code d'invitation)
|
||||||
|
u --> (Accéder à la liste des jeux)
|
||||||
|
u --> (Se créer un compte)
|
||||||
|
u --> (Choisir un jeu)
|
||||||
|
(Choisir un jeu) <|-- (chosir de façon aléatoire)
|
||||||
|
(Choisir un jeu) <|-- (choisir dans la liste)
|
||||||
|
|
||||||
|
|
||||||
|
(Choisir un jeu) <.. (Créer une partie) : <<include>>
|
||||||
|
(Créer une partie) <.. (générer un code d'invitation) : <<include>>
|
||||||
|
(Créer une partie) ..> (configurer la thématique des scientifiques) : <<extends>>
|
||||||
|
(Créer une partie) ..> (configure la difficulté des scientifiques) : <<extends>>
|
||||||
|
(Créer une partie) ..> (Lancer une partie) : <<extends>>
|
||||||
|
(Créer une partie) ..> (Saisir pseudo) : <<extends>>
|
||||||
|
|
||||||
|
note "Pour l'utilisateur connecté : utilisera le pseudo associé à son compte" as notePseudo
|
||||||
|
note "Pour l'utilisateur connecté : on garde les scientifiques découverts pendant la partie dans son compte" as noteUC
|
||||||
|
noteUC .. (Lancer une partie)
|
||||||
|
notePseudo .. (Saisir pseudo)
|
||||||
|
|
||||||
|
uc --> (Se déconnecter)
|
||||||
|
(Saisir son pseudo) <.. (Se connecter) : <<include>>
|
||||||
|
uc --> (Saisir son pseudo)
|
||||||
|
(Supprimer son compte) <.. (Se connecter) : <<include>>
|
||||||
|
uc --> (Supprimer son compte)
|
||||||
|
(Accéder à la liste des scientifiques découverts) <.. (Se connecter) : <<include>>
|
||||||
|
uc --> (Accéder à la liste des scientifiques découverts)
|
||||||
|
(Accéder à la liste des scientifiques découverts) <.. (Afficher la fiche détaillé du scientifique) : <<extends>>
|
||||||
|
}
|
||||||
|
|
||||||
|
package "Mini-jeux Administration"{
|
||||||
|
admin --> (Se déconnecter du panel)
|
||||||
|
admin --> (Lister les scientifiques)
|
||||||
|
(Lister les scientifiques) <.. (Se connecter en tant qu'admin) : <<include>>
|
||||||
|
(Lister les scientifiques) <.. (Ajouter Scientifique): <<extends>>
|
||||||
|
(Lister les scientifiques) <.. (Modifier Scientifique): <<extends>>
|
||||||
|
(Lister les scientifiques) <.. (Supprimer Scientifique): <<extends>>
|
||||||
|
admin --> (Lister les scientifiques qui posent le plus de problèmes aux joueurs)
|
||||||
|
(Lister les scientifiques qui posent le plus de problèmes aux joueurs) <.. (Se connecter en tant qu'admin) : <<include>>
|
||||||
|
|
||||||
|
admin --> (Lister les statistiques d'utilisation des jeux)
|
||||||
|
(Lister les statistiques d'utilisation des jeux) <.. (Se connecter en tant qu'admin) : <<include>>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@enduml
|
||||||
|
|
||||||
|
```
|
After Width: | Height: | Size: 159 KiB |
After Width: | Height: | Size: 31 KiB |