Commit 63fd3246 authored by sunye's avatar sunye
Browse files

Update README

parent 1cecf68c
= GTD Server
[quote, Robert Sewell]
____
If Java had true garbage collection, most programs would delete themselves upon execution.
____
[quote, Unknown]
____
If it is not broken, don't fix it
____
[plantuml]
----
class Project {
name : String
}
class Task {
name : String
due : DateTime
}
class Idea
class Participant
class Tag
class User {
id : String
login : String
password : String
}
*GTD Server* est un serveur de projets qui suivent la méthode _Getting Things Done_,
où un projet est composé de tâches et les tâches sont associées à un contexte.
Dans le cadre de ce projet, vous allez contribuer au développement de ce logiciel.
Project -> "subprojects [*]" Project
Project *--> "[*]" Task
Project "[*]" -- "creator [1]" Participant
Project -- "participants [*]" Participant
Participant -> "*" Idea
Task *--> "[*]" Tags
----
== Préambule
== SCE Bank
Pour compiler et tester ce projet, vous aurez besoin des logiciels suivants:
SCE Bank est un logiciel de gestion de clients et comptes d'une banque.
Dans le cadre de ce projet, vous allez contribuer au développement de ce logiciel.
* Java Development Kit (JDK), version ≥ 11 (OpenJDK ou Oracle JDK)
* Apache Maven, version ≥ 3.6
== Préambule
Si vous utilisez les machines des salles de TPs dans le cadre de ce projet, vous devez utiliser le Java JDK *java-8-oracle*.
Vous pouvez changer le JDK utilisé dans un projet dans le menu "Project structure" > "Project" > "Project SDK".
== Communication
Avant de commencer le projet, connectez-vous au serveur https://mattermost.univ-nantes.fr[Mattermost] de l'Université,
en utilisant votre compte GitLab.
Avant de commencer le projet, connectez-vous au serveur Discord de l'UE (Software Construction and Evolution).
Ensuite, rejoignez l'équipe "Génie Logiciel", puis le canal "CEL" (Construction et Évolution de Logiciels).
Vous trouverez dans ce serveur la salle `#projet`, où seront discutées les qustions concernant le projet.
**Utilisez ce canal comme SEUL et UNIQUE moyen de communication avec les encadrants, pour toute question concernant le projet.**
== Organisation
Ce projet sera réalisé par groupe de 3 étudiants.
Ce projet sera réalisé par groupe de 4 étudiants.
Vous allez suivre le processus de maintenance vu en cours.
Pour rappel:
Commencez par préparer l'environnement de votre projet :
. Avant toutes choses, un membre du groupe doit créer un *"Fork"* du projet sur le serveur.
Pour ce faire, cliquez sur l'icône "Fork" (ou "Créer une divergence" en français) de la page du projet pour accéder au lien suivant: https://gitlab.univ-nantes.fr/naomod/sce/projet-2019/forks/new
Pour ce faire, cliquez sur l'icône "Fork" (ou "Créer une divergence" en français) de la page du projet pour accéder au lien suivant: https://gitlab.univ-nantes.fr/naomod/sce/projet-2020/forks/new
. Ajouter tous les autres membres du groupe à votre fork.
......@@ -79,17 +44,78 @@ Toutes vos modifications devront être poussées sur votre _fork_ et toutes les
== Diagramme de classes niveau conception
image::class-diagram.png[align=center]
.Diagramme de classes UML
[plantuml]
----
class Project {
id : Integer
name : String
progress : Progress
}
class Task {
id : String
name : String
due : DateTime
progress : Progress
frequency : Frequency
priority : integer
start : Date
end : Date
}
class Idea {
id Integer
name : String
description : String
}
class Tag {
name : String
}
class User {
id : String
login : String
password : String
}
class Context {
}
enum Progress {
todo
waiting
delegated
finished
}
enum Frequency {
daily
weekly
monthly
yearly
}
Project -> "subprojects [*]" Project
Project *--> "[*]" Task
Project "[*]" -- "creator [1]" User
Project -- "participants [*]" User
User -> "*" Idea
Task *--> "[*]" Tag
Task --> "[1]" Context
Task -> "creator [1]" User : "\t\t\t"
----
== Travail à réaliser
Le travail à réaliser est réparti en différentes "issues" (ou tickets), répertoriées dans le fichier
https://gitlab.univ-nantes.fr/naomod/sce/projet-2019/blob/master/ISSUES.md[`ISSUES.md`].
*Le but du projet est de résoudre tous ces tickets.*
Pour ce faire, *vous devrez suivre le protocole de travail suivant*, suivant la méthodologie Test-Driven Development (TDD).
Dans ce projet, vous devrez résoudre les problèmes déjà répertoriés dans le peojet,
soit dans le fichier https://gitlab.univ-nantes.fr/naomod/sce/projet-2020/blob/master/ISSUES.md[`ISSUES.md`], soit directement dans le code grâce aux commentaires de type `TODO`, `FIXME`, ou `XXX`.
Pour chaque ticket du fichier https://gitlab.univ-nantes.fr/naomod/sce/projet-2019/blob/master/ISSUES.md[`ISSUES.md`] :
Pour résoudre ces problèmes, *vous allez suivre le protocole de travail suivant*:
Pour chaque ticket du fichier https://gitlab.univ-nantes.fr/naomod/sce/projet-2020/blob/master/ISSUES.md[`ISSUES.md`]:
. Ouvrez un ticket dans votre projet Gitlab (sur l'interface en ligne de Gitlab, section _Tickets_).
Vous y détaillerez les points suivants:
......@@ -102,7 +128,7 @@ Vous y détaillerez les points suivants:
Cette personne, et uniquement celle-ci, sera chargée de résoudre le ticket.
. Créez les tests unitaires qui permettront de vérifier d'abord qu'il s'agit bien d'un problème et ensuite de la résolution du ticket.
Pour le nommage de vos tests, vous pouvez vous référer à la ressource suivante : https://dzone.com/articles/7-popular-unit-test-naming.
Pour le nommage de vos tests, vous pouvez vous référer à la ressource suivante: https://dzone.com/articles/7-popular-unit-test-naming.
. Implémentez le code qui résout le ticket.
Les tests écrits précédemment devront valider votre implémentation. _Faites attention à la régression !_ :
......@@ -121,8 +147,7 @@ Vous pouvez aussi fermer les tickets automatiquement à l'intérieur d'un messag
https://docs.gitlab.com/ee/user/project/issues/automatic_issue_closing.html[Automatic issue closing]
Le code du projet est là pour vous fournir une base de code.
Vous êtes libre de _modifier l'implémentation comme vous l'entendez_,
voire même de modifier le modèle de classes UML en lui-même !
Vous êtes libre de _modifier l'implémentation comme vous l'entendez_ et même de modifier le modèle de classes UML en lui-même !
*Mais attention, vous devrez motiver tous vos changements dans vos différents tickets/commits !!!*
== Évaluation
......@@ -130,8 +155,8 @@ voire même de modifier le modèle de classes UML en lui-même !
* Le travail à rendre se composera de votre *fork en ligne Gitlab*, sur lequel vous aurez poussé toutes vos modifications.
Cela inclut également tous les messages de commits et tickets ouverts.
* Ajoutez un fichier "`RENDU.md`" à la racine du projet, afin de décrire les spécificités de votre projet
(choix techniques, parties non traitées, extensions non demandées, etc.).
* Ajoutez un fichier "`RENDU.md`" à la racine du projet, afin de décrire les spécificités de votre projet:
choix techniques, parties non traitées, extensions non demandées, etc.
* Pour être évalué, *tout étudiant doit participer activement au projet*, en réalisant des "commits",
en ajoutant des lignes de code, en ouvrant des tickets sur le serveur GitLab, etc.
......@@ -163,15 +188,5 @@ Nous vous recommandons de l'installer et de l'utiliser dans le cadre de ce proje
Pour l'installer, vous avez deux options:
. Allez dans le menu "Préférences" de IntelliJ -> Section "Plugins", cherchez "Sonarlint" puis cliquez sur "Installer".
. Allez dans le menu "Préférences" de IntelliJ ->; Section "Plugins", cherchez "Sonarlint" puis cliquez sur "Installer".
. Installez le manuellement : https://plugins.jetbrains.com/plugin/7973-sonarlint
== Dépendances Maven
Le projet de démarrage est configuré comme un projet Maven standard.
Vous êtes libres d'ajouter de nouvelles extensions lors du développement du projet.
Par défaut, les dépendances suivantes sont configurées :
* JUnit (https://junit.org/junit5/) pour gérer les tests.
* Apache Commons Lang (https://commons.apache.org/proper/commons-lang/) qui fournit une extension de la librairie Java standard.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment