diff --git a/Compte_rendu_v1.tex b/Compte_rendu_v1.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f1e827e1215a08c02826a803a9ab214e51ea712e
--- /dev/null
+++ b/Compte_rendu_v1.tex
@@ -0,0 +1,377 @@
+\documentclass[12pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{listings}
+\usepackage{xcolor}
+\usepackage{geometry}
+\geometry{margin=2.5cm}
+\hypersetup{
+    colorlinks=true,
+    linkcolor=blue,
+    urlcolor=blue,
+    pdftitle={Rapport Technique - Gyokeres},
+    pdfauthor={Samuel},
+}
+
+\title{Rapport Technique - Gyokeres}
+\author{Samuel}
+\date{Avril 2025}
+
+\lstset{
+  basicstyle=\ttfamily\small,
+  backgroundcolor=\color{gray!10},
+  breaklines=true,
+  frame=single
+}
+
+\begin{document}
+
+\maketitle
+\tableofcontents
+\newpage
+
+\section{Procédure d'installation}
+
+\subsection{Accès au projet}
+
+Générez une clé SSH sur la machine qui sera votre serveur via la commande \texttt{ssh-keygen}. Installez-la, au besoin, via la procédure indiquée sur Internet pour votre OS.
+
+Rendez-vous sur GitLab. Allez dans votre profil, onglet \textit{SSH keys}.
+
+Ajoutez votre clé publique avec le bouton associé.
+
+\subsection{Clonage du projet}
+
+Rendez-vous sur la machine qui sera votre serveur, dans le dossier de votre choix.
+
+Clonez les deux dépôts Git dans ce dossier, via :
+
+\begin{lstlisting}[language=bash]
+git clone git@git.unistra.fr:jagermasters/gyokeres-web-rebirth.git
+git clone git@git.unistra.fr:jagermasters/gyokeres-api-rebirth.git
+\end{lstlisting}
+
+\subsection{Installation de Docker}
+
+Via la documentation officielle, installez \href{https://docs.docker.com/engine/install/}{Docker Engine} et \href{https://docs.docker.com/compose/install/}{Docker Compose}.
+
+\subsection{Création du réseau inter-services}
+
+Créez le réseau permettant à tous les services et au proxy de communiquer ensemble, via :
+
+\begin{lstlisting}[language=bash]
+docker network create the_all_knowing
+\end{lstlisting}
+
+\subsection{Initialisation du proxy (optionnel)}
+
+Si vous souhaitez choisir le nom de domaine à utiliser et/ou sécuriser l'accès à votre machine par les utilisateurs du site, récupérez le fichier \texttt{compose.yml} sur le \href{https://git.unistra.fr/jagermasters/gyokeres-deploy-assistance}{repo Git d'aide au déploiement}.
+
+Rangez-le dans le dossier de votre choix, puis lancez le Nginx Proxy Manager (NPM) via :
+
+\begin{lstlisting}[language=bash]
+docker compose up -d
+\end{lstlisting}
+
+Dans le même répertoire que votre \texttt{compose.yml}, créez un fichier \texttt{nginx.conf}. Dedans, configurez les redirections et les communications nécessaires au bon fonctionnement de l'application.
+
+Ajoutez votre propre nom de domaine pointant vers l'adresse IP de votre serveur.
+
+\emph{Les noms de domaine demandés peuvent être votre IP (si vous ne voulez pas de nom de domaine), ou un nom acheté (OVH, Cloudflare, etc.).}
+
+Si vous possédez une IP publique, vous pouvez demander à Nginx la création d'un certificat SSL, via :
+
+\begin{lstlisting}[language=bash]
+certbot --nginx -d <nom-de-domaine>
+\end{lstlisting}
+
+Ajoutez ensuite les certificats SSL dans votre \texttt{nginx.conf}, en ajoutant l'option \texttt{ssl} à côté du \texttt{listen} :
+
+\begin{lstlisting}
+ssl_certificate /etc/letsencrypt/live/<nom-de-domaine>/fullchain.pem;
+ssl_certificate_key /etc/letsencrypt/live/<nom-de-domaine>/privkey.pem;
+\end{lstlisting}
+
+\subsubsection*{Exemple de configuration NGINX}
+
+\begin{lstlisting}
+events {}
+
+http {
+    server {
+        listen 443 ssl;
+        server_name <nom-de-domaine>;
+
+        ssl_certificate /etc/letsencrypt/live/<nom-de-domaine>/fullchain.pem;
+        ssl_certificate_key /etc/letsencrypt/live/<nom-de-domaine>/privkey.pem;
+
+        location /api {
+            proxy_pass http://api-prod:3000/api;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
+
+        location / {
+            proxy_pass http://web:8080/;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
+    }
+
+    server {
+        listen 80;
+        server_name <nom-de-domaine>;
+        return 301 https://$host$request_uri;
+    }
+}
+\end{lstlisting}
+
+\subsection{Sécurité réseau}
+
+Exemple dans le fichier \texttt{docker-compose.prod.yml} de l'API :
+
+\begin{lstlisting}
+backend:
+  container_name: ${API_PROD_CONTAINER_NAME}
+  build:
+    context: .
+    dockerfile: Dockerfile
+  ports:
+    - '127.0.0.1:5555:5555'
+  environment:
+    - DATABASE_URL=${DATABASE_URL}
+    - API_PORT=${API_PORT}
+  depends_on:
+    - db
+  networks:
+    - the_all_knowing
+\end{lstlisting}
+
+\subsection{Initialisation du projet}
+
+Installez \texttt{dos2unix} via :
+
+\begin{lstlisting}[language=bash]
+sudo apt install dos2unix
+\end{lstlisting}
+
+Puis :
+
+\begin{lstlisting}[language=bash]
+# Partie web
+./init.sh
+
+# Partie API
+./init.sh prod
+\end{lstlisting}
+
+Pour vérifier les conteneurs :
+
+\begin{lstlisting}[language=bash]
+docker ps
+\end{lstlisting}
+
+\subsection{Dépannage}
+
+\textbf{Conteneurs qui ne démarrent pas} :
+
+\begin{itemize}
+    \item Vérifiez les logs : \texttt{docker-compose logs -f}
+    \item Vérifiez les ports : \texttt{netstat -tulnp | grep LISTEN}
+    \item Docker installé ?
+\end{itemize}
+
+\textbf{Problèmes de permissions} :
+
+\begin{lstlisting}[language=bash]
+sudo usermod -aG docker $USER
+# puis déconnexion / reconnexion
+\end{lstlisting}
+
+\section{Prise en main}
+
+\subsection{Outils de déploiement}
+
+Absence de procédure d'installation initiale. Reprise des \texttt{docker-compose} existants. Ajout d’un proxy et d’une simplification de la gestion d’environnement.
+
+\subsection{Technologies}
+
+API basée sur des technos comme \texttt{Prisma}, \texttt{Express}, \texttt{JWT}, etc. Maintenance facilitée.
+
+\subsection{Ancien protocole}
+
+Voir l'annexe \ref{annexe:ancien-protocole} pour une procédure de déploiement initiale issue du dépôt \textit{Gyokeres Deploy Assistance}.
+
+\section{Problèmes}
+
+\subsection{Techniques}
+
+\begin{itemize}
+    \item Déconnexion aléatoire des quiz
+    \item QR code vers \texttt{localhost}
+    \item CI/CD : lint et tests cassés
+    \item BDD effacée au redéploiement
+\end{itemize}
+
+\subsection{UI/UX}
+
+\begin{itemize}
+    \item Pas de responsive
+    \item Sign-up sans message explicite
+    \item Modale native sans style CSS
+\end{itemize}
+
+\subsection{Contenu}
+
+\begin{itemize}
+    \item Logo sous licence
+    \item Pas de gestion des médias
+\end{itemize}
+
+\subsection{Divers}
+
+\begin{itemize}
+    \item Note trop élevée
+\end{itemize}
+
+\section{Interactions inter-équipes}
+
+Aide apportée à d'autres groupes malgré critiques. Déploiement fonctionnel sur plusieurs machines.
+
+\section{FAQ}
+
+\begin{itemize}
+    \item \textbf{Procédure existante ?} Non, mais devinable.
+    \item \textbf{À jour ?} Scripts fonctionnels mais améliorables.
+    \item \textbf{Modifiée ?} Oui, vers Docker Compose.
+    \item \textbf{Technos changées ?} Nginx ajouté.
+    \item \textbf{Troubleshooting fourni ?} Non.
+    \item \textbf{Difficultés ?} Oui, API pointait vers serveur fermé.
+    \item \textbf{CI/CD ?} Fonctionnel après modifications :
+    \begin{itemize}
+        \item Variables utilisateurs/IP à rendre dynamiques
+        \item Lancement limité à \texttt{main}
+    \end{itemize}
+\end{itemize}
+
+\newpage
+\appendix
+
+\section{Protocole de déploiement initial}
+\label{annexe:ancien-protocole}
+
+Ce guide fournit des instructions sur comment déployer et exécuter les différents composants du projet Gyokeres.
+
+\subsection{Prérequis}
+
+Si vous êtes sur Linux, installez \texttt{dos2unix} via \texttt{apt}, \texttt{yay} ou votre gestionnaire de paquets préféré.
+
+Installez Docker Engine (avec Docker Compose) en suivant les instructions officielles : \url{https://docs.docker.com/engine/install/}
+
+Assurez-vous de disposer des autorisations nécessaires pour exécuter des commandes Docker. En cas d’erreurs :
+
+\begin{lstlisting}[language=bash]
+sudo usermod -aG docker $USER
+\end{lstlisting}
+
+\subsection{API}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Exécutez le script d’initialisation :
+\begin{lstlisting}[language=bash]
+./init.sh
+\end{lstlisting}
+\end{enumerate}
+
+\subsubsection*{Notes}
+
+\begin{itemize}
+    \item Relancer \texttt{init.sh} réinitialise les conteneurs (y compris la BDD)
+    \item Pour une persistance des données, montez un volume Docker
+    \item PgAdmin est disponible, mais nécessite une configuration spécifique
+\end{itemize}
+
+\subsection{Application Mobile}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Installez les dépendances :
+\begin{lstlisting}[language=bash]
+npm install
+\end{lstlisting}
+    \item Lancez le serveur de développement :
+\begin{lstlisting}[language=bash]
+npm run start
+\end{lstlisting}
+\end{enumerate}
+
+\subsubsection*{Compilation Android en local}
+
+\begin{enumerate}
+    \item Suivez les instructions de cette vidéo : \url{https://www.youtube.com/watch?v=4TjRX90XpEM}
+    \item Compilez :
+\begin{lstlisting}[language=bash]
+eas build --android --local
+\end{lstlisting}
+\end{enumerate}
+
+\subsection{Application Web}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Exécutez le script :
+\begin{lstlisting}[language=bash]
+./init.sh
+\end{lstlisting}
+    \item Accédez à l'application via :
+\begin{lstlisting}
+http://130.79.214.170:8080/home
+\end{lstlisting}
+\end{enumerate}
+
+\subsection{Recommandations de déploiement}
+
+\begin{itemize}
+    \item \textbf{Documentation} : étoffer la doc avec instructions claires
+    \item \textbf{Configuration Docker} :
+    \begin{itemize}
+        \item Utiliser des Dockerfiles pour fiabilité et portabilité
+        \item Meilleure gestion des erreurs et données persistantes
+    \end{itemize}
+    \item \textbf{Structure du dépôt} : actuelle = dépôts séparés selon l’organisation initiale
+\end{itemize}
+
+\subsection{Configuration du serveur}
+
+Pour préparer un serveur Proxmox :
+
+\begin{enumerate}
+    \item Se connecter via VPN, puis :
+\begin{lstlisting}[language=bash]
+ssh sae61-jager@130.79.214.170
+# ou, en root :
+ssh sae61-jagermasters@130.79.214.170
+\end{lstlisting}
+
+    \item (Éventuel) Ajouter l'utilisateur aux sudoers :
+\begin{lstlisting}[language=bash]
+sudo usermod -aG sudo sae61-jager
+\end{lstlisting}
+
+    \item Installer Docker :
+    \url{https://docs.docker.com/engine/install/debian/#install-using-the-repository}
+\end{enumerate}
+
+
+\end{document}
diff --git a/Compte_rendu_v2.tex b/Compte_rendu_v2.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4d49f7bbf9b781057ce67ee2100d5a4f4d45e22d
--- /dev/null
+++ b/Compte_rendu_v2.tex
@@ -0,0 +1,393 @@
+\documentclass[12pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{listings}
+\usepackage{xcolor}
+\usepackage{geometry}
+\usepackage{breakurl}
+\usepackage[hyphens]{url}
+\geometry{margin=2.5cm}
+\hypersetup{
+    colorlinks=true,
+    linkcolor=blue,
+    urlcolor=blue,
+    pdftitle={Rapport Technique - Gyokeres},
+    pdfauthor={Samuel},
+}
+
+\lstset{
+  basicstyle=\ttfamily\small,
+  backgroundcolor=\color{gray!10},
+  breaklines=true,
+  frame=single
+}
+
+\begin{document}
+\begin{titlepage}
+    \centering
+    \vspace*{1cm}
+    
+    {\Huge\bfseries Compte rendu\\[0.3cm]}
+    {\LARGE Gyokeres\\[1cm]}
+    
+    \rule{\linewidth}{0.5mm} \\[0.4cm]
+    {\Large\textit{Reprise et déploiement d’une application web}} \\[0.2cm]
+    \rule{\linewidth}{0.5mm} \\[1.5cm]
+    
+    {\large Auteur : \textbf{Fernandes Samuel et Elliot Schott}} \\[0.5cm]
+    {\large Avril 2025} \\[2cm]
+    
+    \vfill
+    
+    \textit{IUT Robert Schuman, Illkirch} \\
+    \textit{SAE 6.1 — Déploiement d’application} \\
+\end{titlepage}
+
+\newpage
+\tableofcontents
+\newpage
+
+\section{Procédure d'installation}
+
+\subsection{Accès au projet}
+
+Générez une clé SSH sur la machine qui sera votre serveur via la commande \texttt{ssh-keygen}. Installez-la, au besoin, via la procédure indiquée sur Internet pour votre OS.
+
+Rendez-vous sur GitLab. Allez dans votre profil, onglet \textit{SSH keys}.
+
+Ajoutez votre clé publique avec le bouton associé.
+
+\subsection{Clonage du projet}
+
+Rendez-vous sur la machine qui sera votre serveur, dans le dossier de votre choix.
+
+Clonez les deux dépôts Git dans ce dossier, via :
+
+\begin{lstlisting}[language=bash]
+git clone git@git.unistra.fr:jagermasters/gyokeres-web-rebirth.git
+git clone git@git.unistra.fr:jagermasters/gyokeres-api-rebirth.git
+\end{lstlisting}
+
+\subsection{Installation de Docker}
+
+Via la documentation officielle, installez \href{https://docs.docker.com/engine/install/}{Docker Engine} et \href{https://docs.docker.com/compose/install/}{Docker Compose}.
+
+\subsection{Création du réseau inter-services}
+
+Créez le réseau permettant à tous les services et au proxy de communiquer ensemble, via :
+
+\begin{lstlisting}[language=bash]
+docker network create the_all_knowing
+\end{lstlisting}
+
+\subsection{Initialisation du proxy (optionnel)}
+
+Si vous souhaitez choisir le nom de domaine à utiliser et/ou sécuriser l'accès à votre machine par les utilisateurs du site, récupérez le fichier \texttt{compose.yml} sur le \href{https://git.unistra.fr/jagermasters/gyokeres-deploy-assistance}{repo Git d'aide au déploiement}.
+
+Rangez-le dans le dossier de votre choix, puis lancez le Nginx Proxy Manager (NPM) via :
+
+\begin{lstlisting}[language=bash]
+docker compose up -d
+\end{lstlisting}
+
+Dans le même répertoire que votre \texttt{compose.yml}, créez un fichier \texttt{nginx.conf}. Dedans, configurez les redirections et les communications nécessaires au bon fonctionnement de l'application.
+
+Ajoutez votre propre nom de domaine pointant vers l'adresse IP de votre serveur.
+
+\emph{Les noms de domaine demandés peuvent être votre IP (si vous ne voulez pas de nom de domaine), ou un nom acheté (OVH, Cloudflare, etc.).}
+
+Si vous possédez une IP publique, vous pouvez demander à Nginx la création d'un certificat SSL, via :
+
+\begin{lstlisting}[language=bash]
+certbot --nginx -d <nom-de-domaine>
+\end{lstlisting}
+
+Ajoutez ensuite les certificats SSL dans votre \texttt{nginx.conf}, en ajoutant l'option \texttt{ssl} à côté du \texttt{listen} :
+
+\begin{lstlisting}
+ssl_certificate /etc/letsencrypt/live/<nom-de-domaine>/fullchain.pem;
+ssl_certificate_key /etc/letsencrypt/live/<nom-de-domaine>/privkey.pem;
+\end{lstlisting}
+
+\subsubsection*{Exemple de configuration NGINX}
+
+\begin{lstlisting}
+events {}
+
+http {
+    server {
+        listen 443 ssl;
+        server_name <nom-de-domaine>;
+
+        ssl_certificate /etc/letsencrypt/live/<nom-de-domaine>/fullchain.pem;
+        ssl_certificate_key /etc/letsencrypt/live/<nom-de-domaine>/privkey.pem;
+
+        location /api {
+            proxy_pass http://api-prod:3000/api;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
+
+        location / {
+            proxy_pass http://web:8080/;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
+    }
+
+    server {
+        listen 80;
+        server_name <nom-de-domaine>;
+        return 301 https://$host$request_uri;
+    }
+}
+\end{lstlisting}
+
+\subsection{Sécurité réseau}
+
+Exemple dans le fichier \texttt{docker-compose.prod.yml} de l'API :
+
+\begin{lstlisting}
+backend:
+  container_name: ${API_PROD_CONTAINER_NAME}
+  build:
+    context: .
+    dockerfile: Dockerfile
+  ports:
+    - '127.0.0.1:5555:5555'
+  environment:
+    - DATABASE_URL=${DATABASE_URL}
+    - API_PORT=${API_PORT}
+  depends_on:
+    - db
+  networks:
+    - the_all_knowing
+\end{lstlisting}
+
+\subsection{Initialisation du projet}
+
+Installez \texttt{dos2unix} via :
+
+\begin{lstlisting}[language=bash]
+sudo apt install dos2unix
+\end{lstlisting}
+
+Puis :
+
+\begin{lstlisting}[language=bash]
+# Partie web
+./init.sh
+
+# Partie API
+./init.sh prod
+\end{lstlisting}
+
+Pour vérifier les conteneurs :
+
+\begin{lstlisting}[language=bash]
+docker ps
+\end{lstlisting}
+
+\subsection{Dépannage, troubleshooting}
+
+\textbf{Conteneurs qui ne démarrent pas} :
+
+\begin{itemize}
+    \item Vérifiez les logs : \texttt{docker-compose logs -f}
+    \item Vérifiez les ports : \texttt{netstat -tulnp | grep LISTEN}
+    \item Docker installé ?
+\end{itemize}
+
+\textbf{Problèmes de permissions} :
+
+\begin{lstlisting}[language=bash]
+sudo usermod -aG docker $USER
+# puis deconnexion / reconnexion
+\end{lstlisting}
+
+\section{Prise en main}
+
+\subsection{Outils de déploiement}
+
+Absence de procédure d'installation initiale. Reprise des \texttt{docker-compose} existants. Ajout d’un proxy et d’une simplification de la gestion d’environnement.
+
+\subsection{Technologies}
+
+API basée sur des technos comme \texttt{Prisma}, \texttt{Express}, \texttt{JWT}, etc. Maintenance facilitée.
+
+\subsection{Ancien protocole}
+
+Voir l'annexe \ref{annexe:ancien-protocole} pour une procédure de déploiement initiale issue du dépôt \textit{Gyokeres Deploy Assistance}.
+
+\section{Problèmes}
+
+\subsection{Techniques}
+
+\begin{itemize}
+    \item Déconnexion aléatoire des quiz (socket cassée)
+    \item QR code envoie vers \texttt{localhost}
+    \item CI/CD : contrôle du lint et tests provoquent inlassablement des erreurs (qualité de code trop mauvaise et/ou tests unitaires et d'intégrations ne passent pas)
+    \item BDD effacée à chaque redémarrage
+\end{itemize}
+
+\subsection{UI/UX}
+
+\begin{itemize}
+    \item Pas de responsive
+    \item Sign-up sans message explicite
+    \item Modale native sans style CSS
+\end{itemize}
+
+\subsection{Contenu}
+
+\begin{itemize}
+    \item Logo sous licence
+    \item Pas de gestion des médias
+\end{itemize}
+
+\subsection{Divers}
+
+\begin{itemize}
+    \item Note technique la plus élevée des groupes, mais manque de plusieurs fonctionnalitées essentielles ? 
+\end{itemize}
+
+\section{Interactions inter-équipes}
+
+Aide apportée à d'autres groupes malgré critiques. Déploiement fonctionnel sur plusieurs machines.
+
+\section{FAQ}
+
+\begin{itemize}
+    \item \textbf{Procédure existante ?} Non, mais devinable.
+    \item \textbf{À jour ?} Scripts fonctionnels mais améliorables.
+    \item \textbf{Modifiée ?} Oui, vers Docker Compose.
+    \item \textbf{Technos changées ?} Nginx ajouté.
+    \item \textbf{Troubleshooting fourni ?} Non.
+    \item \textbf{Difficultés ?} Oui, API pointait vers serveur fermé.
+    \item \textbf{CI/CD ?} Fonctionnel après modifications :
+    \begin{itemize}
+        \item Variables utilisateurs/IP à rendre dynamiques
+        \item Lancement limité à \texttt{main}
+    \end{itemize}
+\end{itemize}
+
+\newpage
+\appendix
+
+\section{Protocole de déploiement initial}
+\label{annexe:ancien-protocole}
+
+Ce guide fournit des instructions sur comment déployer et exécuter les différents composants du projet Gyokeres.
+
+\subsection{Prérequis}
+
+Si vous êtes sur Linux, installez \texttt{dos2unix} via \texttt{apt}, \texttt{yay} ou votre gestionnaire de paquets préféré.
+
+Installez Docker Engine (avec Docker Compose) en suivant les instructions officielles : \url{https://docs.docker.com/engine/install/}
+
+Assurez-vous de disposer des autorisations nécessaires pour exécuter des commandes Docker. En cas d’erreurs :
+
+\begin{lstlisting}[language=bash]
+sudo usermod -aG docker $USER
+\end{lstlisting}
+
+\subsection{API}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Exécutez le script d’initialisation :
+\begin{lstlisting}[language=bash]
+./init.sh
+\end{lstlisting}
+\end{enumerate}
+
+\subsubsection*{Notes}
+
+\begin{itemize}
+    \item Relancer \texttt{init.sh} réinitialise les conteneurs (y compris la BDD)
+    \item Pour une persistance des données, montez un volume Docker
+    \item PgAdmin est disponible, mais nécessite une configuration spécifique
+\end{itemize}
+
+\subsection{Application Mobile}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Installez les dépendances :
+\begin{lstlisting}[language=bash]
+npm install
+\end{lstlisting}
+    \item Lancez le serveur de développement :
+\begin{lstlisting}[language=bash]
+npm run start
+\end{lstlisting}
+\end{enumerate}
+
+\subsubsection*{Compilation Android en local}
+
+\begin{enumerate}
+    \item Suivez les instructions de cette vidéo : \url{https://www.youtube.com/watch?v=4TjRX90XpEM}
+    \item Compilez :
+\begin{lstlisting}[language=bash]
+eas build --android --local
+\end{lstlisting}
+\end{enumerate}
+
+\subsection{Application Web}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Exécutez le script :
+\begin{lstlisting}[language=bash]
+./init.sh
+\end{lstlisting}
+    \item Accédez à l'application via :
+\begin{lstlisting}
+http://130.79.214.170:8080/home
+\end{lstlisting}
+\end{enumerate}
+
+\subsection{Recommandations de déploiement}
+
+\begin{itemize}
+    \item \textbf{Documentation} : étoffer la doc avec instructions claires
+    \item \textbf{Configuration Docker} :
+    \begin{itemize}
+        \item Utiliser des Dockerfiles pour fiabilité et portabilité
+        \item Meilleure gestion des erreurs et données persistantes
+    \end{itemize}
+    \item \textbf{Structure du dépôt} : actuelle = dépôts séparés selon l’organisation initiale
+\end{itemize}
+
+\subsection{Configuration du serveur}
+
+Pour préparer un serveur Proxmox :
+
+\begin{enumerate}
+    \item Se connecter via VPN, puis :
+\begin{lstlisting}[language=bash]
+ssh sae61-jager@130.79.214.170
+# ou, en root :
+ssh sae61-jagermasters@130.79.214.170
+\end{lstlisting}
+
+    \item (Éventuel) Ajouter l'utilisateur aux sudoers :
+\begin{lstlisting}[language=bash]
+sudo usermod -aG sudo sae61-jager
+\end{lstlisting}
+
+    \item \href{https://docs.docker.com/engine/install/debian/#install-using-the-repository}{Installer Docker sur Debian (documentation officielle)}
+\end{enumerate}
+
+
+\end{document}
diff --git a/Compte_rendu_v3.tex b/Compte_rendu_v3.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4484354da76d0db2817da6b50803649c0060bf2e
--- /dev/null
+++ b/Compte_rendu_v3.tex
@@ -0,0 +1,397 @@
+\documentclass[12pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{listings}
+\usepackage{xcolor}
+\usepackage{geometry}
+\usepackage{breakurl}
+\usepackage[hyphens]{url}
+\geometry{margin=2.5cm}
+\hypersetup{
+    colorlinks=true,
+    linkcolor=blue,
+    urlcolor=blue,
+    pdftitle={Rapport Technique - Gyokeres},
+    pdfauthor={Samuel},
+}
+
+\lstset{
+  basicstyle=\ttfamily\small,
+  backgroundcolor=\color{gray!10},
+  breaklines=true,
+  frame=single
+}
+
+\begin{document}
+\begin{titlepage}
+    \centering
+    \vspace*{1cm}
+    
+    {\Huge\bfseries Compte rendu\\[0.3cm]}
+    {\LARGE Gyokeres\\[1cm]}
+    
+    \rule{\linewidth}{0.5mm} \\[0.4cm]
+    {\Large\textit{Reprise et déploiement d’une application web}} \\[0.2cm]
+    \rule{\linewidth}{0.5mm} \\[1.5cm]
+    
+    {\large Auteur : \textbf{Fernandes Samuel et Eliott Schott}} \\[0.5cm]
+    {\large Avril 2025} \\[2cm]
+    
+    \vfill
+    
+    \textit{IUT Robert Schuman, Illkirch} \\
+    \textit{SAE 6.1 — Déploiement d’application} \\
+\end{titlepage}
+
+\newpage
+\tableofcontents
+\newpage
+
+\section{Quickstart}
+
+Accédez directement à l'application ici : \url{https://vm-10.iutrs.unistra.fr/home}
+
+\section{Procédure d'installation}
+
+\subsection{Accès au projet}
+
+Générez une clé SSH sur la machine qui sera votre serveur via la commande \texttt{ssh-keygen}. Installez-la, au besoin, via la procédure indiquée sur Internet pour votre OS.
+
+Rendez-vous sur GitLab. Allez dans votre profil, onglet \textit{SSH keys}.
+
+Ajoutez votre clé publique avec le bouton associé.
+
+\subsection{Clonage du projet}
+
+Rendez-vous sur la machine qui sera votre serveur, dans le dossier de votre choix.
+
+Clonez les deux dépôts Git dans ce dossier, via :
+
+\begin{lstlisting}[language=bash]
+git clone git@git.unistra.fr:jagermasters/gyokeres-web-rebirth.git
+git clone git@git.unistra.fr:jagermasters/gyokeres-api-rebirth.git
+\end{lstlisting}
+
+\subsection{Installation de Docker}
+
+Via la documentation officielle, installez \href{https://docs.docker.com/engine/install/}{Docker Engine} et \href{https://docs.docker.com/compose/install/}{Docker Compose}.
+
+\subsection{Création du réseau inter-services}
+
+Créez le réseau permettant à tous les services et au proxy de communiquer ensemble, via :
+
+\begin{lstlisting}[language=bash]
+docker network create the_all_knowing
+\end{lstlisting}
+
+\subsection{Initialisation du proxy (optionnel)}
+
+Si vous souhaitez choisir le nom de domaine à utiliser et/ou sécuriser l'accès à votre machine par les utilisateurs du site, récupérez le fichier \texttt{compose.yml} sur le \href{https://git.unistra.fr/jagermasters/gyokeres-deploy-assistance}{repo Git d'aide au déploiement}.
+
+Rangez-le dans le dossier de votre choix, puis lancez le Nginx Proxy Manager (NPM) via :
+
+\begin{lstlisting}[language=bash]
+docker compose up -d
+\end{lstlisting}
+
+Dans le même répertoire que votre \texttt{compose.yml}, créez un fichier \texttt{nginx.conf}. Dedans, configurez les redirections et les communications nécessaires au bon fonctionnement de l'application.
+
+Ajoutez votre propre nom de domaine pointant vers l'adresse IP de votre serveur.
+
+\emph{Les noms de domaine demandés peuvent être votre IP (si vous ne voulez pas de nom de domaine), ou un nom acheté (OVH, Cloudflare, etc.).}
+
+Si vous possédez une IP publique, vous pouvez demander à Nginx la création d'un certificat SSL, via :
+
+\begin{lstlisting}[language=bash]
+certbot --nginx -d <nom-de-domaine>
+\end{lstlisting}
+
+Ajoutez ensuite les certificats SSL dans votre \texttt{nginx.conf}, en ajoutant l'option \texttt{ssl} à côté du \texttt{listen} :
+
+\begin{lstlisting}
+ssl_certificate /etc/letsencrypt/live/<nom-de-domaine>/fullchain.pem;
+ssl_certificate_key /etc/letsencrypt/live/<nom-de-domaine>/privkey.pem;
+\end{lstlisting}
+
+\subsubsection*{Exemple de configuration NGINX}
+
+\begin{lstlisting}
+events {}
+
+http {
+    server {
+        listen 443 ssl;
+        server_name <nom-de-domaine>;
+
+        ssl_certificate /etc/letsencrypt/live/<nom-de-domaine>/fullchain.pem;
+        ssl_certificate_key /etc/letsencrypt/live/<nom-de-domaine>/privkey.pem;
+
+        location /api {
+            proxy_pass http://api-prod:3000/api;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
+
+        location / {
+            proxy_pass http://web:8080/;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
+    }
+
+    server {
+        listen 80;
+        server_name <nom-de-domaine>;
+        return 301 https://$host$request_uri;
+    }
+}
+\end{lstlisting}
+
+\subsection{Sécurité réseau}
+
+Exemple dans le fichier \texttt{docker-compose.prod.yml} de l'API :
+
+\begin{lstlisting}
+backend:
+  container_name: ${API_PROD_CONTAINER_NAME}
+  build:
+    context: .
+    dockerfile: Dockerfile
+  ports:
+    - '127.0.0.1:5555:5555'
+  environment:
+    - DATABASE_URL=${DATABASE_URL}
+    - API_PORT=${API_PORT}
+  depends_on:
+    - db
+  networks:
+    - the_all_knowing
+\end{lstlisting}
+
+\subsection{Initialisation du projet}
+
+Installez \texttt{dos2unix} via :
+
+\begin{lstlisting}[language=bash]
+sudo apt install dos2unix
+\end{lstlisting}
+
+Puis :
+
+\begin{lstlisting}[language=bash]
+# Partie web
+./init.sh
+
+# Partie API
+./init.sh prod
+\end{lstlisting}
+
+Pour vérifier les conteneurs :
+
+\begin{lstlisting}[language=bash]
+docker ps
+\end{lstlisting}
+
+\subsection{Dépannage, troubleshooting}
+
+\textbf{Conteneurs qui ne démarrent pas} :
+
+\begin{itemize}
+    \item Vérifiez les logs : \texttt{docker-compose logs -f}
+    \item Vérifiez les ports : \texttt{netstat -tulnp | grep LISTEN}
+    \item Docker installé ?
+\end{itemize}
+
+\textbf{Problèmes de permissions} :
+
+\begin{lstlisting}[language=bash]
+sudo usermod -aG docker $USER
+# puis deconnexion / reconnexion
+\end{lstlisting}
+
+\section{Prise en main}
+
+\subsection{Outils de déploiement}
+
+Absence de procédure d'installation initiale. Reprise des \texttt{docker-compose} existants. Ajout d’un proxy et d’une simplification de la gestion d’environnement.
+
+\subsection{Technologies}
+
+API basée sur des technos comme \texttt{Prisma}, \texttt{Express}, \texttt{JWT}, etc. Maintenance facilitée.
+
+\subsection{Ancien protocole}
+
+Voir l'annexe \ref{annexe:ancien-protocole} pour une procédure de déploiement initiale issue du dépôt \textit{Gyokeres Deploy Assistance}.
+
+\section{Problèmes}
+
+\subsection{Techniques}
+
+\begin{itemize}
+    \item Déconnexion aléatoire des quiz (socket cassée)
+    \item QR code envoie vers \texttt{localhost}
+    \item CI/CD : contrôle du lint et tests provoquent inlassablement des erreurs (qualité de code trop mauvaise et/ou tests unitaires et d'intégrations ne passent pas)
+    \item BDD effacée à chaque redémarrage
+\end{itemize}
+
+\subsection{UI/UX}
+
+\begin{itemize}
+    \item Pas de responsive
+    \item Sign-up sans message explicite
+    \item Modale native sans style CSS
+\end{itemize}
+
+\subsection{Contenu}
+
+\begin{itemize}
+    \item Logo sous licence
+    \item Pas de gestion des médias
+\end{itemize}
+
+\subsection{Divers}
+
+\begin{itemize}
+    \item Note technique la plus élevée des groupes, mais manque de plusieurs fonctionnalitées essentielles ? 
+\end{itemize}
+
+\section{Interactions inter-équipes}
+
+Aide apportée à d'autres groupes malgré critiques. Déploiement fonctionnel sur plusieurs machines.
+
+\section{FAQ}
+
+\begin{itemize}
+    \item \textbf{Procédure existante ?} Non, mais devinable.
+    \item \textbf{À jour ?} Scripts fonctionnels mais améliorables.
+    \item \textbf{Modifiée ?} Oui, vers Docker Compose.
+    \item \textbf{Technos changées ?} Nginx ajouté.
+    \item \textbf{Troubleshooting fourni ?} Non.
+    \item \textbf{Difficultés ?} Oui, API pointait vers serveur fermé.
+    \item \textbf{CI/CD ?} Fonctionnel après modifications :
+    \begin{itemize}
+        \item Variables utilisateurs/IP à rendre dynamiques
+        \item Lancement limité à \texttt{main}
+    \end{itemize}
+\end{itemize}
+
+\newpage
+\appendix
+
+\section{Protocole de déploiement initial}
+\label{annexe:ancien-protocole}
+
+Ce guide fournit des instructions sur comment déployer et exécuter les différents composants du projet Gyokeres.
+
+\subsection{Prérequis}
+
+Si vous êtes sur Linux, installez \texttt{dos2unix} via \texttt{apt}, \texttt{yay} ou votre gestionnaire de paquets préféré.
+
+Installez Docker Engine (avec Docker Compose) en suivant les instructions officielles : \url{https://docs.docker.com/engine/install/}
+
+Assurez-vous de disposer des autorisations nécessaires pour exécuter des commandes Docker. En cas d’erreurs :
+
+\begin{lstlisting}[language=bash]
+sudo usermod -aG docker $USER
+\end{lstlisting}
+
+\subsection{API}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Exécutez le script d’initialisation :
+\begin{lstlisting}[language=bash]
+./init.sh
+\end{lstlisting}
+\end{enumerate}
+
+\subsubsection*{Notes}
+
+\begin{itemize}
+    \item Relancer \texttt{init.sh} réinitialise les conteneurs (y compris la BDD)
+    \item Pour une persistance des données, montez un volume Docker
+    \item PgAdmin est disponible, mais nécessite une configuration spécifique
+\end{itemize}
+
+\subsection{Application Mobile}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Installez les dépendances :
+\begin{lstlisting}[language=bash]
+npm install
+\end{lstlisting}
+    \item Lancez le serveur de développement :
+\begin{lstlisting}[language=bash]
+npm run start
+\end{lstlisting}
+\end{enumerate}
+
+\subsubsection*{Compilation Android en local}
+
+\begin{enumerate}
+    \item Suivez les instructions de cette vidéo : \url{https://www.youtube.com/watch?v=4TjRX90XpEM}
+    \item Compilez :
+\begin{lstlisting}[language=bash]
+eas build --android --local
+\end{lstlisting}
+\end{enumerate}
+
+\subsection{Application Web}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Exécutez le script :
+\begin{lstlisting}[language=bash]
+./init.sh
+\end{lstlisting}
+    \item Accédez à l'application via :
+\begin{lstlisting}
+http://130.79.214.170:8080/home
+\end{lstlisting}
+\end{enumerate}
+
+\subsection{Recommandations de déploiement}
+
+\begin{itemize}
+    \item \textbf{Documentation} : étoffer la doc avec instructions claires
+    \item \textbf{Configuration Docker} :
+    \begin{itemize}
+        \item Utiliser des Dockerfiles pour fiabilité et portabilité
+        \item Meilleure gestion des erreurs et données persistantes
+    \end{itemize}
+    \item \textbf{Structure du dépôt} : actuelle = dépôts séparés selon l’organisation initiale
+\end{itemize}
+
+\subsection{Configuration du serveur}
+
+Pour préparer un serveur Proxmox :
+
+\begin{enumerate}
+    \item Se connecter via VPN, puis :
+\begin{lstlisting}[language=bash]
+ssh sae61-jager@130.79.214.170
+# ou, en root :
+ssh sae61-jagermasters@130.79.214.170
+\end{lstlisting}
+
+    \item (Éventuel) Ajouter l'utilisateur aux sudoers :
+\begin{lstlisting}[language=bash]
+sudo usermod -aG sudo sae61-jager
+\end{lstlisting}
+
+    \item \href{https://docs.docker.com/engine/install/debian/#install-using-the-repository}{Installer Docker sur Debian (documentation officielle)}
+\end{enumerate}
+
+
+\end{document}
diff --git a/Compte_rendu_v4.tex b/Compte_rendu_v4.tex
new file mode 100644
index 0000000000000000000000000000000000000000..9afc5470e0d7e14929ae194fd96508b639f7f572
--- /dev/null
+++ b/Compte_rendu_v4.tex
@@ -0,0 +1,429 @@
+\documentclass[12pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{listings}
+\usepackage{xcolor}
+\usepackage{geometry}
+\usepackage{breakurl}
+\usepackage[hyphens]{url}
+\geometry{margin=2.5cm}
+\hypersetup{
+    colorlinks=true,
+    linkcolor=blue,
+    urlcolor=blue,
+    pdftitle={Rapport Technique - Gyokeres},
+    pdfauthor={Samuel},
+}
+
+\lstset{
+  basicstyle=\ttfamily\small,
+  backgroundcolor=\color{gray!10},
+  breaklines=true,
+  frame=single
+}
+
+\begin{document}
+\begin{titlepage}
+    \centering
+    \vspace*{1cm}
+    
+    {\Huge\bfseries Compte rendu\\[0.3cm]}
+    {\LARGE Gyokeres\\[1cm]}
+    
+    \rule{\linewidth}{0.5mm} \\[0.4cm]
+    {\Large\textit{Reprise et déploiement d’une application web}} \\[0.2cm]
+    \rule{\linewidth}{0.5mm} \\[1.5cm]
+    
+    {\large Auteur : \textbf{Fernandes Samuel et Eliott Schott}} \\[0.5cm]
+    {\large Avril 2025} \\[2cm]
+    
+    \vfill
+    
+    \textit{IUT Robert Schuman, Illkirch} \\
+    \textit{SAE 6.1 — Déploiement d’application} \\
+\end{titlepage}
+
+\newpage
+\tableofcontents
+\newpage
+
+\section{Quickstart}
+
+Accédez directement à l'application ici : \url{https://vm-10.iutrs.unistra.fr/home}
+
+\section{Procédure d'installation}
+
+\subsection{Accès au projet}
+
+Générez une clé SSH sur la machine qui sera votre serveur via la commande \texttt{ssh-keygen}. Installez-la, au besoin, via la procédure indiquée sur Internet pour votre OS.
+
+Rendez-vous sur GitLab. Allez dans votre profil, onglet \textit{SSH keys}.
+
+Ajoutez votre clé publique avec le bouton associé.
+
+\subsection{Clonage du projet}
+
+Rendez-vous sur la machine qui sera votre serveur, dans le dossier de votre choix.
+
+Clonez les deux dépôts Git dans ce dossier, via :
+
+\begin{lstlisting}[language=bash]
+git clone git@git.unistra.fr:jagermasters/gyokeres-web-rebirth.git
+git clone git@git.unistra.fr:jagermasters/gyokeres-api-rebirth.git
+\end{lstlisting}
+
+\subsection{Installation de Docker}
+
+Via la documentation officielle, installez \href{https://docs.docker.com/engine/install/}{Docker Engine} et \href{https://docs.docker.com/compose/install/}{Docker Compose}.
+
+\subsection{Création du réseau inter-services}
+
+Créez le réseau permettant à tous les services et au proxy de communiquer ensemble, via :
+
+\begin{lstlisting}[language=bash]
+docker network create the_all_knowing
+\end{lstlisting}
+
+\subsection{Initialisation du proxy (optionnel)}
+
+Si vous souhaitez choisir le nom de domaine à utiliser et/ou sécuriser l'accès à votre machine par les utilisateurs du site, récupérez le fichier \texttt{compose.yml} sur le \href{https://git.unistra.fr/jagermasters/gyokeres-deploy-assistance}{repo Git d'aide au déploiement}.
+
+Rangez-le dans le dossier de votre choix, puis lancez le Nginx Proxy Manager (NPM) via :
+
+\begin{lstlisting}[language=bash]
+docker compose up -d
+\end{lstlisting}
+
+Dans le même répertoire que votre \texttt{compose.yml}, créez un fichier \texttt{nginx.conf}. Dedans, configurez les redirections et les communications nécessaires au bon fonctionnement de l'application.
+
+Ajoutez votre propre nom de domaine pointant vers l'adresse IP de votre serveur.
+
+\emph{Les noms de domaine demandés peuvent être votre IP (si vous ne voulez pas de nom de domaine), ou un nom acheté (OVH, Cloudflare, etc.).}
+
+Si vous possédez une IP publique, vous pouvez demander à Nginx la création d'un certificat SSL, via :
+
+\begin{lstlisting}[language=bash]
+certbot --nginx -d <nom-de-domaine>
+\end{lstlisting}
+
+Ajoutez ensuite les certificats SSL dans votre \texttt{nginx.conf}, en ajoutant l'option \texttt{ssl} à côté du \texttt{listen} :
+
+\begin{lstlisting}
+ssl_certificate /etc/letsencrypt/live/<nom-de-domaine>/fullchain.pem;
+ssl_certificate_key /etc/letsencrypt/live/<nom-de-domaine>/privkey.pem;
+\end{lstlisting}
+
+\subsubsection*{Exemple de configuration NGINX}
+
+\begin{lstlisting}
+events {}
+
+http {
+    server {
+        listen 443 ssl;
+        server_name <nom-de-domaine>;
+
+        ssl_certificate /etc/letsencrypt/live/<nom-de-domaine>/fullchain.pem;
+        ssl_certificate_key /etc/letsencrypt/live/<nom-de-domaine>/privkey.pem;
+
+        location /api {
+            proxy_pass http://api-prod:3000/api;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
+
+        location / {
+            proxy_pass http://web:8080/;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
+    }
+
+    server {
+        listen 80;
+        server_name <nom-de-domaine>;
+        return 301 https://$host$request_uri;
+    }
+}
+\end{lstlisting}
+
+\subsection{Sécurité réseau}
+
+Exemple dans le fichier \texttt{docker-compose.prod.yml} de l'API :
+
+\begin{lstlisting}
+backend:
+  container_name: ${API_PROD_CONTAINER_NAME}
+  build:
+    context: .
+    dockerfile: Dockerfile
+  ports:
+    - '127.0.0.1:5555:5555'
+  environment:
+    - DATABASE_URL=${DATABASE_URL}
+    - API_PORT=${API_PORT}
+  depends_on:
+    - db
+  networks:
+    - the_all_knowing
+\end{lstlisting}
+
+\subsection{Initialisation du projet}
+
+Installez \texttt{dos2unix} via :
+
+\begin{lstlisting}[language=bash]
+sudo apt install dos2unix
+\end{lstlisting}
+
+Puis :
+
+\begin{lstlisting}[language=bash]
+# Partie web
+./init.sh
+
+# Partie API
+./init.sh prod
+\end{lstlisting}
+
+Pour vérifier les conteneurs :
+
+\begin{lstlisting}[language=bash]
+docker ps
+\end{lstlisting}
+
+\subsection{Dépannage, troubleshooting}
+
+\textbf{Conteneurs qui ne démarrent pas} :
+
+\begin{itemize}
+    \item Vérifiez les logs : \texttt{docker-compose logs -f}
+    \item Vérifiez les ports : \texttt{netstat -tulnp | grep LISTEN}
+    \item Docker installé ?
+\end{itemize}
+
+\textbf{Problèmes de permissions} :
+
+\begin{lstlisting}[language=bash]
+sudo usermod -aG docker $USER
+# puis deconnexion / reconnexion
+\end{lstlisting}
+
+\section{Prise en main}
+
+\subsection{Outils de déploiement}
+
+Absence de procédure d'installation initiale. Reprise des \texttt{docker-compose} existants. Ajout d’un proxy et d’une simplification de la gestion d’environnement.
+
+\subsection{Technologies}
+
+API basée sur des technos comme \texttt{Prisma}, \texttt{Express}, \texttt{JWT}, etc. Maintenance facilitée.
+
+\subsection{Ancien protocole}
+
+Voir l'annexe \ref{annexe:ancien-protocole} pour une procédure de déploiement initiale issue du dépôt \textit{Gyokeres Deploy Assistance}.
+
+\section{Problèmes}
+
+\subsection{Techniques}
+
+\begin{itemize}
+    \item Déconnexion aléatoire des quiz (socket cassée)
+    \item QR code envoie vers \texttt{localhost}
+    \item CI/CD : contrôle du lint et tests provoquent inlassablement des erreurs (qualité de code trop mauvaise et/ou tests unitaires et d'intégrations ne passent pas)
+    \item BDD effacée à chaque redémarrage
+\end{itemize}
+
+\subsection{UI/UX}
+
+\begin{itemize}
+    \item Pas de responsive
+    \item Sign-up sans message explicite
+    \item Modale native sans style CSS
+\end{itemize}
+
+\subsection{Contenu}
+
+\begin{itemize}
+    \item Logo sous licence
+    \item Pas de gestion des médias
+\end{itemize}
+
+\subsection{Divers}
+
+\begin{itemize}
+    \item Note technique la plus élevée des groupes, mais manque de plusieurs fonctionnalitées essentielles ? 
+\end{itemize}
+
+\section{Interactions inter-équipes}
+
+Deux groupes sont venus nous redemander un petit topo sur mon ancien projet, \textbf{Kwizos}, car la doc n'était pas à jour par manque de temps. Je leur ai fourni des instructions simplifiées et à jour (non pushées pour rester dans la logique du RP) expliquant comment j'avais réussi à déployer le projet.
+
+Un groupe est revenu me voir quelque temps plus tard, car les instructions étaient erronées... Sauf qu'en discutant plus longuement avec eux, j'ai bien vu que les membres :
+
+\begin{itemize}
+    \item n'ont soit pas lu les instructions, préférant \textit{re}-demander des choses déjà dites dans une doc pourtant concise (car l'ancienne doc était aussi trop longue selon eux) ;
+    \item ont choisi une branche aléatoire pour déployer (pourquoi ?) ;
+    \item revenaient me voir pour me demander si telle ou telle feature était en place, pour que je leur indique que "oui, comme c'est visible dans l'interface", avant de voir qu'ils n'ont même pas essayé de lancer... ;
+    \item me demandaient pourquoi il n'y a pas de script pour lancer facilement l'application entière (ex : un \verb|init.sh|), alors que nous avons suivi la logique de \verb|docker-compose|, qui le fait déjà à votre place en une seule commande simple, à la fois dispo sur notre doc, sur la documentation officielle (et ayant été vue en cours si on sort du RP).
+\end{itemize}
+
+En tant que membre ayant écrit plus de 60\% du projet \textit{Kwizos by The Sevens}, j'ai bien conscience que certaines fonctionnalités sont instables... Contrairement au déploiement, qui a fonctionné sur plusieurs machines différentes au fil du projet, de manière efficace, puisque nous avons dû changer trois fois d'hébergement de serveur (j'ai même dû le remanier plusieurs fois pour pouvoir le lancer sur ma propre petite Raspberry Pi).
+
+Je suis juste surpris par les bruits de couloir, les groupes qui râlent sans demander d'indications pour autant, et je m'inquiète du manque d'interaction avec les membres de \textit{The Sevens} alors que \textbf{tous} devraient être disponibles pour répondre aux questions, \textbf{pas seulement moi}.
+
+Enfin, et cette fois pour être plus taquin, je précise que le groupe qui nous a le plus critiqués de face, en tout bien tout honneur, a lui aussi des problèmes avec son ancien projet (aucune documentation, script modifiant les configurations Docker bloquant des projets pourtant indépendants, non-respect de beaucoup de conventions vues en cours et présentes en entreprise, ...). Or là, nous et les autres groupes ayant récupérés le projet essayent et réussissent à déployer !
+
+\begin{flushright}
+-- Samuel
+\end{flushright}
+
+On n'est pas venu me demander d'aide pour déployer mon ancienne application (\textit{Mogula}). On a plutôt demandé à Mathieu Ackermann, qui s'est occupé intégralement du déploiement en collaboration avec Louis Schlegel.
+
+\begin{flushright}
+-- Eliott
+\end{flushright}
+
+
+\section{Configuration de Docker}
+
+Le script de lancement du groupe \textit{Gyokeres} apporte une configuration spécifique à Docker tout en \textbf{"forçant"} l'utilisateur à être sur une machine Linux.
+
+Autant la deuxième anomalie est réglable en précisant une image Docker basée sur Linux (ex : les versions \textit{Alpine} des images X ou Y), autant la première a perturbé le projet d'alternance et provoqué plusieurs heures de debug sur un projet qui n'avait pourtant rien à voir...
+
+\section{FAQ}
+
+\begin{itemize}
+    \item \textbf{Procédure existante ?} Non, mais devinable.
+    \item \textbf{À jour ?} Scripts fonctionnels mais améliorables.
+    \item \textbf{Modifiée ?} Oui, vers Docker Compose.
+    \item \textbf{Technos changées ?} Nginx ajouté.
+    \item \textbf{Troubleshooting fourni ?} Non.
+    \item \textbf{Difficultés ?} Oui, API pointait vers serveur fermé.
+    \item \textbf{CI/CD ?} Fonctionnel après modifications :
+    \begin{itemize}
+        \item Variables utilisateurs/IP à rendre dynamiques
+        \item Lancement limité à branche \texttt{main}
+    \end{itemize}
+\end{itemize}
+
+\newpage
+\appendix
+
+\section{Protocole de déploiement initial}
+\label{annexe:ancien-protocole}
+
+Ce guide fournit des instructions sur comment déployer et exécuter les différents composants du projet Gyokeres.
+
+\subsection{Prérequis}
+
+Si vous êtes sur Linux, installez \texttt{dos2unix} via \texttt{apt}, \texttt{yay} ou votre gestionnaire de paquets préféré.
+
+Installez Docker Engine (avec Docker Compose) en suivant les instructions officielles : \url{https://docs.docker.com/engine/install/}
+
+Assurez-vous de disposer des autorisations nécessaires pour exécuter des commandes Docker. En cas d’erreurs :
+
+\begin{lstlisting}[language=bash]
+sudo usermod -aG docker $USER
+\end{lstlisting}
+
+\subsection{API}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Exécutez le script d’initialisation :
+\begin{lstlisting}[language=bash]
+./init.sh
+\end{lstlisting}
+\end{enumerate}
+
+\subsubsection*{Notes}
+
+\begin{itemize}
+    \item Relancer \texttt{init.sh} réinitialise les conteneurs (y compris la BDD)
+    \item Pour une persistance des données, montez un volume Docker
+    \item PgAdmin est disponible, mais nécessite une configuration spécifique
+\end{itemize}
+
+\subsection{Application Mobile}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Installez les dépendances :
+\begin{lstlisting}[language=bash]
+npm install
+\end{lstlisting}
+    \item Lancez le serveur de développement :
+\begin{lstlisting}[language=bash]
+npm run start
+\end{lstlisting}
+\end{enumerate}
+
+\subsubsection*{Compilation Android en local}
+
+\begin{enumerate}
+    \item Suivez les instructions de cette vidéo : \url{https://www.youtube.com/watch?v=4TjRX90XpEM}
+    \item Compilez :
+\begin{lstlisting}[language=bash]
+eas build --android --local
+\end{lstlisting}
+\end{enumerate}
+
+\subsection{Application Web}
+
+\subsubsection*{Déploiement}
+
+\begin{enumerate}
+    \item Exécutez le script :
+\begin{lstlisting}[language=bash]
+./init.sh
+\end{lstlisting}
+    \item Accédez à l'application via :
+\begin{lstlisting}
+http://130.79.214.170:8080/home
+\end{lstlisting}
+\end{enumerate}
+
+\subsection{Recommandations de déploiement}
+
+\begin{itemize}
+    \item \textbf{Documentation} : étoffer la doc avec instructions claires
+    \item \textbf{Configuration Docker} :
+    \begin{itemize}
+        \item Utiliser des Dockerfiles pour fiabilité et portabilité
+        \item Meilleure gestion des erreurs et données persistantes
+    \end{itemize}
+    \item \textbf{Structure du dépôt} : actuelle = dépôts séparés selon l’organisation initiale
+\end{itemize}
+
+\subsection{Configuration du serveur}
+
+Pour préparer un serveur Proxmox :
+
+\begin{enumerate}
+    \item Se connecter via VPN, puis :
+\begin{lstlisting}[language=bash]
+ssh sae61-jager@130.79.214.170
+# ou, en root :
+ssh sae61-jagermasters@130.79.214.170
+\end{lstlisting}
+
+    \item (Éventuel) Ajouter l'utilisateur aux sudoers :
+\begin{lstlisting}[language=bash]
+sudo usermod -aG sudo sae61-jager
+\end{lstlisting}
+
+    \item \href{https://docs.docker.com/engine/install/debian/#install-using-the-repository}{Installer Docker sur Debian (documentation officielle)}
+\end{enumerate}
+
+
+\end{document}