diff --git a/Back_end/composer.json b/Back_end/composer.json
index 42009480732215861af34e18b52e5143f2cc0e1c..b8b3f90db1bd7b2bb4884c621d84160808a878a9 100644
--- a/Back_end/composer.json
+++ b/Back_end/composer.json
@@ -10,7 +10,7 @@
         "doctrine/doctrine-bundle": "^2.11",
         "doctrine/doctrine-migrations-bundle": "^3.3",
         "doctrine/orm": "^2.17",
-        "nelmio/api-doc-bundle": "*",
+        "nelmio/api-doc-bundle": "^4.18",
         "phpdocumentor/reflection-docblock": "^5.3",
         "phpstan/phpdoc-parser": "^1.25",
         "symfony/asset": "7.0.*",
diff --git a/Back_end/src/Entity/Adherent.php b/Back_end/src/Entity/Adherent.php
index 8cf7bc627f811cf7e3cf42598ffcb7dcd025c036..c48879d00b640d92a4f9823bf4b8aac26afd0e71 100644
--- a/Back_end/src/Entity/Adherent.php
+++ b/Back_end/src/Entity/Adherent.php
@@ -3,6 +3,8 @@
 namespace App\Entity;
 
 use App\Repository\AdherentRepository;
+use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\DBAL\Types\Types;
 use Doctrine\ORM\Mapping as ORM;
 
@@ -65,6 +67,14 @@ class Adherent
     #[ORM\Column(nullable: true)]
     private ?bool $adhesionAJour = null;
 
+    #[ORM\ManyToMany(targetEntity: Groupe::class, mappedBy: 'appartient')]
+    private Collection $groupes;
+
+    public function __construct()
+    {
+        $this->groupes = new ArrayCollection();
+    }
+
     public function getId(): ?int
     {
         return $this->id;
@@ -280,4 +290,31 @@ class Adherent
 
         return $this;
     }
+
+    /**
+     * @return Collection<int, Groupe>
+     */
+    public function getGroupes(): Collection
+    {
+        return $this->groupes;
+    }
+
+    public function addGroupe(Groupe $groupe): static
+    {
+        if (!$this->groupes->contains($groupe)) {
+            $this->groupes->add($groupe);
+            $groupe->addAppartient($this);
+        }
+
+        return $this;
+    }
+
+    public function removeGroupe(Groupe $groupe): static
+    {
+        if ($this->groupes->removeElement($groupe)) {
+            $groupe->removeAppartient($this);
+        }
+
+        return $this;
+    }
 }
diff --git a/Back_end/src/Entity/Adhesion.php b/Back_end/src/Entity/Adhesion.php
new file mode 100644
index 0000000000000000000000000000000000000000..bb114e8cf64b4f0dacafdf522369832eb3c34c2f
--- /dev/null
+++ b/Back_end/src/Entity/Adhesion.php
@@ -0,0 +1,129 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\AdhesionRepository;
+use Doctrine\DBAL\Types\Types;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: AdhesionRepository::class)]
+class Adhesion
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $type = null;
+
+    #[ORM\Column]
+    private ?float $prix = null;
+
+    #[ORM\Column(type: Types::DATE_MUTABLE)]
+    private ?\DateTimeInterface $dateCharniere = null;
+
+    #[ORM\Column]
+    private ?bool $active = null;
+
+    #[ORM\ManyToOne(inversedBy: 'adhesions')]
+    #[ORM\JoinColumn(nullable: false)]
+    private ?Periode $periode_id = null;
+
+    #[ORM\ManyToOne]
+    #[ORM\JoinColumn(nullable: false)]
+    private ?Structure $structure_id = null;
+
+    #[ORM\ManyToOne]
+    #[ORM\JoinColumn(nullable: false)]
+    private ?Adherent $adherent_id = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getType(): ?string
+    {
+        return $this->type;
+    }
+
+    public function setType(string $type): static
+    {
+        $this->type = $type;
+
+        return $this;
+    }
+
+    public function getPrix(): ?float
+    {
+        return $this->prix;
+    }
+
+    public function setPrix(float $prix): static
+    {
+        $this->prix = $prix;
+
+        return $this;
+    }
+
+    public function getDateCharniere(): ?\DateTimeInterface
+    {
+        return $this->dateCharniere;
+    }
+
+    public function setDateCharniere(\DateTimeInterface $dateCharniere): static
+    {
+        $this->dateCharniere = $dateCharniere;
+
+        return $this;
+    }
+
+    public function isActive(): ?bool
+    {
+        return $this->active;
+    }
+
+    public function setActive(bool $active): static
+    {
+        $this->active = $active;
+
+        return $this;
+    }
+
+    public function getPeriodeId(): ?Periode
+    {
+        return $this->periode_id;
+    }
+
+    public function setPeriodeId(?Periode $periode_id): static
+    {
+        $this->periode_id = $periode_id;
+
+        return $this;
+    }
+
+    public function getStructureId(): ?Structure
+    {
+        return $this->structure_id;
+    }
+
+    public function setStructureId(?Structure $structure_id): static
+    {
+        $this->structure_id = $structure_id;
+
+        return $this;
+    }
+
+    public function getAdherentId(): ?Adherent
+    {
+        return $this->adherent_id;
+    }
+
+    public function setAdherentId(?Adherent $adherent_id): static
+    {
+        $this->adherent_id = $adherent_id;
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Entity/Groupe.php b/Back_end/src/Entity/Groupe.php
new file mode 100644
index 0000000000000000000000000000000000000000..9e79aaa15c50c0ffddfef6e4c327fb0c034f48e6
--- /dev/null
+++ b/Back_end/src/Entity/Groupe.php
@@ -0,0 +1,114 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\GroupeRepository;
+use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\Common\Collections\Collection;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: GroupeRepository::class)]
+class Groupe
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(length: 100)]
+    private ?string $nom = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $droit1 = null;
+
+    #[ORM\Column(length: 255, nullable: true)]
+    private ?string $droit2 = null;
+
+    #[ORM\Column(length: 255, nullable: true)]
+    private ?string $droit3 = null;
+
+    #[ORM\ManyToMany(targetEntity: Adherent::class, inversedBy: 'groupes')]
+    private Collection $appartient;
+
+    public function __construct()
+    {
+        $this->appartient = new ArrayCollection();
+    }
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getNom(): ?string
+    {
+        return $this->nom;
+    }
+
+    public function setNom(string $nom): static
+    {
+        $this->nom = $nom;
+
+        return $this;
+    }
+
+    public function getDroit1(): ?string
+    {
+        return $this->droit1;
+    }
+
+    public function setDroit1(string $droit1): static
+    {
+        $this->droit1 = $droit1;
+
+        return $this;
+    }
+
+    public function getDroit2(): ?string
+    {
+        return $this->droit2;
+    }
+
+    public function setDroit2(?string $droit2): static
+    {
+        $this->droit2 = $droit2;
+
+        return $this;
+    }
+
+    public function getDroit3(): ?string
+    {
+        return $this->droit3;
+    }
+
+    public function setDroit3(?string $droit3): static
+    {
+        $this->droit3 = $droit3;
+
+        return $this;
+    }
+
+    /**
+     * @return Collection<int, Adherent>
+     */
+    public function getAppartient(): Collection
+    {
+        return $this->appartient;
+    }
+
+    public function addAppartient(Adherent $appartient): static
+    {
+        if (!$this->appartient->contains($appartient)) {
+            $this->appartient->add($appartient);
+        }
+
+        return $this;
+    }
+
+    public function removeAppartient(Adherent $appartient): static
+    {
+        $this->appartient->removeElement($appartient);
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Entity/JourCalendrier.php b/Back_end/src/Entity/JourCalendrier.php
new file mode 100644
index 0000000000000000000000000000000000000000..a4af60beaa5d574d20eda4bb3431e26667b361dd
--- /dev/null
+++ b/Back_end/src/Entity/JourCalendrier.php
@@ -0,0 +1,66 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\JourCalendrierRepository;
+use Doctrine\DBAL\Types\Types;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: JourCalendrierRepository::class)]
+class JourCalendrier
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(type: Types::DATE_MUTABLE)]
+    private ?\DateTimeInterface $date = null;
+
+    #[ORM\Column(nullable: true)]
+    private ?bool $livrable = null;
+
+    #[ORM\ManyToOne(inversedBy: 'jourCalendriers')]
+    private ?Structure $structure_id = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getDate(): ?\DateTimeInterface
+    {
+        return $this->date;
+    }
+
+    public function setDate(\DateTimeInterface $date): static
+    {
+        $this->date = $date;
+
+        return $this;
+    }
+
+    public function isLivrable(): ?bool
+    {
+        return $this->livrable;
+    }
+
+    public function setLivrable(?bool $livrable): static
+    {
+        $this->livrable = $livrable;
+
+        return $this;
+    }
+
+    public function getStructureId(): ?Structure
+    {
+        return $this->structure_id;
+    }
+
+    public function setStructureId(?Structure $structure_id): static
+    {
+        $this->structure_id = $structure_id;
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Entity/Periode.php b/Back_end/src/Entity/Periode.php
new file mode 100644
index 0000000000000000000000000000000000000000..d2a0b98a5cddd5f43487c11ad2a6283f6970338a
--- /dev/null
+++ b/Back_end/src/Entity/Periode.php
@@ -0,0 +1,91 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\PeriodeRepository;
+use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\Common\Collections\Collection;
+use Doctrine\DBAL\Types\Types;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: PeriodeRepository::class)]
+class Periode
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(type: Types::DATE_MUTABLE)]
+    private ?\DateTimeInterface $debut = null;
+
+    #[ORM\Column(type: Types::DATE_MUTABLE)]
+    private ?\DateTimeInterface $fin = null;
+
+    #[ORM\OneToMany(mappedBy: 'periode_id', targetEntity: Adhesion::class)]
+    private Collection $adhesions;
+
+    public function __construct()
+    {
+        $this->adhesions = new ArrayCollection();
+    }
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getDebut(): ?\DateTimeInterface
+    {
+        return $this->debut;
+    }
+
+    public function setDebut(\DateTimeInterface $debut): static
+    {
+        $this->debut = $debut;
+
+        return $this;
+    }
+
+    public function getFin(): ?\DateTimeInterface
+    {
+        return $this->fin;
+    }
+
+    public function setFin(\DateTimeInterface $fin): static
+    {
+        $this->fin = $fin;
+
+        return $this;
+    }
+
+    /**
+     * @return Collection<int, Adhesion>
+     */
+    public function getAdhesions(): Collection
+    {
+        return $this->adhesions;
+    }
+
+    public function addAdhesion(Adhesion $adhesion): static
+    {
+        if (!$this->adhesions->contains($adhesion)) {
+            $this->adhesions->add($adhesion);
+            $adhesion->setPeriodeId($this);
+        }
+
+        return $this;
+    }
+
+    public function removeAdhesion(Adhesion $adhesion): static
+    {
+        if ($this->adhesions->removeElement($adhesion)) {
+            // set the owning side to null (unless already changed)
+            if ($adhesion->getPeriodeId() === $this) {
+                $adhesion->setPeriodeId(null);
+            }
+        }
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Entity/Structure.php b/Back_end/src/Entity/Structure.php
new file mode 100644
index 0000000000000000000000000000000000000000..cc763d3b4cbf1a0bcbe89d0eefe8ecfab001555e
--- /dev/null
+++ b/Back_end/src/Entity/Structure.php
@@ -0,0 +1,210 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\StructureRepository;
+use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\Common\Collections\Collection;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: StructureRepository::class)]
+class Structure
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column]
+    private ?int $idStructure = null;
+
+    #[ORM\Column(length: 45)]
+    private ?string $nom = null;
+
+    #[ORM\Column(length: 45)]
+    private ?string $ville = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $raisonSoc = null;
+
+    #[ORM\Column(length: 255, nullable: true)]
+    private ?string $siege = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $adresse = null;
+
+    #[ORM\Column(length: 20)]
+    private ?string $telephone = null;
+
+    #[ORM\Column(length: 45)]
+    private ?string $mail = null;
+
+    #[ORM\Column(length: 100)]
+    private ?string $nomContact = null;
+
+    #[ORM\Column(length: 255, nullable: true)]
+    private ?string $siteWeb = null;
+
+    #[ORM\OneToMany(mappedBy: 'structure_id', targetEntity: JourCalendrier::class)]
+    private Collection $jourCalendriers;
+
+    public function __construct()
+    {
+        $this->jourCalendriers = new ArrayCollection();
+    }
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getIdStructure(): ?int
+    {
+        return $this->idStructure;
+    }
+
+    public function setIdStructure(int $idStructure): static
+    {
+        $this->idStructure = $idStructure;
+
+        return $this;
+    }
+
+    public function getNom(): ?string
+    {
+        return $this->nom;
+    }
+
+    public function setNom(string $nom): static
+    {
+        $this->nom = $nom;
+
+        return $this;
+    }
+
+    public function getVille(): ?string
+    {
+        return $this->ville;
+    }
+
+    public function setVille(string $ville): static
+    {
+        $this->ville = $ville;
+
+        return $this;
+    }
+
+    public function getRaisonSoc(): ?string
+    {
+        return $this->raisonSoc;
+    }
+
+    public function setRaisonSoc(string $raisonSoc): static
+    {
+        $this->raisonSoc = $raisonSoc;
+
+        return $this;
+    }
+
+    public function getSiege(): ?string
+    {
+        return $this->siege;
+    }
+
+    public function setSiege(?string $siege): static
+    {
+        $this->siege = $siege;
+
+        return $this;
+    }
+
+    public function getAdresse(): ?string
+    {
+        return $this->adresse;
+    }
+
+    public function setAdresse(string $adresse): static
+    {
+        $this->adresse = $adresse;
+
+        return $this;
+    }
+
+    public function getTelephone(): ?string
+    {
+        return $this->telephone;
+    }
+
+    public function setTelephone(string $telephone): static
+    {
+        $this->telephone = $telephone;
+
+        return $this;
+    }
+
+    public function getMail(): ?string
+    {
+        return $this->mail;
+    }
+
+    public function setMail(string $mail): static
+    {
+        $this->mail = $mail;
+
+        return $this;
+    }
+
+    public function getNomContact(): ?string
+    {
+        return $this->nomContact;
+    }
+
+    public function setNomContact(string $nomContact): static
+    {
+        $this->nomContact = $nomContact;
+
+        return $this;
+    }
+
+    public function getSiteWeb(): ?string
+    {
+        return $this->siteWeb;
+    }
+
+    public function setSiteWeb(?string $siteWeb): static
+    {
+        $this->siteWeb = $siteWeb;
+
+        return $this;
+    }
+
+    /**
+     * @return Collection<int, JourCalendrier>
+     */
+    public function getJourCalendriers(): Collection
+    {
+        return $this->jourCalendriers;
+    }
+
+    public function addJourCalendrier(JourCalendrier $jourCalendrier): static
+    {
+        if (!$this->jourCalendriers->contains($jourCalendrier)) {
+            $this->jourCalendriers->add($jourCalendrier);
+            $jourCalendrier->setStructureId($this);
+        }
+
+        return $this;
+    }
+
+    public function removeJourCalendrier(JourCalendrier $jourCalendrier): static
+    {
+        if ($this->jourCalendriers->removeElement($jourCalendrier)) {
+            // set the owning side to null (unless already changed)
+            if ($jourCalendrier->getStructureId() === $this) {
+                $jourCalendrier->setStructureId(null);
+            }
+        }
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Repository/AdhesionRepository.php b/Back_end/src/Repository/AdhesionRepository.php
new file mode 100644
index 0000000000000000000000000000000000000000..3e500bbef603b1f8bd4e6fae67221f828ca9dab6
--- /dev/null
+++ b/Back_end/src/Repository/AdhesionRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\Adhesion;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<Adhesion>
+ *
+ * @method Adhesion|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Adhesion|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Adhesion[]    findAll()
+ * @method Adhesion[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class AdhesionRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, Adhesion::class);
+    }
+
+//    /**
+//     * @return Adhesion[] Returns an array of Adhesion objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('a')
+//            ->andWhere('a.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('a.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?Adhesion
+//    {
+//        return $this->createQueryBuilder('a')
+//            ->andWhere('a.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/GroupeRepository.php b/Back_end/src/Repository/GroupeRepository.php
new file mode 100644
index 0000000000000000000000000000000000000000..3dd11eca447a856b895ffc194435f422800c8bc1
--- /dev/null
+++ b/Back_end/src/Repository/GroupeRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\Groupe;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<Groupe>
+ *
+ * @method Groupe|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Groupe|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Groupe[]    findAll()
+ * @method Groupe[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class GroupeRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, Groupe::class);
+    }
+
+//    /**
+//     * @return Groupe[] Returns an array of Groupe objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('g')
+//            ->andWhere('g.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('g.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?Groupe
+//    {
+//        return $this->createQueryBuilder('g')
+//            ->andWhere('g.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/JourCalendrierRepository.php b/Back_end/src/Repository/JourCalendrierRepository.php
new file mode 100644
index 0000000000000000000000000000000000000000..312e655976c86303897f6dbd7b911d6cdc83dccc
--- /dev/null
+++ b/Back_end/src/Repository/JourCalendrierRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\JourCalendrier;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<JourCalendrier>
+ *
+ * @method JourCalendrier|null find($id, $lockMode = null, $lockVersion = null)
+ * @method JourCalendrier|null findOneBy(array $criteria, array $orderBy = null)
+ * @method JourCalendrier[]    findAll()
+ * @method JourCalendrier[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class JourCalendrierRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, JourCalendrier::class);
+    }
+
+//    /**
+//     * @return JourCalendrier[] Returns an array of JourCalendrier objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('j')
+//            ->andWhere('j.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('j.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?JourCalendrier
+//    {
+//        return $this->createQueryBuilder('j')
+//            ->andWhere('j.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/PeriodeRepository.php b/Back_end/src/Repository/PeriodeRepository.php
new file mode 100644
index 0000000000000000000000000000000000000000..2633842426fd67499aefdaf9b2905214e4d7e6fe
--- /dev/null
+++ b/Back_end/src/Repository/PeriodeRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\Periode;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<Periode>
+ *
+ * @method Periode|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Periode|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Periode[]    findAll()
+ * @method Periode[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class PeriodeRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, Periode::class);
+    }
+
+//    /**
+//     * @return Periode[] Returns an array of Periode objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('p')
+//            ->andWhere('p.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('p.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?Periode
+//    {
+//        return $this->createQueryBuilder('p')
+//            ->andWhere('p.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/StructureRepository.php b/Back_end/src/Repository/StructureRepository.php
new file mode 100644
index 0000000000000000000000000000000000000000..2e9c709fdd95f6409ffbc7b3689632ce56736f05
--- /dev/null
+++ b/Back_end/src/Repository/StructureRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\Structure;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<Structure>
+ *
+ * @method Structure|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Structure|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Structure[]    findAll()
+ * @method Structure[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class StructureRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, Structure::class);
+    }
+
+//    /**
+//     * @return Structure[] Returns an array of Structure objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('s')
+//            ->andWhere('s.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('s.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?Structure
+//    {
+//        return $this->createQueryBuilder('s')
+//            ->andWhere('s.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/symfony.lock b/Back_end/symfony.lock
index a87e806e74a0c921ea196e21b6c999477c426890..0afd24b2d9361f20d84821df5174aa4ee7c5867f 100644
--- a/Back_end/symfony.lock
+++ b/Back_end/symfony.lock
@@ -26,6 +26,15 @@
             "./migrations/.gitignore"
         ]
     },
+    "nelmio/api-doc-bundle": {
+        "version": "4.18",
+        "recipe": {
+            "repo": "github.com/symfony/recipes-contrib",
+            "branch": "main",
+            "version": "3.0",
+            "ref": "c8e0c38e1a280ab9e37587a8fa32b251d5bc1c94"
+        }
+    },
     "phpunit/phpunit": {
         "version": "9.6",
         "recipe": {