Il vous est demandé de développer un logiciel qui reste en permanence au premier plan, comme un papillon collé sur le moniteur. Sa surface affichera une liste de rappels que l'utilisateur souhaite avoir sous les yeux. L'espace occupé devra être le plus petit possible, afin de ne pas gêner l'accès aux autres fenêtres.
Vous produirez un programme écrit en Java utilisant uniquement des classes originales et les classes vues en cours. Un rapport d'activité y sera joint. Le travail sera fait en binôme ou trinôme, et devra être terminé avant le dimanche 14 décembre 2025 à 23h59.
La partie logicielle sera développée dès le départ à l'aide du serveur Gitea du département. Le rapport prendra la forme d'un fichier au format PDF joint aux sources.
Un rappel comporte trois éléments :
Le titre est un texte de 50 caractères maximum (pas des octets ou même des char mais des points de code Unicode). Il ne doit pas être vide, ne peut pas contenir de saut de ligne et doit contenir au moins une lettre ou un chiffre.
Le contenu est un texte de 4 lignes maximum, chaque ligne contenant un maximum de 50 caractères. Il peut être vide.
Le thème est un élément visuel distinctif. Vous devez en proposer au moins 5. Les thèmes n'ont pas de nom, afin que les utilisateurs puissent librement choisir leur signification (comme le choix de la couleur d'un post-it).
La fenêtre principale affiche la liste des rappels (sans leur contenu). Elle est toujours au-dessus des autres fenêtres, même quand elle est inactive. Pour éviter de gêner, vous tâcherez d'en limiter la surface (sans nuire à l'ergonomie) et d'en choisir soigneusement la position.
L'ordre des rappels dans la liste est sous le contrôle de l'utilisateur. L'utilisateur peut lui attribuer la signification qui l'arrange : les plus vieux, les plus urgents ou les plus importants rappels en premier, par exemple (ou un mélange des trois). Il n'a pas besoin d'expliquer sa logique au programme.
Par ailleurs, l'utilisateur doit avoir accès aux opérations basiques (CRUD). Il peut créer un nouveau rappel. Pour chaque rappel de la liste, il peut consulter son contenu, en modifier chaque élément, ou le supprimer complètement.
Une partie importante de la note portera sur l'ergonomie de vos interfaces.
Les rappels (et leur ordre) devant être préservés d'une session à une autre, un serveur de base de données vous servira à retenir les informations correspondantes.
Les problèmes liés à l'accès à cette base ne devront pas être seulement envoyés vers la sortie sur erreur. Vous devrez communiquer graphiquement avec l'utilisateur.
Les sources de votre projet (et pas les fichiers .class)
devront être disponibles à tout moment sur le serveur Gitea du département. Votre dépôt sera privé, nommé
obligatoirement SAE31_2025 et incluera Luc Hernandez (login :
hernand) dans la liste des collaborateurs. Le nombre de soumissions, leur
date et l'équilibre entre leurs auteurs influeront sur la note finale.
Pour chaque classe, vous prévoierez un fichier source. Suivez les
consignes habituelles
scrupuleusement. La définition de chaque classe et de chaque membre de classe sera
précédée d'un commentaire formaté pour permettre la génération de documentation technique
par l'outil javadoc (ceci est
un exemple de fichier source bien commenté).
Vous devrez respecter l'organisation du code vue au début de l'année. Toutes vos classes
appartiendront à un package. Un fichier Makefile devra permettre la
compilation de votre projet et la création d'une archive jar, et un but factice
nommé run devra en permettre l'exécution. Transcrivez bien toutes les
dépendances entre vos fichiers dans les règles. Vérifiez également que l'archive soit
exécutable sans aucune autre dépendance que la présence d'une JVM (version 11 et plus).
Le rapport d'avancement prendra la forme d'un fichier PDF disponible avec les sources sur le serveur Gitea. Vous y inclurez au moins les éléments suivants (mais la liste n'est pas exhaustive) :
Soignez la présentation ! L'orthographe, la grammaire, les pages de garde, la table des matières, les en-tête et pieds de page ne sont pas en option...
Notez bien que le rapport ne doit pas contenir d'extrait du code source du projet, étant donné que le correcteur peut aller le consulter directement s'il en éprouve le besoin. N'hésitez pas en revanche à illustrer vos propos par des schémas. Ceux-ci peuvent être construits directement dans le logiciel de traitement de texte s'il le permet, ou dans un logiciel dédié, tel que Inkscape ou Draw (tous deux gratuits). Les diagrammes UML seront de préférence réalisés à l'aide de StarUML. Faites bien attention à ce que tous les diagrammes soient lisibles avec un facteur d'affichage de 100%.