Skip to content

MathieuMarthy/prog-pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vehicule2000 - Application de gestion de flotte

Description du projet

Vehicule2000 est une application de gestion de parc automobile pour une collectivitée locale. Elle permet de gérer les véhicules, les agents et les affectations de véhicules aux agents.

Le projet a été réalisé dans le cadre du cours de programation orienté objet en Java avec JavaFX pour l'interface graphique.

Fonctionnalitées principales

  • Gestion des véhicules (ajout, modification, supression)
  • Gestion des agents par service
  • Gestion des affectations de véhicules aux agents
  • Visualisation de l'agenda des affectations
  • Authentification des administrateurs
  • Changement de mot de passe

Technologies utilisées

  • Java (JDK 11 ou supérieur)
  • JavaFX pour l'interface graphique
  • SQL Server pour la base de données
  • JDBC pour la connexion à la base de donnée
  • Architecture en couches (DAL, BLL, BO, IHM)

Architecture du projet

Le projet suit une architecture en couche classique :

BO (Business Objects) : Contient les classes métiers (Agent, Vehicle, Assignment, Service, Administrator, VehicleStatus)

DAL (Data Access Layer) : Couche d'accés aux données avec les interfaces DAO et les implémentations JDBC dans le package jdbc

BLL (Business Logic Layer) : Contient la logique métier avec les managers (AgentManager, VehicleManager, AssignmentManager, etc)

IHM (Interface Homme-Machine) : Interface graphique avec JavaFX, contient les controllers et les fichiers FXML

Utils : Classes utilitaires pour les exceptions, le hashage de mot de passe, la gestion de session, etc.

Prérequis

Avant de lancer l'application, vous devez avoir :

  • Java JDK 11 ou plus récent installé
  • JavaFX SDK (normalement inclu avec le JDK)
  • Un serveur SQL Server accessible
  • Un IDE Java (IntelliJ IDEA, Eclipse, NetBeans, etc.)
  • Le driver JDBC pour SQL Server (Microsoft JDBC Driver for SQL Server)

Configuration de la base de données

Etape 1 : Création de la base

Executez le script SQL qui se trouve dans le dossier SQL :

SQL/create-tables-and-seed.sql

Ce script créé les tables suivantes :

  • VehicleStatus (statuts des véhicules)
  • Service (services de la collectivité)
  • Agent (agents de la collectivité)
  • Vehicle (véhicules de la flotte)
  • Assignment (affectations de véhicules)
  • Administrator (administrateurs du systeme)

Le script insère aussi des données de base (services, statuts de véhicule).

Etape 2 : Données de test (optionnel)

Si vous voulez avoir des données de test pour tester l'application, executez aussi :

SQL/seed-fake-data.sql

Ce fichier ajoute des agents, véhicules et affectations fictives.

Etape 3 : Configuration de la connexion

Modifiez le fichier de configuration situé dans :

src/dal/jdbc/db-settings.properties

Renseignez les paramètres de votre base SQL Server :

url=jdbc:sqlserver://;serverName=VOTRE_SERVEUR;port=VOTRE_PORT;databaseName=master;encrypt=true;trustServerCertificate=true
username=VOTRE_USERNAME
password=VOTRE_PASSWORD

IMPORTANT : Ne commitez jamais vos identifiants réels sur Git ! Ajoutez ce fichier au .gitignore.

Configuration du projet dans IntelliJ IDEA

Etape 1 : Ouvrir le projet

  • Ouvrez IntelliJ IDEA
  • Selectionnez "Open" et choisissez le dossier du projet

Etape 2 : Configurer le JDK

  • Allez dans File > Project Structure
  • Dans Project Settings > Project, selectionnez le SDK Java 11 ou supérieur

Etape 3 : Ajouter le driver JDBC

  • Allez dans File > Project Structure > Libraries
  • Cliquez sur "+" pour ajouter une librairie
  • Selectionnez "From Maven..."
  • Cherchez : com.microsoft.sqlserver:mssql-jdbc:12.4.0.jre11
  • Cliquez sur OK pour télécharger et ajouter la librairie

Etape 4 : Configurer JavaFX (si nécéssaire)

Si JavaFX n'est pas inclu dans votre JDK :

  • Téléchargez JavaFX SDK depuis https://openjfx.io/
  • Ajoutez les librairies JavaFX au projet (File > Project Structure > Libraries)
  • Ajoutez les options VM dans la configuration de lancement :
--module-path "CHEMIN_VERS_JAVAFX/lib" --add-modules javafx.controls,javafx.fxml

Lancement de l'application

Depuis IntelliJ IDEA

  1. Ouvrez la classe MainApp.java qui se trouve dans src/ihm/MainApp.java
  2. Faites un clic droit sur la classe et selectionnez "Run MainApp.main()"
  3. L'application devrait se lancer et afficher l'interface de connexion

Connexion à l'application

Par defaut, si vous avez executé le script seed-fake-data.sql, vous pouvez vous connecter avec :

Si vous n'avez pas de compte administrateur, vous devez en créer un directement dans la base de données. Le mot de passe doit être hashé en SHA-256.

Utilisation de l'application

Une fois connecté, vous accedez au menu principal avec plusieurs sections :

Gestion des véhicules

Permet de consulter la liste des véhicules, ajouter de nouveaux véhicules, modifier ou suprimer des véhicules existants. Chaque véhicule a un statut (Disponible, En maintenance, Hors service).

Gestion des agents

Permet de gérer les agents de la collectivité. Chaque agent appartient à un service (Urbanisme, Activités culturelles, Police municipale, etc).

Gestion des affectations

Permet d'affecter un véhicule à un agent pour une période donnée. L'application vérifie automatiquement que le véhicule et l'agent sont disponibles pendant cette période.

Agenda

Visualisation graphique des affectations sous forme de calendrier. Permet de voir rapidement qui utilise quel véhicule et quand.

Affectations par véhicule

Affiche l'historique des affectations pour chaque véhicule.

Structure des packages

src/
├── bo/                          # Business Objects
│   ├── Agent.java
│   ├── Vehicle.java
│   ├── Assignment.java
│   ├── Service.java
│   ├── Administrator.java
│   └── VehicleStatus.java
│
├── dal/                         # Data Access Layer
│   ├── AgentDAO.java            # Interfaces DAO
│   ├── VehicleDAO.java
│   ├── AssignmentDAO.java
│   ├── ServiceDAO.java
│   ├── AdministratorDAO.java
│   ├── DaoFactory.java
│   └── jdbc/                    # Implémentations JDBC
│       ├── AgentDAOjdbc.java
│       ├── VehicleDAOjdbc.java
│       ├── AssignmentDAOjdbc.java
│       ├── ServiceDAOjdbc.java
│       ├── AdministratorDAOjdbc.java
│       ├── SQLServer.java
│       ├── JdbcTools.java
│       └── db-settings.properties
│
├── bll/                         # Business Logic Layer
│   ├── AgentManager.java
│   ├── VehicleManager.java
│   ├── AssignmentManager.java
│   ├── ServiceManager.java
│   └── AdministratorManager.java
│
├── ihm/                         # Interface Homme-Machine
│   ├── MainApp.java
│   ├── controllers/             # Controleurs JavaFX
│   │   ├── ConnexionController.java
│   │   ├── VehiclesController.java
│   │   ├── AgentsController.java
│   │   ├── AssignmentsController.java
│   │   ├── AgendaController.java
│   │   └── ...
│   └── fxml/                    # Fichiers FXML
│       ├── Connexion.fxml
│       ├── Vehicles.fxml
│       ├── Agents.fxml
│       ├── Assignments.fxml
│       └── ...
│
└── utils/                       # Classes utilitaires
    ├── DAOException.java
    ├── Session.java
    ├── Hash.java
    ├── DatePickerFormatter.java
    └── bll/
        └── exceptions/
            ├── ManagerException.java
            ├── EntityNotFoundException.java
            └── MandatoryElementsMissedException.java

Licence

Ce projet est à but éducatif uniquement.

Projet réalisé en lien avec notre école 3iL Ingénieurs.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •