From 0245b5bbc04af2b8a93598119c352ff828622072 Mon Sep 17 00:00:00 2001 From: Toto Date: Wed, 9 Oct 2024 16:08:05 +0200 Subject: [PATCH] Sprint 1 done --- .classpath | 40 +++++++ .gitignore | 1 + .project | 23 ++++ .settings/org.eclipse.jdt.core.prefs | 8 ++ .settings/org.eclipse.m2e.core.prefs | 4 + pom.xml | 20 ++++ .../java/controller/AjoutUtilisateur.java | 108 ++++++++++++++++++ src/main/java/controller/MainMenu.java | 56 +++++++++ .../java/controller/SoumettreDemande.java | 97 ++++++++++++++++ .../java/database/DatabaseConnection.java | 15 +++ 10 files changed, 372 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 pom.xml create mode 100644 src/main/java/controller/AjoutUtilisateur.java create mode 100644 src/main/java/controller/MainMenu.java create mode 100644 src/main/java/controller/SoumettreDemande.java create mode 100644 src/main/java/database/DatabaseConnection.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..2e2268a --- /dev/null +++ b/.classpath @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b83d222 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/.project b/.project new file mode 100644 index 0000000..215b7a9 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + projet-maven + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..a3b98fd --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..aab5913 --- /dev/null +++ b/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.example + AidePersonnesApp + 1.0-SNAPSHOT + + + + + mysql + mysql-connector-java + 8.0.28 + + + + diff --git a/src/main/java/controller/AjoutUtilisateur.java b/src/main/java/controller/AjoutUtilisateur.java new file mode 100644 index 0000000..60dde4f --- /dev/null +++ b/src/main/java/controller/AjoutUtilisateur.java @@ -0,0 +1,108 @@ +package controller; + +import database.DatabaseConnection; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class AjoutUtilisateur extends JFrame { + private JTextField nomField; + private JTextField emailField; + private JComboBox typeComboBox; + private JButton ajouterButton; + private JButton retourAccueilButton; + + public AjoutUtilisateur() { + setTitle("Ajouter un utilisateur"); + setSize(400, 300); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLocationRelativeTo(null); + setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + gbc.insets = new Insets(10, 10, 10, 10); + gbc.fill = GridBagConstraints.HORIZONTAL; + + JLabel nomLabel = new JLabel("Nom :"); + gbc.gridx = 0; + gbc.gridy = 0; + add(nomLabel, gbc); + + nomField = new JTextField(); + gbc.gridx = 1; + gbc.gridy = 0; + gbc.gridwidth = 2; + add(nomField, gbc); + + JLabel emailLabel = new JLabel("Email :"); + gbc.gridx = 0; + gbc.gridy = 1; + add(emailLabel, gbc); + + emailField = new JTextField(); + gbc.gridx = 1; + gbc.gridy = 1; + gbc.gridwidth = 2; + add(emailField, gbc); + + JLabel typeLabel = new JLabel("Type d'utilisateur :"); + gbc.gridx = 0; + gbc.gridy = 2; + add(typeLabel, gbc); + + typeComboBox = new JComboBox<>(new String[]{"benevole", "personne_besoin", "validateur"}); + gbc.gridx = 1; + gbc.gridy = 2; + gbc.gridwidth = 2; + add(typeComboBox, gbc); + + ajouterButton = new JButton("Ajouter"); + gbc.gridx = 1; + gbc.gridy = 3; + add(ajouterButton, gbc); + + retourAccueilButton = new JButton("Retour à l'accueil"); + gbc.gridx = 1; + gbc.gridy = 4; + add(retourAccueilButton, gbc); + + ajouterButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + ajouterUtilisateur(); + } + }); + + retourAccueilButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + MainMenu menu = new MainMenu(); + menu.setVisible(true); + dispose(); + } + }); + } + + private void ajouterUtilisateur() { + String nom = nomField.getText(); + String email = emailField.getText(); + String typeUtilisateur = (String) typeComboBox.getSelectedItem(); + + try (Connection connection = DatabaseConnection.getConnection()) { + String sql = "INSERT INTO utilisateurs (nom, email, type_utilisateur) VALUES (?, ?, ?)"; + PreparedStatement statement = connection.prepareStatement(sql); + statement.setString(1, nom); + statement.setString(2, email); + statement.setString(3, typeUtilisateur); + statement.executeUpdate(); + JOptionPane.showMessageDialog(this, "Utilisateur ajouté avec succès !"); + } catch (SQLException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/controller/MainMenu.java b/src/main/java/controller/MainMenu.java new file mode 100644 index 0000000..54f466f --- /dev/null +++ b/src/main/java/controller/MainMenu.java @@ -0,0 +1,56 @@ +package controller; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class MainMenu extends JFrame { + private JButton ajouterUtilisateurButton; + private JButton soumettreDemandeButton; + + public MainMenu() { + setTitle("Menu Principal"); + setSize(400, 300); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLocationRelativeTo(null); + setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + gbc.insets = new Insets(10, 10, 10, 10); + gbc.fill = GridBagConstraints.HORIZONTAL; + + ajouterUtilisateurButton = new JButton("Ajouter un utilisateur"); + gbc.gridx = 0; + gbc.gridy = 0; + add(ajouterUtilisateurButton, gbc); + + soumettreDemandeButton = new JButton("Soumettre une demande d'aide"); + gbc.gridx = 0; + gbc.gridy = 1; + add(soumettreDemandeButton, gbc); + + ajouterUtilisateurButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + AjoutUtilisateur ajoutUtilisateur = new AjoutUtilisateur(); + ajoutUtilisateur.setVisible(true); + dispose(); + } + }); + + soumettreDemandeButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + SoumettreDemande soumettreDemande = new SoumettreDemande(); + soumettreDemande.setVisible(true); + dispose(); + } + }); + } + + public static void main(String[] args) { + MainMenu menu = new MainMenu(); + menu.setVisible(true); + } +} diff --git a/src/main/java/controller/SoumettreDemande.java b/src/main/java/controller/SoumettreDemande.java new file mode 100644 index 0000000..2936901 --- /dev/null +++ b/src/main/java/controller/SoumettreDemande.java @@ -0,0 +1,97 @@ +package controller; + +import database.DatabaseConnection; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class SoumettreDemande extends JFrame { + private JTextField utilisateurIdField; + private JTextArea descriptionArea; + private JButton soumettreButton; + private JButton retourAccueilButton; + + public SoumettreDemande() { + setTitle("Soumettre une demande d'aide"); + setSize(500, 400); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLocationRelativeTo(null); + setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + gbc.insets = new Insets(10, 10, 10, 10); + gbc.fill = GridBagConstraints.HORIZONTAL; + + JLabel utilisateurIdLabel = new JLabel("ID de l'utilisateur :"); + gbc.gridx = 0; + gbc.gridy = 0; + add(utilisateurIdLabel, gbc); + + utilisateurIdField = new JTextField(); + gbc.gridx = 1; + gbc.gridy = 0; + gbc.gridwidth = 2; + add(utilisateurIdField, gbc); + + JLabel descriptionLabel = new JLabel("Description de la tâche :"); + gbc.gridx = 0; + gbc.gridy = 1; + add(descriptionLabel, gbc); + + descriptionArea = new JTextArea(5, 20); + descriptionArea.setWrapStyleWord(true); + descriptionArea.setLineWrap(true); + JScrollPane scrollPane = new JScrollPane(descriptionArea); + gbc.gridx = 1; + gbc.gridy = 1; + gbc.gridwidth = 2; + add(scrollPane, gbc); + + soumettreButton = new JButton("Soumettre"); + gbc.gridx = 1; + gbc.gridy = 2; + add(soumettreButton, gbc); + + retourAccueilButton = new JButton("Retour à l'accueil"); + gbc.gridx = 1; + gbc.gridy = 3; + add(retourAccueilButton, gbc); + + soumettreButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + soumettreDemande(); + } + }); + + retourAccueilButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + MainMenu menu = new MainMenu(); + menu.setVisible(true); + dispose(); + } + }); + } + + private void soumettreDemande() { + String utilisateurId = utilisateurIdField.getText(); + String description = descriptionArea.getText(); + + try (Connection connection = DatabaseConnection.getConnection()) { + String sql = "INSERT INTO demandes_aide (utilisateur_id, description, statut) VALUES (?, ?, 'en attente')"; + PreparedStatement statement = connection.prepareStatement(sql); + statement.setInt(1, Integer.parseInt(utilisateurId)); + statement.setString(2, description); + statement.executeUpdate(); + JOptionPane.showMessageDialog(this, "Demande soumise avec succès !"); + } catch (SQLException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/database/DatabaseConnection.java b/src/main/java/database/DatabaseConnection.java new file mode 100644 index 0000000..1abec4d --- /dev/null +++ b/src/main/java/database/DatabaseConnection.java @@ -0,0 +1,15 @@ +package database; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DatabaseConnection { + private static final String URL = "jdbc:mysql://localhost:3306/aide_personnes_db"; + private static final String USER = "root"; + private static final String PASSWORD = "@Abdo2001elouali"; + + public static Connection getConnection() throws SQLException { + return DriverManager.getConnection(URL, USER, PASSWORD); + } +}