← Tous les projets

Desktop App

Application de Gestion Hôtelière

Solution complète en Java pour administrer les réservations, les chambres et le personnel d'un établissement hôtelier.

JavaSwingFlatlafSQLite
Application de Gestion Hôtelière

Contexte

Application de Gestion Hôtelière est un projet desktop développé en binôme avec José-Marie LAOUROU dans le cadre de notre formation à l'Université Evry Paris-Saclay. L'objectif était de concevoir une solution logicielle complète pour la gestion opérationnelle d'un établissement hôtelier.

L'application est distribuée sous forme de JAR exécutable et fonctionne de manière autonome, sans dépendance à un serveur distant.

Fonctionnalités

L'application couvre l'ensemble du cycle opérationnel d'un hôtel :

  • Gestion des chambres — suivi des catégories, disponibilités et états des chambres
  • Réservations — création, modification et suivi complet du cycle de séjour
  • Gestion des clients — fiches client et historique de consommation
  • Gestion du personnel — planification des interventions et suivi des tâches des équipes
  • Facturation — génération automatique de factures en format PDF
  • Reporting — rapports d'activité de l'établissement

Stack technique

Java        Langage principal (100% du projet)
SQLite      Base de données relationnelle embarquée
Swing       Framework GUI Java natif
FlatLaf     Thème UI moderne (design flat) pour Swing
MigLayout   Gestionnaire de layout flexible pour les formulaires
Maven       Outil de build et gestion des dépendances

Architecture

Le projet suit le patron MVC (Modèle-Vue-Contrôleur) pour séparer clairement les responsabilités :

src/main/
  models/       — Entités métier (Chambre, Réservation, Client, Personnel…)
  views/        — Formulaires et fenêtres Swing
  controllers/  — Logique applicative et interaction avec la base
lib/            — Librairies externes (FlatLaf, MigLayout…)
out/artifacts/  — JAR exécutable final

La base de données SQLite est embarquée directement dans l'application, ce qui simplifie le déploiement et permet une utilisation hors ligne.

Ce que j'ai appris

Ce projet a été ma première expérience d'une application de taille significative (116 commits) construite en binôme. Travailler à deux sur un même codebase Java avec Git m'a appris à organiser le travail en branches, à résoudre des conflits de merge et à maintenir une cohérence d'architecture entre les contributions.

Sur le plan technique, l'intégration de FlatLaf pour moderniser l'apparence de Swing m'a montré qu'un framework considéré comme vieillissant peut produire des interfaces soignées avec les bonnes bibliothèques. La génération de PDF depuis Java a également été un défi intéressant à résoudre.

C'est l'un des projets où j'ai le mieux compris la valeur d'une architecture MVC rigoureuse : avec 116 commits et plusieurs fonctionnalités interdépendantes, la séparation des couches a été déterminante pour garder le projet maintenable.

Projet suivant

OG Viewer.