Site Uniksim

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

Note uniksimWeb

Les versions utilisées sur le site :
  • Node.js v.22.5.1
  • Angular v.18.2.11 (FrontEnd)
  • NestJs v.11.0.11 (BackEnd)

Angular / NodeJs compatibilité : Lien

Changer de version avec nvm (Node Version Manager) : nvm use *version

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!

Node version : node -v

Angular version : ng version

NestJs version : nest --version

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

 

Note : Le fichier package.json possède toutes les versions

Note : Ne pas oublier de faire un npm install dans backendEnd et frontEnd

Les imports importants NestJs :
  • TypeOrmModule : Communication et conversion des données avec la mySql (Query)
  • DatabaseProviders : Connection avec mySql
  • 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é)

Pour plus de détails voir : app.module.ts ou package.json

Les roles :
  • 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

*note: Il existe un role superAdmin, mais cela n'est pas vraiment utilisé...

DigitalOcean (Update branch) :

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)

  1. Dans la section, Droplets, puis le dossier du site en question

  2. Ensuite dans Console

    • Vous devriez voir une console en linux pour faire les modifications
  3. Naviguer à travers les fichiers pour trouver le dossier recherché

    • 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.

      • Faire la commande suivante si c'est le cas (forge fait référence au username, changer selon le cas)
        • su - forge

  4. Utiliser les commandes nécessaire à vos changements
    • Remettre à l'état d'origine le dossier
      • git reset .

      • git reset --hard

        • git reset --hard risque de nécessiter origin/master comme paramètre
    • Récupérer la branch commit
      • git pull

    • Aller vers la branche
      • git checkout

    • Voir l'état de la branche actuel
      • git status

    • Similaire à reset, elle permet de retirer les dossiers non nécessaires
      • git clean -fd

  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
Cookieyes :

Url : https://app.cookieyes.com/

Script url : https://cdn-cookieyes.com/client_data/b08568c123e8efb0b38c9ce6/script.js

Build :
  • Pour les build, utiliser la commande Build Frontend project

    • Si cela n'est pas possible, utiliser la commande ci-dessous dans un terminal (dans le dossier uniksimFrontEnd)

ng build

  • Vous devriez avoir créer un build nommer Front dans le dossier uniksim-back-end

  • 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/**/*"}

  • Note: si vous changez unity build (ex: Build.data.unityweb), s'assurer de mettre la même version dans constantsVariable

Notes :
  • 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:

    https://stackoverflow.com/questions/3958615/import-file-size-limit-in-phpmyadmin

  • La commande pour envoyer le serveur backend en local (il faut bien sûr "cd" dans le bon dossier) :

    npm run start

    • Version en live/demo :

      npm run start:live

      • Cette commande nécessite le build npm run build
    • Celui du frontend est :

      ng serve

Problèmes :
  • 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

    • 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
Les références de création :

Update/Deploy dans Angular (old)

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

Tous les étapes se font sur Visual Studio Code

1) Se déplacer au bon dossier :

    • Avec la command suivante

cd {uniksim}/frontend/angular

2) Build Angular :

    • Avec la command suivante

ng build

3) Modifier le angular.blade.php :

Situé à {uniksim}/resources/views/angular.blade.php

    • Remplacer les balises html, head et base

@extends('layouts.app')

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

@section('applink')

@stop

@section('content')

    • Remplacer les balises body et html

@endsection

    • 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 frontEnd et backEnd (source)
  • localhost:3000 utilise uniquement le backEnd (source) et la version build du frontEnd

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

  1. Activer le site sous Launch Frontend and Backend (dev)

  2. Vérifier que tout soit en marche :
    1. Sur le frontEnd vous devriez avoir

    2. Sur le backend vous devriez avoir (les messages peuvent varier d'ordre)

  3.  

    Ouvrir une session localhost:4200 web

  4. Sous Sources­­>Page>webpack://>login>login.component.ts

  5. Mettre des points d'arrêts sur la requête attendu

  6. Envoyer la requête, vous devriez commencé à débugger

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

*note: Les tests ci-dessous sont déjà dans un ordre pour simplifier les tests. Cependant, beaucoup de déconnexions seront requises

Fonctionnalité - Cas d'utilisateur normal

Register :

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

 

Vérifier aussi les cas d'échecs

  • 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

Ceci devrait créer un token (dans LocalStorage)

 

*note: Si ceci est fait sur le site Live ou Dev, veuillez l'ajouter sur Compte test - Création de compte (Se trouvant sur le Wiki) et les supprimer par la suite serait pertinent

 

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 les cas d'échecs

  • Mauvais code
  • Code existant

 

*note: Un test de ressources et de simulation démo seront vu ci-dessous. Ajouter un produit enseignant à cet étape serait pratique pour vous

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

Ceci devrait Créer un token (dans Cookies) lors de l'ouverture, puis il devrait supprimer le token (dans Cookies) lorsqu'il appuie sur Sauvegarder et quitter

 

*note: Le bouton Sauvegarder et quitter ferme votre connexion

 

**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

 

La liste des produits :

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

 

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

 

Les liens externes :

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

 

Bouton d'accueil :

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

 

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

 

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

 

SignOff :

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

 

Ceci devrait supprimer le token (dans LocalStorage)

 

Page Mot de passe oublié :

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

 

*note: Un email valide sera requis

 

 

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 les cas d'échecs

  • Mauvaises informations

Ceci devrait créer un token (dans LocalStorage)

 

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

 

exemple de code d'activation:

chenlogin?expiration=1749565644&isbn=N782765065364&userEmail=uniksim@gmail.com&userFirstName=Nicolas&userLastName=Babin&expirationLicence=2043-08-31&token=d29ca9f591d017fe4e9eba7c3de9318430603d7bee7e78022e1f0a77c1404a7f

 

Les boutons de retour :

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

 

Les cookies :

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

 

 

Fonctionnalité - Cas d'utilisateur admin

Compte déjà existant

Courriel: comptetestadmin01@gmail.com
Mot de passe: E4Vx<52

Autre
Web (admin_user) | user : 31957

*note: Ce compte test uniquement le cas de Uqam

Le rôle de l'utilisateur :

Vérifier que le rôle est affiché en bleu sur le nom de l'utilisateur

 

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

 

 

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

 

 

La page admin (filtre) :

Vérifier que tous les filtres fonctionnes

 

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

 

 

Fonctionnalité - Cas d'utilisateur true admin

Le rôle de l'utilisateur :

Vérifier que le rôle est affiché en orange sur le nom de l'utilisateur

 

La désactivation de produit :

Vérifier que la suppression de produit sous et Désactivé se fait bien

 

Ceci devrait uniquement rendre le produit non actif

 

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

 

La page user :

Vérifier que tous les informations sont présentés. Cela peut inclure :

 

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

Vérifier aussi les cas d'échecs (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

 

Requis: Brainlcloud

 

La page user (Tous les teams étudiants) :

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

 

Vérifier aussi les cas d'échecs (si possible)

  • Server down

Requis: Brainlcloud

 

La page user (Options) :

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

  • Étudiant =­> Live à Dev
  • Prof => Live à Dev
  • Prof => Dev à Dev2
  • Un utilisateur qui n'a pas de simulation copiée
  • etc.

Vérifier aussi les cas d'échecs (si possible)

  • Server down

Requis: Brainlcloud

 

Jouer à la simulation :

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

  • Live
  • Alpha
  • Demo

*note: Il n'est pas nécessaire d'approfondir l'utilisation du jeu. Juste pouvoir l'ouvrir est suffisant.

 

La page commentaire :

Vérifier que le filtre et les informations sont disponibles

 

Vérifier aussi les cas d'échecs (si possible)

  • Server down

Requis: Brainlcloud

 

La page actives :

Vérifier que le filtre et les informations sont disponibles

 

Vérifier aussi les cas d'échecs (si possible)

  • Server down

Requis: Brainlcloud

 

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.

 

 

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 Brainlcloud

 

Ceci devrait créer un currentBraincloud (dans LocalStorage)

 

*note: Certaines données ne pourront pas être disponibles, puisque l'affichage de la liste est selon la base de données de Live

 

 

Fonctionnalité - Cas d'utilisateur true admin (Unity)

Il faudra se connecter en tant qu'un utilisateur Alpha

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

 

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

 

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

 

Compte test - Création de compte

Liste de tous les comptes créé pour tester la création de compte

Email
Password
test1234@gmail.com `J8,1r6f5z`\
test123@gmail.com  
test546.uniksim@gmail.com 9*H0wi}N5Mh9
test123456@gmail.com 9*H0wi}N5Mh9
test12345@test.com  
ll.uniksim.test987@gmail.com 8q7Z34sw3[]j
test555@test.com @d*44V$"u:94
fahira8491@2insp.com vm9fuZvk5GML9aH3bbmT
UrsusTempMailToTest123456@account.xn--yaho-sqa.com  @testpasword

Local database (PHPMyAdmin) - Conflict

Local database (PHPMyAdmin) - Conflict

Build Unity en local

Note:

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).

Ignorer cette étape si votre ordinateur fait partie des top 1 pour build 🚀

Unity:
  1. Avec les touches CTRL + SHIFT + B, vous devez avoir les paramètres suivants sur Unity

  2. Regarder la version de votre Unity dans le fichier version.txt (situé à "Assets/Ressources/data/version.txt").

  3. Changer la version du build dans la version locale du backend en web (Dans le fichier constantsVariable.js).

    • Changer : LOCAL_WEBGL_VERSION: {votre version}
  4. Changer la version du build dans la version locale du database (Situé dans constants)

  5. Une fois le build de Unity terminé, mettre les fichiers du build dans le frontend (Dans le dossier uniksimFrontEnd\src\assets\unity\Build)

    • 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

  7. Tester 🥳
Erreurs courantes:
  • Si vous avez :

    • Une des versions de votre build (en backend ou en database) ne correspond pas. Veuillez revoir les étapes 3 et 4.