# Site Uniksim (Old)

Information sur tout ce qui concerne le site web de uniksim. Principalement pour l'équipe de développement.

# Note uniksimWeb

##### <span style="text-decoration: underline;">Les versions utilisées sur le site :</span>

- Node.js v.22.5.1
- Angular v.18.2.11 (FrontEnd)
- NestJs v.11.0.11 (BackEnd)

Angular / NodeJs compatibilité : [Lien](https://stackoverflow.com/questions/60248452/is-there-a-compatibility-list-for-angular-angular-cli-and-node-js)

<table border="1" id="bkmrk-changer-de-version-a" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">Changer de version avec nvm (Node Version Manager) : `nvm use *<em>version</em>`

Voir la liste sur nvm (Node Version Manager) : `nvm list`

Voir les packages outdated : `npm outdated`

Mettre à jour les packages (classique) : `npm update` \*cela update redis!

Mettre à jour les packages (avec npm-check-updates) : `npx npm-check-updates -u` \*cela update redis!

</td></tr></tbody></table>

<table border="1" id="bkmrk-node-version-%3A-node-" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">Node version : `node -v`

Angular version : `ng version`

NestJs version : `nest --version`

\*npm-check-updates (backendEnd) : `npx npm-check-updates`

<p class="callout info">Note : Le fichier package.json possède toutes les versions</p>

<p class="callout info">Note : Ne pas oublier de faire un `npm install` dans backendEnd et frontEnd</p>

</td></tr></tbody></table>

##### <span style="text-decoration: underline;">Les imports importants NestJs :</span>

<div id="bkmrk-typeormmodule-%3A-comm"><div><div>- TypeOrmModule : Communication et conversion des données avec la mySql (Query)
- <div><div>DatabaseProviders : Connection avec mySql</div></div>
- Guard : Authentification et accès
- MailGun : Système de messagerie
- Generate Password TS : Système de génération de mot de passe (mot de passe oublié)

</div></div></div>Pour plus de détails voir : **app.module.ts** ou **package.json**

##### <span style="text-decoration: underline;">Les roles :</span>

<div id="bkmrk-user%3A-permission-de-"><div><div>- user: 
    - Permission de jouer (Games uniquement)
- user\_uniksim: 
    - Permission d'accès au site
    - Permission de jouer
- admin\_user: 
    - Permission d'accès au site
    - Permission de jouer
    - Permission avec accès limité à la page admin
- admin: 
    - Toute permission

</div></div></div>\*note: Il existe un role superAdmin, mais cela n'est pas vraiment utilisé...

##### <span style="text-decoration: underline;">DigitalOcean (Update branch) :</span>

Si vous avez accès à DigitalOcean, vous pouvez faire des changements sur le site en version live\* (Principalement pour des updates en Git)

*\*Ici "live" peut-être un site de développement avec un domain, pas forcément le vrai site*

*\*\*n'oublie pas de builder vos channgements avant d'update! (frontend surtout)*

<div id="bkmrk-dans-la-section%2C-dro">1. Dans la section, ****Droplets****, puis le dossier du site en question ![](https://wiki.uniksim.com/uploads/images/gallery/2024-08-Aug/scaled-840-0/image-1723218630153.png)
2. Ensuite dans ****Console****![](https://wiki.uniksim.com/uploads/images/gallery/2024-08-Aug/scaled-840-0/image-1723218747353.png)
    
    
    - Vous devriez voir une console en linux pour faire les modifications
3. Naviguer à travers les fichiers pour trouver le dossier recherché ![](https://wiki.uniksim.com/uploads/images/gallery/2024-08-Aug/scaled-840-0/image-1723218954045.png)
    
    
    - Note 1: Les commandes git se font généralement sur le fichier source (Dans ce cas **sim.uniksim.com**)
    - Note 2: Durant un `npm install` sur la console de Droplet, il faudrait ajouter `--legacy-peer-deps` à la fin. (la version de Droplet est plus récente) 
        - Note 2.1: Un `npm audit fix` pourrait être intéressant pour fix les soucis de package conflict. \[Autre Solution Non recommandé\] Pour être aussi `npm audit fix --force`, cependant ceci risque de brisser des packages.
    - Note 3: Il se peut que le dossier source **root** n'est pas le dossier recherché, puisque votre **username** de base de donnée (database) n'est pas le même. ![](https://wiki.uniksim.com/uploads/images/gallery/2024-08-Aug/scaled-840-0/image-1723220094918.png)
        
        
        - Faire la commande suivante si c'est le cas (**forge** fait référence au **username**, changer selon le cas) 
            - <p class="callout info">su - forge</p>
4. Utiliser les commandes nécessaire à vos changements 
    - Remettre à l'état d'origine le dossier 
        - <p class="callout info align-left">git reset .</p>
        - <p class="callout info">git reset --hard</p>
            
            
            - `git reset --hard` risque de nécessiter `origin/master` comme paramètre
    - Récupérer la branch commit  
        
        - <p class="callout info align-left">git pull</p>
    - Aller vers la branche 
        - <p class="callout info align-left">git checkout</p>
    - Voir l'état de la branche actuel 
        - <p class="callout info align-left">git status</p>
    - Similaire à reset, elle permet de retirer les dossiers non nécessaires 
        - <p class="callout info align-left">git clean -fd</p>
5. Faire `cd uniksim-back-end`, puis faire `npm run build` pour appliquer les changements
6. (optionnel) Faire `npm run start` pour lancer le site. \*n'oublie de faire de même pour admin\_server si nécessaire

</div>##### <span style="text-decoration: underline;">Cookieyes :</span>

Url : [https://app.cookieyes.com/](https://app.cookieyes.com/)

Script url : [https://cdn-cookieyes.com/client\_data/b08568c123e8efb0b38c9ce6/script.js](https://cdn-cookieyes.com/client_data/b08568c123e8efb0b38c9ce6/script.js)

##### <span style="text-decoration: underline;">Build :</span>

- Pour les build, utiliser la commande **Build Frontend project**![](https://wiki.uniksim.com/uploads/images/gallery/2024-08-Aug/scaled-840-0/image-1723139133125.png)
    
    
    - Si cela n'est pas possible, utiliser la commande ci-dessous dans un terminal (dans le dossier uniksimFrontEnd)

<p class="callout info">ng build</p>

- Vous devriez avoir créer un build nommer **Front** dans le dossier ****uniksim-back-end****![](https://wiki.uniksim.com/uploads/images/gallery/2024-08-Aug/scaled-840-0/image-1723139458662.png)
- Par la suite **ServeStaticModule** (Permet de rendre le build static et disponible pour le serveur) va pourvoir recréer ce dossier à l'intérieur de **dist**, lorsque le serveur sera en marche.
- Note: le fichier **nest-cli.json** est important pour importer tous les fichiers du dossier **front** généré. Spécifiquement la ligne : `{ "include": "front/**/*"}`  
    ![](https://wiki.uniksim.com/uploads/images/gallery/2024-08-Aug/scaled-840-0/image-1723139953468.png)
- Note: si vous changez unity build (ex: Build.data.unityweb), s'assurer de mettre la même version dans ****constantsVariable****![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737392002764.png)

##### <span style="text-decoration: underline;">Notes :</span>

- Dans **database.providers.ts**, "synchronize" permet de faire en sorte que les entitées de node.js (typeOrm) sont créer ou modifier sur Sql. Il est donc préférable de le laisser **false**
- Si vous voulez augmenter la taille maximum pour le phpmyadmin suivre ce post: <p class="callout info">[https://stackoverflow.com/questions/3958615/import-file-size-limit-in-phpmyadmin](https://stackoverflow.com/questions/3958615/import-file-size-limit-in-phpmyadmin "https://stackoverflow.com/questions/3958615/import-file-size-limit-in-phpmyadmin")</p>
- La commande pour envoyer le serveur backend en local (il faut bien sûr "cd" dans le bon dossier) :  
    <p class="callout info">npm run start</p>
    
    
    - Version en live/demo :  
        <p class="callout info">npm run start:live</p>
        
        
        - Cette commande nécessite le build `npm run build`

- - Celui du frontend est :  
        <p class="callout info">ng serve</p>

- Pour debug le code du frontend (Angular), il faudra utiliser l'inspecteur du navigateur (Dans source)
- Accès au SQL : [https://db.uniksim.com/phpmyadmin/sql.php?server=1&amp;db=uniksim&amp;table=constants&amp;pos=0](https://db.uniksim.com/phpmyadmin/sql.php?server=1&db=uniksim&table=constants&pos=0 "https://db.uniksim.com/phpmyadmin/sql.php?server=1&db=uniksim&table=constants&pos=0")
- La commande pour lancer admin\_server (après su- forge) :  
    <p class="callout info">node sim.dev.uniksim.com/uniksim-back-end/src/node.js/server/admin\_server.js</p>
    
    
    - Il est possible d'ajouter un paramètre : `node admin_server.js dev`

##### <span style="text-decoration: underline;">Problèmes :</span>

- Si les modifications appliqués sur le dossier **server** ne sont pas appliqués, vous avez probablement compilé le script sur "dist/../"
- Si vous avez un problème de **ENOENT: no such file or directory, scandir** sur le serveur dev (sim.dev.uniksim), il y a probablement un problème de version dans les packages. Une solution serait de refaire les fichiers non tracés par git (supprimer et installer)
- Si vous avez cette erreur sur la console DigitalOcean ![](https://wiki.uniksim.com/uploads/images/gallery/2025-03-Mar/scaled-840-0/image-1741108107949.png)
    
    
    - Faite `sudo lsof -i :3000` pour trouver le node en cours
    - `~hFHs>!SLx3)d4Yc_HbQ` si nécessaire
    - Puis `kill -9 <PID>` pour le terminer
    - Refaire votre commande

##### <span style="text-decoration: underline;">Les références de création :</span>

- Site de NestJs : [https://docs.nestjs.com/first-steps](https://docs.nestjs.com/first-steps)
- Site de compatibilité de version Angular/Node : [https://v17.angular.io/guide/versions](https://v17.angular.io/guide/versions)
- Léger tread de discussion sur les version NestJs/Node : [https://stackoverflow.com/questions/77160198/how-to-find-supported-node-js-version-for-nest-js](https://stackoverflow.com/questions/77160198/how-to-find-supported-node-js-version-for-nest-js)
- Configuration de NestJs/MySQL (phpMyAdmin) : [https://blog.stackademic.com/connecting-nestjs-to-mysql-a-step-by-step-guide-ab4086baf918](https://blog.stackademic.com/connecting-nestjs-to-mysql-a-step-by-step-guide-ab4086baf918)
    - Other alternative : [https://medium.com/@yatin.kumar07/integrate-nestjs-with-typeorm-and-mysql-68ad4c10f6ff](https://medium.com/@yatin.kumar07/integrate-nestjs-with-typeorm-and-mysql-68ad4c10f6ff)
- Configuration de NestJs : [https://medium.com/@anteprocess/%EF%B8%8Fnestjs-for-beginners-part-1-overview-and-project-setup-launch-33dc7d8071e9](https://medium.com/@anteprocess/%EF%B8%8Fnestjs-for-beginners-part-1-overview-and-project-setup-launch-33dc7d8071e9)
- Imports of node.js (Javascript files) : [https://medium.com/@eladk/moving-from-javascript-to-typescript-lifehacks-e29d7e1aa3e0](https://medium.com/@eladk/moving-from-javascript-to-typescript-lifehacks-e29d7e1aa3e0)
- Decoration pour les expressions Sql : [https://typeorm.io/decorator-reference#column-decorators](https://typeorm.io/decorator-reference#column-decorators)
- Typeorm wiki (NestJs/Sql data communication) : [https://orkhan.gitbook.io/typeorm/docs/find-options](https://orkhan.gitbook.io/typeorm/docs/find-options)
- Debugger for NestJs : [https://dev.to/gentax/nestjs-right-settings-for-debugging-kl0](https://dev.to/gentax/nestjs-right-settings-for-debugging-kl0)
- bCrypt détailes post : [https://stackoverflow.com/questions/15733196/where-2x-prefix-are-used-in-bcrypt/36225192#36225192](https://stackoverflow.com/questions/15733196/where-2x-prefix-are-used-in-bcrypt/36225192#36225192)
- TypeOrm relations (Many-to-one / one-to-many): [https://github.com/typeorm/typeorm/blob/master/docs/many-to-one-one-to-many-relations.md](https://github.com/typeorm/typeorm/blob/master/docs/many-to-one-one-to-many-relations.md)
- Simple Unity/Angular intégration : [https://medium.com/@6386391ritesh/unity-webgl-in-angular-686397677500](https://medium.com/@6386391ritesh/unity-webgl-in-angular-686397677500)
- Build le projet Angular à l'intérieur de Nestjs : [https://medium.com/codeshake/deploy-an-angular-nestjs-app-to-heroku-807a2833d88c](https://medium.com/codeshake/deploy-an-angular-nestjs-app-to-heroku-807a2833d88c)
- SSE notification : [https://medium.com/@andrewkoliaka/implementing-server-sent-events-in-angular-a5e40617cb78](https://medium.com/@andrewkoliaka/implementing-server-sent-events-in-angular-a5e40617cb78)
- Erreur commun pour nvm lorsqu'il refuse de changer de version :[ https://stackoverflow.com/questions/47017812/nvm-use-does-not-switch-node-versions](https://stackoverflow.com/questions/47017812/nvm-use-does-not-switch-node-versions)

# Update/Deploy dans Angular (old)

##### Faire un déployement sur Angular pour Admin (old)

Tous les étapes se font sur Visual Studio Code

<span style="text-decoration: underline;">1) Se déplacer au bon dossier :</span>

- - Avec la command suivante

<p class="callout info">cd {uniksim}/frontend/angular</p>

<span style="text-decoration: underline;">2) Build Angular :</span>

- - Avec la command suivante

<p class="callout info">ng build</p>

<span style="text-decoration: underline;">3) Modifier le **angular.blade.php :**</span>

<p class="callout info">Situé à {uniksim}/resources/views/angular.blade.php</p>

- - Remplacer les balises **html**, **head** et ****base****![](https://wiki.uniksim.com/uploads/images/gallery/2024-05-May/scaled-840-0/image-1716558025848.png)
        
        ![](https://wiki.uniksim.com/uploads/images/gallery/2024-05-May/scaled-840-0/image-1716558113610.png)

<table border="1" id="bkmrk-%40extends%28%27layouts.ap" style="border-collapse: collapse; width: 41.9753%; height: 178px;"><tbody><tr><td style="width: 100%;">@extends('layouts.app')

@section('title')  
{{ trans('uniksim.title\_main') }}  
@stop

@section('applink')

@stop

@section('content')

</td></tr></tbody></table>

- - Remplacer les balises **body** et ****html****![](https://wiki.uniksim.com/uploads/images/gallery/2024-05-May/scaled-840-0/image-1716558305747.png)
        
        ![](https://wiki.uniksim.com/uploads/images/gallery/2024-05-May/scaled-840-0/image-1716558681839.png)

<table border="1" id="bkmrk-%40endsection" style="border-collapse: collapse; width: 42.716%;"><tbody><tr><td style="width: 100%;">@endsection

</td></tr></tbody></table>

- - Retirer la balise ouvrante **body** et la balise fermante **head**

# Debug en Web frontEnd

Avant de commencer assurer vous d'être en *localhost:4200* (à moins qu'il a était changé), car :

- *localhost:4200* utilise le dossier <span style="text-decoration: underline;">frontEnd</span> et <span style="text-decoration: underline;">backEnd</span> (source)
- *localhost:3000* utilise uniquement le <span style="text-decoration: underline;">backEnd</span> (source) et la <span style="text-decoration: underline;">version build du frontEnd</span>

De plus, ce tutoriel va modifier la connexion à titre d'exemple

1. Activer le site sous **Launch Frontend and Backend (dev)**![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737987681718.png)
2. Vérifier que tout soit en marche : 
    1. Sur le <span style="text-decoration: underline;">frontEnd</span> vous devriez avoir ![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737987924592.png)
    2. Sur le <u>backend </u>vous devriez avoir (les messages peuvent varier d'ordre) ![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737987937603.png)
3. Ouvrir une session localhost:4200 web ![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737988787389.png)
4. Sous Sources­­&gt;Page&gt;webpack://&gt;login&gt;login.component.ts ![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737988840380.png)
5. Mettre des points d'arrêts sur la requête attendu ![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737989003122.png)
    
    ![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737989034392.png)
6. Envoyer la requête, vous devriez commencé à débugger ![](https://wiki.uniksim.com/uploads/images/gallery/2025-01-Jan/scaled-840-0/image-1737989203516.png)

Note: Tous les changements sont sauvegarder automatiquement sur le site local. Si vous avez un doute, faite un changement et sauvegarder. La page devrait se rafraîchir tout seul (s'il n'est pas en debuggeur actuellement). Cependant, le backend est indépendant du frontEnd, donc il faudrait attendre quelque seconde avant d'envoyer la requête (regarder la console pour voir l'état)

# Test de fonctionnalité complète

<span style="color: #000000;">\*note: Les tests ci-dessous sont déjà dans un ordre pour simplifier les tests. Cependant, beaucoup de déconnexions seront requises</span>

#### <span style="text-decoration: underline;">Fonctionnalité - Cas d'utilisateur normal</span>

<table border="1" class="align-left" id="bkmrk-signin-%3A-bouton-pour" style="width: 100%; border-collapse: collapse; border-style: ridge; height: 1623px;"><tbody><tr><td style="width: 50%;">##### Register :

Vérifier que le bouton ***Créer un compte enseignant*** fonctionne, suite aux étapes de création

Vérifier aussi <span style="color: #ff0000;">les cas d'échecs</span>

- Mauvaises informations
- Cases vides
- Mot de passe ou courriel différente
- Décocher l'accord
- Retirer le nom précédamment entré
- Créer un compte existant

<span style="color: #333333;">Ceci devrait créer *un token* (dans LocalStorage)</span>

<span style="color: #000000;">\*note: Si ceci est fait sur le site *Live* ou *Dev*, veuillez l'ajouter sur </span>*<span style="color: #000000;">Compte test - Création de compte </span>*<span style="color: #000000;">(Se trouvant sur le *Wiki*) </span><span style="color: #000000;">et les supprimer par la suite serait pertinent</span>

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749564535687.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749564724487.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749571223553.png)

</td></tr><tr style="height: 151px;"><td style="width: 50%; height: 151px;">##### L'ajout de produit :

Vérifier que l'ajout de code d'activation fonctionne bien. Ceci devrait ajouter un ou des produits sur la liste en conséquence

Vérifier aussi <span style="color: #ff0000;">les cas d'échecs</span>

- Mauvais code
- Code existant

<span style="color: #000000;">\*note: Un test de ressources et de simulation démo seront vu ci-dessous. Ajouter un produit enseignant à cet étape serait pratique pour vous</span>

</td><td style="width: 50%; height: 151px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749563047889.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749564099162.png)

</td></tr><tr><td style="width: 50%;">##### Jouer à la simulation :

Vérifier que les produits fonctionnent bien en cliquant dessus. Ceci inclus:

- Professeur
- Étudiant - En Démo
- Professeur - En Démo
- Étudiant

<span style="color: #000000;">Ceci devrait Créer un *token* <span style="color: #333333;">(dans Cookies) lors de l'ouverture, puis il</span></span><span style="color: #000000;"> devrait supprimer *le token* <span style="color: #333333;">(dans Cookies) lorsqu'il appuie sur ***Sauvegarder et quitter***</span></span>

<span style="color: #000000;">\*note: Le bouton <span style="color: #333333;">***Sauvegarder et quitter*** ferme votre connexion</span></span>

<span style="color: #000000;"><span style="color: #333333;">\*\*note: Il n'est pas nécessaire d'approfondir l'utilisation de la simulation. Juste pouvoir l'ouvrir est suffisant. Quelques fonctionnalités seront testées avec le rôle en ***True Admin*** plus bas</span></span>

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749564099162.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749565951344.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749571112793.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749571517295.png)

</td></tr><tr style="height: 306px;"><td style="width: 50%; height: 306px;">##### La liste des produits :

Vérifier que tous les produits sont bien présents. Faites particulièrement attention à l'ajout de *Démo*

</td><td style="width: 50%; height: 306px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749562704138.png)

</td></tr><tr><td style="width: 50%;">##### L'affichage des ressources :

Vérifier que le bouton ***Ressources*** fonctionne et que ses liens fonctionnent aussi

Vérifier également les options offertes :

- Copier/Coller
- Les documents téléchargeables
- Les changements des icônes dépendant des cas

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749568884060.png)

</td></tr><tr style="height: 167px;"><td style="width: 50%; height: 167px;">##### Les liens externes :

Vérifier que tous les liens en bas de page se dirigent bien sur les informations pertinentes

</td><td style="width: 50%; height: 167px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749563156390.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749747778376.png)

</td></tr><tr style="height: 133px;"><td style="width: 50%; height: 133px;">##### Bouton d'accueil :

Vérifier que le bouton ***Uniksim essaie, joue, apprends*** se dirige vers l'accueil des produits

</td><td style="width: 50%; height: 133px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749563481011.png)

</td></tr><tr style="height: 116px;"><td style="width: 50%; height: 116px;">##### Vérifier que tous les options sont présents :

Vérifier que les options sont actives pour un utilisateur régulier: ***Mes Simulations*** et ***Se déconnecter***

</td><td style="width: 50%; height: 116px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749565025441.png)

</td></tr><tr><td style="width: 50%;">##### Changement de language :

Vérifier que l'option de changement de langue fonctionne bien

Ceci devrait aussi garder la même langue après une déconnexion et un reconnexion

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749564285498.png)

</td></tr><tr style="height: 363px;"><td style="width: 50%; height: 363px;">##### SignOff :

Vérifier que le bouton ***Se déconnecter*** se dirige bien vers la page d'accueil

Ceci devrait supprimer *le token* (dans LocalStorage)

</td><td style="width: 50%; height: 363px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749565018088.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749563965558.png)

</td></tr><tr><td style="width: 50%;">##### Page Mot de passe oublié :

Vérifier que le changement de mot de passe fonctionne bien

\*note: Un email valide sera requis

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749743858508.png)

</td></tr><tr><td style="width: 50%;">##### SignIn :

Vérifier que le bouton pour ***Se connecter*** à l'accueil du site se dirige bien à la page produit (Require: *Courriel* et *Mot de pass*)

Vérifier aussi <span style="color: #ff0000;">les cas d'échecs</span>

- Mauvaises informations

Ceci devrait créer *un token* <span style="color: #333333;">(dans LocalStorage)</span>

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749562300722.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749571216540.png)

</td></tr><tr><td style="width: 50%;">##### SignIn (chenLogin) :

Vérifier que l'ajout du lien chenLogin va directement dans une simulation

ceci requiert un compte *i+* et de pouvoir avoir un moyen de copier le lien (Cependant si vous êtes assez rapide, vous pouvez récupérer le lien directement en copiant/collant le lien 🐻)

\*uniquement la partie du code d'activation est intéressante

<span style="text-decoration: underline;">exemple de code d'activation: </span>

<p class="callout info">chenlogin?expiration=1749565644&amp;isbn=N782765065364&amp;userEmail=uniksim@gmail.com&amp;userFirstName=Nicolas&amp;userLastName=Babin&amp;expirationLicence=2043-08-31&amp;token=d29ca9f591d017fe4e9eba7c3de9318430603d7bee7e78022e1f0a77c1404a7f</p>

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749565337890.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749565448134.png)

</td></tr><tr><td style="width: 50%;">##### Les boutons de retour :

Vérifier que tous les boutons de retour de la page d'accueil fonctionnent bel et bien

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749565532582.png)

</td></tr><tr><td style="width: 50%;">##### Les cookies :

Vérifier que les cookies (provenant de cookieYes) fonctionnent bel et bien

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749565739026.png)

</td></tr></tbody></table>

####  

#### <span style="text-decoration: underline;">Fonctionnalité - Cas d'utilisateur admin</span>

<p class="callout info"><span style="text-decoration: underline;">Compte déjà existant</span>  
  
Courriel: <comptetestadmin01@gmail.com>  
Mot de passe: E4Vx&lt;52  
  
<span style="text-decoration: underline;">Autre</span>  
Web (admin\_user) | user : 31957  
  
\*note: Ce compte test uniquement le cas de *Uqam*</p>

<table border="1" id="bkmrk-le-r%C3%B4le-de-l%27utilis" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">##### Le rôle de l'utilisateur :

Vérifier que le rôle est affiché en <span style="color: #0000ff;">bleu </span>sur le nom de l'utilisateur

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749566351843.png)

</td></tr><tr><td style="width: 50%;">##### Vérifier que tous les options sont présents :

Vérifier que les options sont actives pour un utilisateur admin: ***Mes Simulations***, ***Admin*** et ***Se déconnecter***

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749566412204.png)

</td></tr><tr><td style="width: 50%;">##### La page admin :

Vérifier que seulement une partie de la page admin est affichée. Ceci inclus:

- Le bouton de ***Se connecter***
- Pouvoir voir uniquement les enseignants et les étudiants de l'école respective
- Pouvoir jouer en tant que la personne

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749566489253.png)

</td></tr><tr><td style="width: 50%;">##### La page admin (filtre) :

Vérifier que tous les filtres fonctionnes

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749566489253.png)

</td></tr><tr><td style="width: 50%;">##### Changement de language :

Vérifier que l'option de changement de langue fonctionne bien

Ceci devrait aussi garder la même langue après une déconnexion et un reconnexion

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749566937483.png)

</td></tr></tbody></table>

####  

#### <span style="text-decoration: underline;">Fonctionnalité - Cas d'utilisateur true admin</span>

<table border="1" id="bkmrk-%C2%A0-%C2%A0" style="border-collapse: collapse; width: 100%; height: 3476px;"><tbody><tr style="height: 116px;"><td style="width: 50%; height: 116px;">##### Le rôle de l'utilisateur :

Vérifier que le rôle est affiché en <span style="color: #ff6600;">orange</span> sur le nom de l'utilisateur

</td><td style="width: 50%; height: 116px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749567424207.png)

</td></tr><tr style="height: 232px;"><td style="width: 50%; height: 232px;">##### La désactivation de produit :

Vérifier que la suppression de produit sous ![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749567278536.png)et ***Désactivé*** se fait bien

Ceci devrait uniquement rendre le produit non actif

</td><td style="width: 50%; height: 232px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749567169594.png)

</td></tr><tr style="height: 285px;"><td style="width: 50%; height: 285px;">##### La page admin :

Vérifier que tous les options sont disponible. Cela inlus :

- Le bouton de ***Se connecter*** (*Game*, *Alpha* et *Demo*)
- Prendre le courriel de jeu de la personne
- Pouvoir ***Renouveler*** son *GameOid*
- Pouvoir voir tous les utilisateurs
- Pouvoir jouer en tant que la personne

</td><td style="width: 50%; height: 285px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749567544181.png)

</td></tr><tr style="height: 442px;"><td style="width: 50%; height: 442px;">##### La page user :

Vérifier que tous les informations sont présentés. Cela **<span style="text-decoration: underline;">peut</span>** inclure :

- À Propos (Toujours)
- Tous les Simulations
- Tous les Teams étudiants
- Options

Vérifier aussi <span style="color: #ff0000;">les cas d'échecs </span>(si possible)

- Server down
- Pas d'information

\*note: Il est nécessaire de tester ce cas sur plusieurs utilisateurs différents, car ils ont chacun des cas distincts

<span style="color: #ff00ff;"><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;">Requis:</span></span> Brainlcloud</span>

</td><td style="width: 50%; height: 442px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749572135073.png)

</td></tr><tr style="height: 593px;"><td style="width: 50%; height: 593px;">##### La page user (Tous les teams étudiants) :

Vérifier que l'élément est bien chargé après un clic

Vérifier aussi <span style="color: #ff0000;">les cas d'échecs </span>(si possible)

- Server down

<span style="color: #ff00ff;"><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;">Requis:</span></span> Brainlcloud</span>

</td><td style="width: 50%; height: 593px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749576569419.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749576666774.png)

</td></tr><tr style="height: 298px;"><td style="width: 50%; height: 298px;">##### La page user (Options) :

Vérifier que le copySim fonctionne bien sur différents cas

- Étudiant =­&gt; Live à Dev
- Prof =&gt; Live à Dev
- Prof =&gt; Dev à Dev2
- Un utilisateur qui n'a pas de simulation copiée
- etc.

Vérifier aussi <span style="color: #ff0000;">les cas d'échecs </span>(si possible)

- Server down

<span style="color: #ff00ff;"><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;">Requis:</span></span> Brainlcloud</span>

</td><td style="width: 50%; height: 298px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749576710084.png)

</td></tr><tr style="height: 265px;"><td style="width: 50%; height: 265px;">##### Jouer à la simulation :

Vérifier que les simulations sont disponibles pour être lancées sur différentes *Braincloud*. Ceci inclus :

- Live
- Alpha
- Demo

<span style="color: #000000;"><span style="color: #333333;">\*note: Il n'est pas nécessaire d'approfondir l'utilisation du jeu. Juste pouvoir l'ouvrir est suffisant.</span></span>

</td><td style="width: 50%; height: 265px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749744466674.png)

</td></tr><tr style="height: 313px;"><td style="width: 50%; height: 313px;">##### La page commentaire :

Vérifier que le filtre et les informations sont disponibles

Vérifier aussi <span style="color: #ff0000;">les cas d'échecs </span>(si possible)

- Server down

<span style="color: #ff00ff;"><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;">Requis:</span></span> Brainlcloud</span>

</td><td style="width: 50%; height: 313px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749577093856.png)

</td></tr><tr style="height: 317px;"><td style="width: 50%; height: 317px;">##### La page actives :

Vérifier que le filtre et les informations sont disponibles

Vérifier aussi <span style="color: #ff0000;">les cas d'échecs </span>(si possible)

- Server down

<span style="color: #ff00ff;"><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;">Requis:</span></span> Brainlcloud</span>

</td><td style="width: 50%; height: 317px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749577152445.png)

</td></tr><tr style="height: 284px;"><td style="width: 50%; height: 284px;">##### La page paramètre :

Vérifier l'ajout d'un nouveau code produit. (Préférablement un code professeur)

\*Cela inclut l'activation du produit

\*note: Chaque ajout de code de produit se fait immédiatement créer sur le SQL. Veuillez créer des codes avec modération pour ne pas surcharger le SQL de code produit.

</td><td style="width: 50%; height: 284px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1751984218007.png)

</td></tr><tr style="height: 331px;"><td style="width: 50%; height: 331px;">##### Options de changement de serveur :

Vérifier que le changement de serveur *Braincloud* se fait bien. Pour cela, il sera nécessaire de refaire toutes les étapes qui requièrent <span style="color: #ff00ff;">Brainlcloud</span>

Ceci devrait créer *un currentBraincloud* <span style="color: #333333;">(dans LocalStorage)</span>

<span style="color: #000000;">\*note: Certaines données ne pourront pas être disponibles, puisque l'affichage de la liste est selon la base de données de *Live*</span>

</td><td style="width: 50%; height: 331px;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749577195455.png)

</td></tr></tbody></table>

####  

#### <span style="text-decoration: underline;">Fonctionnalité - Cas d'utilisateur true admin (Unity)</span>

<p class="callout info">Il faudra se connecter en tant qu'un utilisateur ***Alpha***</p>

<table border="1" id="bkmrk-%C2%A0-%C2%A0-0" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">##### Téléchargement Excel :

Vérifier que le téléchargement d'Excel fonctionne bien

\*note: Les données peuvent ne pas s'afficher directement. Activer les modifications

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749737609548.png)

![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749744831550.png)

</td></tr><tr><td style="width: 50%;">##### Classement détaillé :

Vérifier que l'onglet ***Classement détaillé*** fonctionne bien sur toutes les sélections

\*note: Il serait nécessaire de vérifier sur plusieurs simulations si certaines données ne sont pas disponibles

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749737797746.png)

</td></tr><tr><td style="width: 50%;">##### Téléchargement PDF :

Vérifier que le téléchargement de PDF fonctionne bien

\*note: Il serait recommandé de vérifier sur plusieurs *pièces justificatives*

</td><td style="width: 50%;">![](https://wiki.uniksim.com/uploads/images/gallery/2025-06-Jun/scaled-840-0/image-1749738192085.png)

</td></tr></tbody></table>

# Compte test - Création de compte

#### <span style="text-decoration: underline;">Liste de tous les comptes créé pour tester la création de compte</span>

<table border="1" id="bkmrk-email-password-test1" style="border-collapse: collapse; width: 100%; height: 198px;"><tbody><tr style="height: 68px;"><td style="width: 50%; height: 68px;">##### Email

</td><td style="width: 50%; height: 68px;">##### Password

</td></tr><tr style="height: 31px;"><td style="width: 50%; height: 31px;">test1234@gmail.com</td><td style="width: 50%; height: 31px;">`J8,1r6f5z`\\</td></tr><tr style="height: 37px;"><td style="width: 50%; height: 37px;"><test123@gmail.com></td><td style="width: 50%; height: 37px;"> </td></tr><tr style="height: 31px;"><td style="width: 50%; height: 31px;">test546.uniksim@gmail.com</td><td style="width: 50%; height: 31px;">9\*H0wi}N5Mh9</td></tr><tr style="height: 31px;"><td style="width: 50%; height: 31px;">test123456@gmail.com</td><td style="width: 50%; height: 31px;">9\*H0wi}N5Mh9</td></tr><tr><td style="width: 50%;">test12345@test.com</td><td style="width: 50%;"> </td></tr><tr><td style="width: 50%;">ll.uniksim.test987@gmail.com</td><td style="width: 50%;">8q7Z34sw3\[\]j</td></tr><tr><td style="width: 50%;">test555@test.com</td><td style="width: 50%;">@d\*44V$"u:94</td></tr><tr><td style="width: 50%;">fahira8491@2insp.com</td><td style="width: 50%;">vm9fuZvk5GML9aH3bbmT</td></tr><tr><td style="width: 50%;">UrsusTempMailToTest123456@account.xn--yaho-sqa.com</td><td style="width: 50%;"> @testpasword</td></tr></tbody></table>

# Local database (PHPMyAdmin) - Conflict

##### <span style="text-decoration: underline;">Local database (PHPMyAdmin) - Conflict</span>

- Si vous avez une erreur comme ci-dessous avec **XAMPP**, suivez les fixs de cette vidéo : [https://www.youtube.com/watch?v=OEUVth2Av48](https://www.youtube.com/watch?v=OEUVth2Av48) (Généralement, le dossier backup fix l'erreur "0:41")![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1751550601975.png)
- Si vous avez cette erreur en utilisant XAMPP :  
    ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1751550666487.png)
    
    
    - Faire une suppression de toute Cookies et de LocalStorage
- Si vous ne trouvez pas l'option **drop database** ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1751550794173.png)
    
    
    - Suivre les méthode de ce lien : [https://stackoverflow.com/questions/4410630/phpmyadmin-enable-drop-database-statement](https://stackoverflow.com/questions/4410630/phpmyadmin-enable-drop-database-statement)
        - En bref: Ajouter `$cfg['AllowUserDropDatabase'] = true;` dans *phpMyAdmin(config.inc.php)* sous XAMPP (Ceci se trouve dans Apache­&gt;Config)

# Build Unity en local

##### <span style="text-decoration: underline;">Note:</span>

Avant de commencer, vérifiez que votre **Unity** est bien mis en place (aucun crash, aucune erreur, stable, etc.) puisque le *Build* prend du temps (en moyenne 5-7 minutes, dépendamment de l'ordinateur).

<span style="color: #999999;">*<sub>Ignorer cette étape si votre ordinateur fait partie des top 1 pour build 🚀</sub>*</span>

##### <span style="text-decoration: underline;">Unity:</span>

1. Avec les touches `CTRL + SHIFT + B`, vous devez avoir les paramètres suivants sur Unity ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752175559515.png)
2. Regarder la version de votre **Unity** dans le fichier `version.txt` (situé à "Assets/Ressources/data/version.txt"). ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752175858581.png)
    
    ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752175870921.png)
3. Changer la version du build dans la version locale du backend en web (Dans le fichier `constantsVariable.js`).
    
    ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752176028370.png)
    
    
    - Changer : `LOCAL_WEBGL_VERSION: {votre version}`
4. Changer la version du build dans la version locale du database (Situé dans constants)
    
    ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752176314611.png)
5. Une fois le build de Unity terminé, mettre les fichiers du build dans le frontend (Dans le dossier `uniksimFrontEnd\src\assets\unity\Build`) ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752176698497.png)
    
    ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752176715817.png)
    
    
    - Il est important que les fichiers soit les mêmes (Type et nom)
    - Il est aussi possible de modifier les fichiers du backend directement dans front, mais il n'est pas recommandé de le faire sachant qu'un build du frontend écrasera le build et que les versions seront erronées.
6. Faire un build du frontend ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752176841740.png)
7. Tester 🥳

##### <span style="text-decoration: underline;">Erreurs courantes:</span>

- Si vous avez : ![](https://wiki.uniksim.com/uploads/images/gallery/2025-07-Jul/scaled-840-0/image-1752176374182.png)
    
    
    - Une des versions de votre build (en backend ou en database) ne correspond pas. Veuillez revoir les étapes 3 et 4.