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 26 octobre 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 se décompose en différentes parties :
Le titre est un texte de 50 caractères maximum (afin qu'il tienne sur une ligne courte).
Le contenu est texte de 200 caractères maximum (donc 4 lignes environ). Il peut être omis dans un affichage dense, mais il faut évidemment prévoir une façon de le consulter. On anticipe qu'une proportion importante de rappels ne possèdera pas de contenu.
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).
Le rang permet de trier les rappels. Il peut représenter l'urgence, l'ordre chronologique ou quelque chose de plus spécialisé. Il est recommandé de concevoir les fonctionnalités de votre logiciel de manière à faciliter l'usage des deux premières interprétations.
L'utilisateur doit avoir accès aux opérations basiques (CRUD).
Il devra pouvoir créer un nouveau rappel, consulter la liste des rappels, consulter un rappel en particulier, modifier tout ou partie d'un rappel existant, et enfin supprimer un rappel existant.
Une partie importante de la note portera sur l'ergonomie de vos interfaces.
Les rappels 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.
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 de classe et d'objets seront réalisés à l'aide de StarUML.