Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Page peoples
Bug1:
Quand on crée un user depuis l'onglet "People", après l'avoir crée, on est redirigé sur la page People, il n'y a pas le name du user dans la carte du user, et ensuite quand on l'ouvre il n'y a pas le Name du user pré-rempli au niveau du champs Name du formulaire d'update du User
Résolution:
Cela est lié au fait que dans le backend, le schema du body de la requête POST /user, diverge du schema mongoose que l'on a pour les User de notre bdd. Nous essayons d'enregistrer en bdd le champs username alors que l'on a le champs name dans le schema mongoose, il y a également le champs role que l'on envoie dans la requête et qui n'est pas au niveau de notre schéma mongoose.
Bug2:
Quand on update un user depuis l'onglet People après avoir cliqué sur une carte de user, quand on clique sur le bouton update, il n'y a pas d'appel API donc le bouton ne marche pas
Résolution:
Il y avait un onChange au lieu d'un onClick on niveau du bouton update dans le front
Bug7:
Depuis le formulaire d'edit user je ne peux pas edit mon name
Résolution:
ajouté le onChange au niveau du champs
Page Projects
Bug3:
TypeError bug qui bloque l'application quand on clique sur le nouveau projet crée
Résolution:
On faisait un find au lieu d'un findOne dans le backend sur le project, du coup le front end buggué car il traitait une liste d'objet au lieu d'un objet
Page Activities
Bug4:
Bug sur les activités, quand on séléctionne un projet dans les filtres, puis qu'on séléctionne "All projects" après on a un TypeError qui bloque le front + le filtre par projet ne marche pas
Résolution:
On ne filtrait pas les activité par rapport à leur projectName dans le front
Bug5:
Quand on delete une ligne ça ne se refresh pas, et il y a un message front "delete undefined"
Résolution:
Je set les activities sans celle supprimée et j'affiche le activity.projectName dans le message et non pas le activity.project
Général
Bug6:
Depuis l'icone en haut à gauche/My account, je ne peux pas update mon mail
Résolution:
ajouté le onChange au niveau du champs
Bug8:
Bug généraux, de redirection après l'update d'un user, après l'update de notre status, surement après la création d'un projet
Résoltuion:
Ajouté un window.reload à un endroit et set State
Pour ce qui est de la feature ajoutée ->
J'ai décidé d'ajouter un système de paiement, car je trouve ça super intéressant pour l'entreprise qui utilisera le saas de pouvoir payer directement ses employés/freelances depuis la plateforme.
J'ai donc rajouté un bouton "Pay for selected month" au niveau des heures travaillées des employés sur la page projet.
J'ai décidé de placer le bouton ici car c'était simple pour moi (contrainte de temps due au test) mais aussi car c'est cohérent avec l'UI/UX.
J'ai réalisé que le frontend de cette feature, qui développé de A à Z serait bien plus compliqué que ce que j'ai fait, pour pouvoir faire fonctionner pleinement cette feature il faudrait que l'entreprise qui utilise le Saas ajoute son token API STRIPE, et le bouton "Send Payment" enverrait une requête API à notre backend, qui recalculerai la somme à payer à l'employé sur le mois donné, et enverrai cette somme depuis le compte stripe de l'utilisateur du Saas, au compte de l'employé/freelance
Il faudrait donc aussi également que l'employé/freelance puisse entrer ses coordonnées bancaire à un endroit sur l'application.
Pour ce qui est des feedbacks ->
Globalement ça allait, car je n'ai pas trop eu de mal à comprendre, ce qui est bon signe car pour moi l'onboarding rapide d'un nouveau développeur est significatif d'une plutôt bonne qualité de code
MAIS:
Côté Frontend:
Pas typescript, c'est dommage
Je n'aime pas la façon dont le CSS est géré, j'aurais plus utilisé une librairie comme styled-component, il y a quand même des noms de classe bien bien long là
Certaines choses étonantes dans les map, filter
Certains import pas utilisés
Certaines images pas utilisés
Appels APIs bien géré dans le front, simple et efficace d'avoir crée une classe api
Gestion des modals aurait pu être mieux faites, j'ai vu un { open === i un moment dans le code, un peu bizarre
J'ai vu un { true && ( component, bizarre aussi
Côté Backend:
Pas typescript, c'est dommage
Pas de validateur sur les routes APIs
Dates pas très bien géré sur la route des activities, c'est pas très clair, il y a peut être un bug que j'ai pas eu le temps de régler en 2h d'ailleurs ici
Pas de tests sur les routes (après y a pas vraiment de code sensible là c'est pas très grave, quoique sur les activities ça aurait bien mérité quelques tests)
Globalement plutôt bien organisé, le code pourrait quand même évoluer sans trop de problème si on reste rigoureux sur cette organisation
Pas de système d'alerting comme sentry ou bugsnag quand il y a une erreur