-
Notifications
You must be signed in to change notification settings - Fork 1
Journal de travail
Steve Mendes Reis edited this page Jul 29, 2021
·
75 revisions
- Ajout de commentaires dans le code
- Nettoyage du code produit
- Rapport
- Adaptation des nouvelles routes Swagger
- Documentation rapport
- Mise en place d'un discord pour les utilisateurs de Caravel
- Poster A3
- Ajout de référence dans la page about
- Fix miss spell
- Fixes
- Bug impossible de setter une réponse dans une question
- Chargement du plugin mavonEditor local et non plus global
- Passage de Laravel en mode production
- Ajout d'une about page
- Les questions et réactions seront caché si la tâche est privée
- Ajout footer
- Nettoyage et organisation des dossiers
- Fix demande de permissions pour les notifications
- Fix placeholder dans le login
- Fixes
- Nombre de question dans les tasklists (ils n'apparaissent plus)
- Lors de changement de groupe, les tasks n'étaient pas à jour)
- Case sensitive routes
- Search filter
- Affichage de la création d'un sujet même s'il n'y pas de texte dans l'input sujet
- Refactor du subject modal pour utiliser les promesses
- Ajout confirmation suppression d'un sujet
- Ajout d'un hint pour le bouton privé
- Modification de la licence de GSTC après mise à jour du domaine
- Ajout de la recherche de groupe dans le header
- Cleaning
- Modification couleur btn réaction
- Fix de l'upload de l'avatar du à la nouvelle authentification (XSRF token)
- Nettoyage des restes de Blade issue de la première version de Caravel
- Ajout de traduction pour certains champs spécifiques
- Optimisation pour le chargement PWA (lighthouse)
- Fix page de chargement bloquée
- Séance avec MM. Grunenwald et Wohlfahrt
- Discussion sur les statisques
- Enlever les grilles des graphes
- Ajout d'un lien entre la sparkline et les stats
- Ajout d'un tooltip sur la sparkline
- Les tooltip sur les graphies ne devraient tenir compte que de l'axe des x avec un certain delta
- Discussion sur les statisques
- Fixes
- Group en softdelete
- 404 replace à la place du push
- Correction fail XSS sur le markdown
- Done calulating WES on frontend
- Add visual representation of WES in Calendar view
- Add WES' graph on stat tab
- Add visual representation (Gantt - GSTC)
- Working on calculating work load in the frontend to have real time data
- Calculation of workload
- Added cron on backend to calculate every week
- User tests à St-Imier
- Séance avec MM. Grunenwald et Wohlfahrt
- Done markdown upload
- Add ctrl-c / ctrl-v support
- Fix max size file
- Add error field
- Add loading page
- Manage 404 errors
- Switch auth system to cookie based
- Ajout de l'historique sur les tâches (front et back)
- Fix case sensitive sur le searchEngine
- Fix Reactivity sur les tâches (utilisation de Vue.set(...)
- Fix comptage des réactions
- Début de travail sur le markdown (wip)
- Ajout d'icônes pour le pwa
- Ajout d'une modal de confirmation réutilisable pour les suppressions
- Refactor de la rechercher de groupe pour utiliser le SearchEngine
- Ajout indicateur groupe privé
- Fix notification system
- Ajout du chargement des pages (progressbar dans le top)
- Ajout home page basique
- Ajout meta data dans les groupes
- Ajout de protection sur les routes (redirect to login)
- ajout de redirection sur la page précédante (redirect dans l'url)
- Ajout de l'option "Terminer pour moi" back et front
- Ajout des observers pour les questions et commentaires
- Adaptation des fils de réponses
- Fix des réactions (problème de concurence)
- Fix problème de composant récursif sur la prod
- Fix des notifications
- Séance avec MM. Grunenwald et Wohlfahrt
- ordre antéchronologique
- fils de réponses
- Travail sur le frontend question/réponse
- Ajout du lien entre les réactions back-front
- Ajout du fallback pour l'auth
- Ajout des CRUD backend pour les questions et les commentaires
- Reactions CRUD backend
- Fix affichage des notifications
- Reactions visuel frontend
- Ajout des accès sans co-optage pour les profs
- Refactor des routes backend pour mettre les notifs comme lues afin de gérer plusieurs notifs en même temps
- Configuration du serveur pour l'utilisation de SSL
- Ajout certificat (let's encrypt)
- Changement route nginx
- ajout cacert.pem pour firebase
- Configuration paramètres spécifiques vuejs et laravel
- Ajout support PWA
- Ajout au niveau du backend de route pour enregistrer les tokens FCM
- Ajout de routes pour récupérer les notifications
- Ajout de routes pour marqué les notifications comme lues
- Enrôlement des tokens au niveau du front end
- Ajout des configurations spécifique pour FireBase
- Séance
- Pourquoi les membres ne sont pas en private dans les modules vuex : car sinon l'annotation MutationAction émet une erreur.
- Modification du lien en :to pour accepter le clique mollette
- Fix problème lors de la suppression d'une tâche
- Fix update search
- Ajout barre spécifique pour le header (quick search)
- Ajout du check des OUs paramétrables qui définissent les professeurs
- Configuration des paramètres pour le serveur
- Fix problème de déploiement (problème de droits)
- Fix problème de CSRF sur le serveur
- Création de la vue de recherche front-end
- refactoring des components input (SelectMember, SelectState, SelectSubject, SelectType) (pour réutilisation)
- Refactorisation des initials (création d'un filtre pour simplification et standardisation)
- Ajout d'un SearchEngine en backend inspiré de https://m.dotdev.co/writing-advanced-eloquent-search-query-filters-de8b6c2598db
- Création d'une interface pour les filtres
- Création des filtres Subject, Author généraliste
- Création de filtre spécifique pour les tasks (Text, Type, isOpen, isPrivate)
- Généralisation du search -> peut être utilisé avec n'importe quelle query
- Ajout de la vue mois/semaine/jour (v-calendar)
- Fix du start date (rules)
- Test LDAP (problème de connexion, tentative de débogage voir échange issue #238)
- Fix bug de déploiement (gestion des permissions, écrasement de la configuration)
- Ajout de filtres global pour Vuejs
- Fix date format dans l'API
- Ajout de la vue qui affiche une tâche
- Fix bug lorsqu'on supprime une tâche
- Suppression des erreurs sur les inputs lorsqu'ils changent
- Séance avec MM. Grunenwald et Wohlfahrt
- Evaluer le temps sur les modifications nécessaires pour le markdown
- Gérer les fichiers sur le long terme
- Travail sur le formulaire des tâches
- Ajout de notion d'id de tâche relatif au groupe (EDF : équipe de foot -> plusieurs équipe avec un joueur possédant le numéro 1)
- Fix problème de validation rule au niveau du backend sur le nom des sujets
- Ajout des fichiers de traductions pour Laravel (validation rules, etc...)
- Globalement fix des problèmes relatifs aux id utilisées dans les Request Rules
- Fix des seeders après changement en DB
- Ajout d'une page pour gérer les sujets
- Ajout de TinyColor pour gérer la couleur des polices sur les labels (calcul de la luminance pour déterminer si noir ou blanc)
- Ajout de notion firstname et lastname en DB (avant nous n'avions que le fullname)
- fix du bug i18n pour les tests unitaires voir référence1 et référence2
- Déploiement
- Configuration du serveur
- Installation de nginx
- Installation de php, composer, npm, mariadb-server
- Installation du runners github (en tant que service)
- Configuration de la DB
- Configuration de Nginx
- voir la page de déploiement pour plus de détails
- Configuration des github actions
- Reprise des yaml existants pour les test sur MySQL et SQLite avec Laravel
- Création d'un yaml pour le build/run de VueJS
- Création d'un yaml pour le déploiement sur le serveur
- Gestion de la configuration de l'environnement
- Gestion des uploads
- Configuration du serveur
- Ajout de l'éditeur markdown
- Tests sur la possibilité d'hack le markdown (documentation très pauvre mais le module est très utilisé https://github.com/hinesboy/mavonEditor 5k stars)
- Ajout de bouton custom
- hack sur le drag & drop
- Ajout de dépendance sur moment js pour la gestion des types date
- Ajout d'une Modal-component sujet réutilisable pour l'édition/ajout
- Ajout d'un component select (autocomplete) généraliste pour choisir un sujet et ou en créer
- Ajout du formulaire pour la création d'un tâche (WIP)
- Fix du language dans Vuetify
- Ajout d'une page home minimale
- Fix problème de save d'un sujet (mauvaise request dans laravel)
- Ajout de couleur en hex sur les sujets
- Ajout des tâches lors de la récupération d'un groupe
- Refactor des modules créées
- Laravel : Ajout de policies pour la promotion d'un membre
- Suppression des tables pivots des données reçu par l'API (inutile)
- Ajout de messages spécifiques (language) pour l'API (api.php)
- Fix Membres des groupes -> requête custom pour récupérer le status des membres par rapport au groupe
- Fix problème nommage des groupes
- Fix validation des formulaires du groupe (pas possible de changer le leader)
- Ajout des pages
- Membre du groupe
- Paramètres du groupe
- Requête ajout membre
- Fix problème de droit sur la promotion d'un membre en leader
- Création de modules de gestion des objects
- Un module par type (TaskModule, SubjectModule, etc...). Ces modules permettent la gestion centralisée des CRUDS (contact avec l'API) sur ces derniers.
- Une tentative a été faite pour généraliser le processus à tout type de données avec du templating (typescript), l'essaie se présente dans (src/store/modules/abstract/datas.ts) du l'incompatibilité de vuejs et de vuex (à traververs typescript via vuex-class), ce n'est pas possible (les Mutations ne sont pas accessibles aux enfants que ce soit en protected ou public)
- Un module par type (TaskModule, SubjectModule, etc...). Ces modules permettent la gestion centralisée des CRUDS (contact avec l'API) sur ces derniers.
- Factorisation du component Avatar + upload, réutilisation dans les settings du group et du profile
- Fix des uploads dans la partie backend (mauvaise utilisation du storage)
- Séance avec MM. Grunenwald et Wohlfahrt
- Enlever les mdp syncro ldap
- Déploiement
- User test
- Vuex utilisation de vuex module decorator
- Passage de vuex en class avec vuex module decorator
- Header group + tabs
- Vue création d'un groupe
- Vue Profile basique
- Fix picture back end
- Typescript problème de module
- Page de vue pour la recherche et la demande d'adhésion aux différents groupes
- Syncro des param dans l'url route
- Permet de récupérer une recherche via une url
- Travail sur une méthode +/- générique pour qu'elle puisse être utilisée
- Fix de bug sur le filtre des groupes du backend (passage par une query custom pour avoir des infos spécifique à la table de pivot)
- Ajout de pagination
- Création du composant "header" du site
- Gestion de la connexion/déconnexion
- Ajout de la persistance des données dans le localstorage (vuex-persist)
- Ajout du token sur toutes les requêtes axios
- Login terminé
- Ajout du user en plus du token au niveau du backend
- Problème d'import namespace
- Séance avec MM. Grunenwald, M'Poy et Wohlfahrt
- Ajout localisation vuejs
- Travail sur le login
- Migration des contrôleurs
- Ajout de Policy pour les autorisations
- Ajout générique FileUploadService
- Ajout de classe FormRequest (light controller)
- Prise en compte des commentaires de M. Visinand
- Ajout Localization au niveau du backend (message d'erreur)
- Migration des routes routes
- Init du projet frontend (vuejs)
- Remove socialite login
- Create docker openLDAP for local test
- Utilisation d'Apache Directory Studio
- Add LDAP authentitication
- Laravel Sanctum
- LdapRecord
- Sync with database
- Demander les informations de connections pour le ldap
- Création des fichiers de migrations pour la DB
- Ajustement de la DB
- Création des fichiers de modèle
- Ajustement du seeder
- Mockup : création des pages Calendrier, timeline et stat
- Séance avec MM. Grunenwald, M'Poy et Wohlfahrt
- Ajustement de la DB
- Tri des issues
- Ajout page Stratégie de test
- Création des mockups
- Group home page
- Task display page
- Formation Figma
- Demande licence Figma étudiant
- Rework API Swagger
- Ajout notion d'"action" dans la base de donnée
- Séance avec MM. GrunenWald, M'Poy et Wohlfahrt
- Discussion autour du design de l'API
- Revoir les routes, shrink au possible
- Définition des routes backend avec Swagger
- Séance avec MM. Grunenwald et Wohlfahrt
- Revue de la base de donnée
- Modification et précisions du système de notification
- Modification de la base de donnée suite à la séance
- Ajout des précisions sur la page wiki
- Modélisation de la base de donnée
- Séance avec MM. Grunenwald et Wohlfahrt
- Page about : noter les formules utilisées pour les calcules des métriques sur la charge de travail
- Gestion des statistiques : en features ++ --> pouvoir relier les stats d'une classe à une autre (via un paramètre dans le groupe d'une classe)
- Mail à M. Visinand concernant la gestion des clés primaires composites avec Laravel et Eloquent
- Création de la page "Gestion de la charge de travail" et première ébauche
- Création de la page "Gestion des notifications" et première ébauche
- Recherche associés sur PWA et Firebase
- Séance avec MM. Grunenwald et Wohlfahrt
- Etudier la possiblité de faire une introduction de l'application aux nouveaux utilisateurs
- "Tour guide" avec intro.js, https://shepherdjs.dev/ ou encore https://kamranahmed.info/driver.js/ (à voir aussi celui qui s'intègre le mieux avec VueJs)
- Créer une tâche par défaut qui contient dans la description des éléments d'utilisation de l'application (lors de la création d'un groupe)
- Notifications
- Voir les possibilités de PWA (android, iphone?)
- Possibilité de syncro les calendars avec Exchange
- Voir M. Laoun
- Système de réactions
- Les réactions seront anonymes sachant que connaitre l'utilisateur n'a pas de plus value, il faudra informer l'utilisateur que ce vote est anonyme
- Les utilisateurs pourront mettre plusieurs réactions pour permettre d'affiner la ou les problématiques rencontrées
- Faire attention au token d'authentification
- Pas de local Storage, Session Storage s'efface quand l'utilisateur se déconnecte
- Voir faisabilité : cookie header only
- Dans l'ensemble pas une priorité, les informations de Caravel n'étant pas sensible sur le principe
- Etudier la possiblité de faire une introduction de l'application aux nouveaux utilisateurs
- Description du système de réactions
- Recherche dans la littérature scientifique afin de comprendre les raisons d'un échec à terminer des devoirs
- Description des filtres de recherche
- Update Wiki Rôle et uses case
- Ajout du planning dans le wiki
- Séance avec MM. Grunenwald et Wohlfahrt
- Définir deux types de groupes :
- Groupe "classe" -> cooptation pour les élèves, les profs obtiennent l'accès directe (càd sans cooptage)
- Groupe privé -> cooptation pour tous
- Historique d'actions visibles par les membres du groupe
- Vue globale par classe avec les matières sous lesquelles on est abonné
- Définir deux types de groupes :
- Update de Rôles et usecases suite à la séance
- Ajout description des rôles
- Création des différents use cases
- Tâche
- Notification
- Sujet
- Fil de discussion
- Filtre
- Groupe
- Gestion des rôles modérateurs et administrateur
- Séance avec MM. Grunenwald et Wohlfahrt
- Présentation du Gantt re-travaillé
- Présentation test de Swagger avec Zest
- Validation du CdC
- Création mini POC Vuejs + TypeScript
- Lecture des articles pour l'inclusion de TypeScript sur vuejs 2
- Création du rapport sur word + mise en page initiale
- Formation sur Swagger
- Test de swagger sur un autre projet web (Zest) https://app.swaggerhub.com/apis-docs/M4n0x/Zest/ALPHA
- Séance avec MM. Grunenwald, M'Poy et Wohlfahrt
- Modification sur du planning (Gantt)
- Informations sur swagger
- Informations sur l'auth LDAP
- Discussion API Documentation
- Cahier des charges
- Planning (Gantt)
- Séance avec MM. GrunenWald et Wohlfahrt
- Recherche documentaire (Cours)
- Authentification
- LDAP
- voir Nicolas Sommer
- Détails technique sur les tokens voir Alex
- Clarification sur la gestion des rôles
- les profs seront des sortes de modérateurs
- Approvisionnement
- pas un grand intérêt, à mettre de côté pour le moment
- Présentation de Caravel au INF IIE3-a
- Ajout de la roadmap et réorganisation des points
- Séance avec MM. GrunenWald, M'Poy et Wohlfahrt
- Prise de connaissance du contexte
- Discussions de points divers
- Recherche sur l'état de l'art
- Ré-organisation du Git pour accueillir le TB
Caravel is a students project made @ HE-Arc, Neuchâtel.