GithubHelp home page GithubHelp logo

todo's Introduction

Projet ToDo

Principe

But du Projet

La ToDo list pemettra d'organiser ses idées facilement en offrant une manière ergonomique de gérer les tâches à venir.

Technologies utilisées

Back-end

  • Node.js
    • Express
    • Body-Parser
    • Joi
    • Lodash
    • Mongoose
    • String

Front-end

  • Vue.js

BD

  • MongoDB

Participants

  • Guillaume ROUSSEAU - Shenrak
  • Vincent GRANDIERE
  • Sami MAAROUF
  • François DAVID
  • Alexandre BUSATO

I - Spécifications fonctionnelles

A - User stories

En tant que :
  • Utilisateur
    • Je veux pouvoir organiser et hiérarchiser des idées/tâches au sein de blocs et sous blocs afin d’organiser mon travail
    • Je veux pouvoir indenter librement ces blocs afin d'apporter une classification efficace
    • Je veux pouvoir ajouter des effets de style aux caractères (Gras, souligné, Italique, police, taille, etc.) afin d’améliorer la lisibilité de ma To do list
    • Je veux pouvoir retrouver mes todolist après avoir fermé le navigateur (système d’authentification et de sauvegarde) afin de ne pas perdre le travail que j’ai fait.
    • Je veux pouvoir drag and drop des blocs afin de pouvoir basculer facilement des tâches d’une branche de ma todolist à une autre facilement.
    • Je veux pouvoir ajouter une tâche et modifier son contenu juste en cliquant dessus (sans passer par un formulaire) afin que l’outil soit plus rapide et facile à utiliser.
  • Chef de Projet
    • Je veux pouvoir avoir une visibilité claire sur un certain nombre de tâches successives à accomplir dans le but de pouvoir m’organiser efficacement avec mon équipe.
    • Je veux pouvoir créer un compte et m’authentifier sur le site, afin que je puisse choisir qui peut voir ma to-do-list.
    • Je veux pouvoir gérer les droits des personnes dont j’ai autorisé l’accès auparavant (droit d’écriture, de lecture) afin que tout le monde ne puisse pas modifier ce qui a été fait.
    • Je veux pouvoir avoir un historique des actions qui ont été faites dans ma todolist (par qui, quand et quoi).
  • Chef de Projet & Développeur
    • Je veux pouvoir noter le temps consacré à une tache et l'associer à cette tâche (après l’avoir finie).
    • Je veux pouvoir donner une valeur de temps à chacune des tâches de ma to-do-list pour gérer les priorités

Nombre de points totaux : 100

L'objectif ici va être de répartir 100 points qui représente notre temps restant pour le projet, ces points vont être à répartir entre les différentes user stories. Certaines user stories ne seront pas implémentés en raison d'un choix de quel feature coder en fonction du temps que celle ci prend

todo's People

Contributors

samimaarouf avatar vigrad avatar davidfrancois avatar

Watchers

James Cloos avatar Giom avatar  avatar  avatar  avatar

todo's Issues

Probleme sur master

Enfin mon premier push!... Sauf que j'ai oubliéde changé de branche, j'ai push sur master

Je sais pas si c'est à cause de ça, mais maintenant on a un dossier toDoApi et un ToDoApi. Je suis presque sur que c'était pas là avant, mais y'a quand même écrit que la derniere modif date de 5j donc je ne suis pas non plus sur à 100%.

Quand je pull je récupère que ToDoApi donc je peux pas résoudre le problème

Remarques finales

ToDo

Git

Utilisation un peu confuse des branches dans Git. Les commentaires des commits sont parfois redondants (e.g. 14 commits en séquence pour "add test travis"). Pensez à mettre des commentaires explicites pour vous y retrouver.

Vous avez laissé node_modules sur votre repo alors que je vous ai indiqué à deux reprises de l'enlever. Vous n'avez pas à stocker vos dépendances sur votre repository (sauf dans de très très rares cas) : on ne stocke que le code qui appartient au projet.

Documentation

Le README est inachevé, la première ligne indique ce à quoi il "devrait" ressembler. Les user-story sont assez complètes mais compte-tenu de ce qui a été présenté, quelle est la partie fonctionelle parmi cette liste ?

Vous avez bâclé le dossier de synthèse, c'est vraiment dommage. Pas une page de présentation ou un titre rappelant les membres de l'équipe, le projet et l'objet du document. C'est le document qui résume votre projet et que je lis en dernier. Vos retours sont intéressants, notamment la "trop bonne ambiance" qui a freiné votre progression. Pensez à argumenter les choix de technologies : pourquoi VueJS, pourquoi Mongo ?

Le contenu est de la synthèse est là, sans trop de fautes d'orthographe relevées, bon point, vous vous êtes relus. Il aurait mérité un peu plus de soin au niveau de la mise en forme

Code

Attention à faire le ménage dans votre code. Il subsiste pas mal de commentaires de "désactivation" de code (e.g. toDoFront/src/services/auth.js, toDoApi/app/models/user/statics.js ou encore toDoFront/src/components/lists/Task.vue#36). Bonne séparation entre les composants, les services et les vues côté front. On pourrait améliorer en faisant un dossier "view" avec les vues, afin de ne pas les avoir dans le dossier "components".

Bien d'avoir isolé chaque concept de l'application côté back (config / controllers / services / models). L'application respecte très bien les concepts du SRP. Chaque dossier est structuré de façon identique afin d'être exporté en une seule fois en agrégeant l'ensemble des fichiers.

Attention à utiliser des outils d'analyse statique de code, comme ESlint. Il est conseillé de toujours mettre les accolades autour des instructions de contrôle (if, for, etc.). Le fichier server.js devrait se trouver dans le dossier /app, à la racine car sans ça on ne voit pas très bien le point d'entrée lorsque l'on arrive dans le dossier app.

Tests

Les tests sont au final des tests d'intégration : il faut un serveur qui répond et ne sont pas très nombreux (7 !). Il y a un test unitaire qui est visiblement une duplication des autres tests (beaucoup de variable inutiles).

Conclusion

Equipe et projet intéressant : les ToDo sont souvent les applications exemples des frameworks, il n'est donc pas anodin de découvrir des technologies sur ce type de projet. Vous vous êtes un peu éparpillés lors de la réalisation du projet ce qui donne un aspect assez brouillon. Néanmoins, vous avez essayé la panoplie complète des outils que je suggérais (sans qu'aucun ne soit pleinement réussi) et malgré une application non fonctionnelle, il est bon de tester les outils.

Vous étiez un groupe très vivant et avec une bonne prise de parole. Attention toutefois à ne pas la monopoliser, vous étiez aussi le groupe le plus bruyant. Vos présentations étaient plutôt centrées sur le Javascript (l'ensemble de votre code) et avez tous, à tour de rôle, fait un bon tour d'horizon des outils utilisés.

Organisation des branches

Pour mieux organiser notre taff, je propose de diviser en 4 branches

  • Master
  • Develop
  • Front
  • Back

Inutile d'expliquer le rôle de Front et Back.

La branche Develop servirait à vérifier que le lien entre le front et le back marche correctement.
Quand tout marche, on push sur Master

Pour aller plus loin, on pourrait même penser à deux branches Dev-Back et Dev-Front mais c'est un peu too much...

Droits d'accès

Askip j'ai pas les droits de push, je veux bien participer mais là je suis outré

Repo (presque) vide

En dehors du code poussé sur l'autre repo, il n'y a rien excepté le README ici. Où sont les spécifications, le besoin, le front, le dossier de synthèse ?

Pensez à remplir vos noms dans le README et à expliquer un minimum de quoi il retourne.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.