Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bugs before product presentation #2

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

CharlesTouret
Copy link

@CharlesTouret CharlesTouret commented Oct 8, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant