diff --git a/.gitignore b/.gitignore
index b52c7fba6ab4e0b68bba67d7e8844c469c2ba11d..69f2383d58307c2cf792b5b6d4961826a651ef5a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,7 @@ config/secrets/prod/prod.decrypt.private.php
 public/bundles/
 var/
 vendor/
-docker/
 .idea/
+docker/server
 migrations/
 public/uploads
\ No newline at end of file
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0e63ddeecd626fd30e476e754ff43f0f5f3fd263
--- /dev/null
+++ b/docker/docker-compose.yml
@@ -0,0 +1,54 @@
+version: "3.8"
+services:
+
+    db:
+        image: mysql:8.1.0  
+        container_name: db_docker_symfony
+        restart: always
+        volumes:
+          - ./server/mysql_data:/var/lib/mysql    #this line maps the content of ./server/mysql_data in your pc to the /var/lib/mysql of the container
+        ports:
+            - 3306:3306
+        environment:
+            MYSQL_ROOT_USER: 'root'
+            MYSQL_ROOT_PASSWORD: 'root'
+        networks:
+            - dev
+
+    phpmyadmin:
+        image: phpmyadmin
+        container_name: phpmyadmin_docker_symfony
+        restart: always
+        depends_on:
+            - db
+        ports:
+            - 8080:80
+        environment:
+            PMA_HOST: db
+        networks:
+            - dev
+
+    maildev:
+        image: maildev/maildev
+        container_name: maildev_docker_symfony
+        command: bin/maildev --web 80 --smtp 25 --hide-extensions STARTTLS
+        ports:
+          - "8081:80"
+        restart: always
+        networks:
+            - dev
+
+    www:
+        build: php
+        container_name: www_docker_symfony
+        ports:
+          - "8000:8000"
+        volumes:
+            - ./php/vhosts:/etc/apache2/sites-enabled
+            - ../:/var/www
+        restart: always
+        networks:
+            - dev
+
+networks:
+    dev:
diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..feb00d622a4467a93c1b715b5fd5a91678344377
--- /dev/null
+++ b/docker/php/Dockerfile
@@ -0,0 +1,23 @@
+FROM php:8.2-apache
+
+RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf 
+
+RUN apt-get update \
+    &&  apt-get install -y --no-install-recommends \
+        locales apt-utils git libicu-dev g++ libpng-dev libxml2-dev libzip-dev libonig-dev libxslt-dev unzip 
+
+RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen  \
+    &&  echo "fr_FR.UTF-8 UTF-8" >> /etc/locale.gen \
+    &&  locale-gen 
+
+RUN curl -sS https://getcomposer.org/installer | php -- \
+    &&  mv composer.phar /usr/local/bin/composer 
+
+RUN curl -sS https://get.symfony.com/cli/installer | bash \
+    &&  mv /root/.symfony5/bin/symfony /usr/local/bin/symfony
+ 
+RUN docker-php-ext-configure intl 
+RUN docker-php-ext-install pdo pdo_mysql opcache intl zip calendar dom mbstring gd xsl 
+RUN pecl install apcu && docker-php-ext-enable apcu
+
+WORKDIR /var/www/
\ No newline at end of file
diff --git a/docker/php/vhosts/vhosts.conf b/docker/php/vhosts/vhosts.conf
new file mode 100644
index 0000000000000000000000000000000000000000..12be807ce7ceda2b0e70f2ced461ba508eeaf07e
--- /dev/null
+++ b/docker/php/vhosts/vhosts.conf
@@ -0,0 +1,34 @@
+<VirtualHost *:80>
+    ServerName localhost
+
+    DocumentRoot /var/www/project/public
+    DirectoryIndex /index.php
+
+    <Directory /var/www/project/public>
+        AllowOverride None
+        Order Allow,Deny
+        Allow from All
+
+        FallbackResource /index.php
+    </Directory>
+
+    # uncomment the following lines if you install assets as symlinks
+    # or run into problems when compiling LESS/Sass/CoffeeScript assets
+    # <Directory /var/www/project>
+    #     Options FollowSymlinks
+    # </Directory>
+
+    # optionally disable the fallback resource for the asset directories
+    # which will allow Apache to return a 404 error when files are
+    # not found instead of passing the request to Symfony
+    <Directory /var/www/project/public/bundles>
+        FallbackResource disabled
+    </Directory>
+    ErrorLog /var/log/apache2/project_error.log
+    CustomLog /var/log/apache2/project_access.log combined
+
+    # optionally set the value of the environment variables used in the application
+    #SetEnv APP_ENV prod
+    #SetEnv APP_SECRET <app-secret-id>
+    #SetEnv DATABASE_URL "mysql://db_user:db_pass@host:3306/db_name"
+</VirtualHost>
diff --git a/src/Repository/WishlistRepository.php b/src/Repository/WishlistRepository.php
index 543e6355e1e5b43770e58ccfb8ead23eccb5f6eb..93ae0c346f8f98da6aabcdbc5697fe72b343b3b6 100644
--- a/src/Repository/WishlistRepository.php
+++ b/src/Repository/WishlistRepository.php
@@ -3,6 +3,7 @@
 namespace App\Repository;
 
 use App\Entity\Wishlist;
+use DateTime;
 use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
 use Doctrine\Persistence\ManagerRegistry;
 
@@ -13,9 +14,49 @@ class WishlistRepository extends ServiceEntityRepository
 {
     public function __construct(ManagerRegistry $registry)
     {
-        parent::__construct($registry, Wishlist::class);
+        parent::__construct( $registry, Wishlist::class);
+    }
+
+
+    public function findByID($id) {
+        return $this->find($id); 
     }
     
+    public function addWishlist(Wishlist $wishlist) {
+            $this->getEntityManager()->persist($wishlist) ; 
+            $this->getEntityManager()->flush();
+    }
+
+    public function removeWishlist(int $wishlistId) {
+        $wishlist = $this->find($wishlistId);
+        if ($wishlist) {
+            $this->getEntityManager()->remove($wishlist);
+            $this->getEntityManager()->flush();
+        }
+    }
+
+    public function editWishList(int $wishlistId, string $name, DateTime $deadline) {
+        $wishlist = $this->find($wishlistId);
+        if ($wishlist) {
+            $wishlist->setName($name);
+            $wishlist->setDeadline($deadline);
+            $this->getEntityManager()->flush();
+        }
+    }
+
+
+
+    public function mostExpensiveList() {
+        $wishlists  = $this->findAll() ; 
+
+        
+        foreach ($wishlists as $wishlist) {
+            $items = $wishlist->getItems();
+        }
+        
+
+    }
+
     //    /**
     //     * @return Wishlist[] Returns an array of Wishlist objects
     //     */