Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/razimouad/gestionoforders
https://github.com/razimouad/gestionoforders
Last synced: 17 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/razimouad/gestionoforders
- Owner: RAZIMOUAD
- Created: 2024-12-15T23:56:36.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-12-16T00:13:07.000Z (about 1 month ago)
- Last Synced: 2024-12-16T01:20:02.102Z (about 1 month ago)
- Language: Java
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GestionOfOrders
Un projet Java pour automatiser la gestion des commandes à partir de fichiers JSON. Il inclut la validation des données, la persistance dans une base de données MySQL, et la gestion des erreurs.
---
## **Fonctionnalités**
- Gestion des répertoires :
- **`data/INPUT`** : Contient les fichiers JSON à traiter.
- **`data/OUTPUT`** : Contient les fichiers JSON valides après traitement.
- **`data/ERROR`** : Contient les fichiers JSON invalides après traitement.
- Lecture et conversion des fichiers JSON en objets `Order` et `Customer`.
- Validation des données :
- Vérification que le `customer_id` existe dans la base de données.
- Rejet des commandes avec un montant non positif.
- Persistance des données valides dans une base de données MySQL.
- Gestion automatique des fichiers JSON :
- Déplacement des fichiers valides vers `data/OUTPUT`.
- Déplacement des fichiers invalides vers `data/ERROR`.
- Journalisation détaillée des actions dans la console.---
## **Prérequis**
- **Java** : Version 11 ou supérieure.
- **Maven** : Gestionnaire de dépendances.
- **MySQL** : Base de données relationnelle.---
## **Installation**
1. Clonez le projet :
```bash
git clone https://github.com/RAZIMOUAD/GestionOfOrders.git
cd GestionOfOrders
```2. Installez les dépendances Maven :
```bash
mvn clean install
```3. Configurez votre environnement MySQL :
- Créez une base de données nommée `GestionOrders` :
```sql
CREATE DATABASE GestionOrders;
USE GestionOrders;
```
- Créez les tables nécessaires :
```sql
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255),
phone VARCHAR(20)
);CREATE TABLE orders (
id INT PRIMARY KEY,
date TIMESTAMP,
amount DOUBLE,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
```4. Configurez les identifiants de connexion MySQL dans `DatabaseConnection.java` :
```java
private static final String URL = "jdbc:mysql://localhost:3306/GestionOrders";
private static final String USER = "votre_utilisateur";
private static final String PASSWORD = "votre_mot_de_passe";
```---
## **Utilisation**
1. Ajoutez des fichiers JSON dans le dossier **`data/INPUT`**. Exemple de fichier valide :
```json
{
"id": 1,
"date": "2024-06-15T12:30:00",
"amount": 200.50,
"customer_id": 101
}
```2. Lancez le programme :
```bash
mvn exec:java -Dexec.mainClass="org.example.Main"
```3. Résultats attendus :
- Les fichiers JSON valides sont déplacés vers **`data/OUTPUT`** et insérés dans la base de données.
- Les fichiers JSON invalides sont déplacés vers **`data/ERROR`**.---
## **Structure du Projet**
```plaintext
GestionOfOrders/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── org.example/
│ │ │ │ ├── Main.java # Point d'entrée du programme
│ │ │ │ ├── models/
│ │ │ │ │ ├── Order.java # Classe représentant une commande
│ │ │ │ │ ├── Customer.java # Classe représentant un client
│ │ │ │ ├── utils/
│ │ │ │ │ ├── DirectoryManager.java # Gestion des répertoires
│ │ │ │ │ ├── JsonReader.java # Lecture et validation des fichiers JSON
│ │ │ │ │ ├── OrderValidator.java # Validation et persistance des commandes
│ │ ├── resources/
│ ├── test/ # Tests unitaires
├── data/
│ ├── INPUT/ # Fichiers JSON à traiter
│ ├── OUTPUT/ # Fichiers JSON validés
│ ├── ERROR/ # Fichiers JSON invalides
├── pom.xml # Fichier de configuration Maven
```---
## **Exemple d'Exécution**
### **Cas 1 : Fichiers JSON valides**
- Fichiers valides présents dans `data/INPUT`.
- Résultats en console :
```
Initialisation du projet...
Fichier traité avec succès : order1.json
Fichier déplacé vers OUTPUT : order1.json
Commandes valides traitées :
Commande ID : 1, Montant : 200.50
Processus terminé !
```### **Cas 2 : Dossier INPUT vide**
- Aucun fichier JSON dans `data/INPUT`.
- Résultats en console :
```
Initialisation du projet...
Le répertoire INPUT est vide. Aucun fichier à traiter.
Processus terminé !
```### **Cas 3 : Fichiers JSON invalides**
- Fichiers JSON avec des erreurs dans `data/INPUT`.
- Résultats en console :
```
Initialisation du projet...
Erreur de lecture JSON pour le fichier : order4.json
Le montant doit être positif
Fichier déplacé vers ERROR : order4.json
Processus terminé !
```---
## **Améliorations Futures**
- Ajouter un fichier log pour enregistrer les erreurs et les actions.
- Implémenter une interface utilisateur graphique avec JavaFX.
- Automatiser le traitement avec une tâche planifiée (par exemple, un cron job).---
## **Auteurs**
- **RAZI MOUAD** : Étudiant en génie Informatique.
---
## **Licence**
Ce projet est sous licence MIT. Consultez le fichier [LICENSE](LICENSE) pour plus de détails.