Mini-Projet Java
Sujet : Application de Gestion des Tâches (To-Do List)
Présenté par :JIHANE BOUDARRAJA Encadré par : Pr. Soufiane
Hamida
Juin 2025
Introduction
Ce mini-projet Java a pour objectif de mettre en pratique les compétences
acquises pendant le module, notamment l'utilisation de JavaFX pour l’interface
graphique, la manipulation d'une base de données avec SQLite, et la mise en
œuvre des opérations CRUD.
Le projet consiste à développer une application de gestion des tâches (To-Do
List) permettant à l’utilisateur d’ajouter, modifier, supprimer et visualiser ses
tâches.
Outils et Technologies Utilisés
● Java JDK 21
● IntelliJ IDEA
● Scene Builder
● JavaFX
● SQLite + SQLiteStudio
● Architecture MVC
●
Structure du Projet
Le projet est organisé selon le modèle MVC :
src/
└── main/
├── java/
│ ├── controllers/
│ ├── models/
│ ├── views/
│ └── Main.java
└── resources/
├── fxml/
│ └── dashboard.fxml
└── styles.css
Interface Graphique
L’interface est développée avec JavaFX et construite à l’aide de Scene Builder.
Elle contient :
● Un champ de saisie pour le titre
● Une zone de description
● Un sélecteur de date
● Une liste déroulante pour le statut (Pending/Done)
● Un bouton pour ajouter une tâche
Code du Contrôleur (Logique de l'application)
Le contrôleur permet de gérer les interactions avec l’interface.
@FXML
private void handleAddTask() {
String title = taskTitleField.getText();
String description = taskDescriptionArea.getText();
String deadline = taskDeadlinePicker.getValue().toString();
String status = taskStatusChoice.getValue();
System.out.println("Task Added: " + title + " - " + status);
}
Base de Données SQLite
La base contient une seule table nommée tasks :
CREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title VARCHAR(100),
description TEXT,
deadline DATE,
status VARCHAR(20)
);
Conclusion
Ce projet a permis de consolider les connaissances en Java orienté objet, en manipulation
d’interface graphique avec JavaFX, et en gestion de données via une base SQLite.
Même si certaines parties comme le test final n’ont pas pu être terminées, l’architecture,
l’interface, et la logique de base ont été mises en place avec succès.