From a314b4dccbc89d47d5e0d473a530c87779d21904 Mon Sep 17 00:00:00 2001 From: lukaceli Date: Tue, 3 Mar 2026 13:33:57 +0100 Subject: [PATCH 1/5] new branch --- src/main/java/service/DonationService.java | 4 ---- src/main/java/service/InputHelper.java | 4 ---- src/main/java/service/OrganizationService.java | 4 ---- 3 files changed, 12 deletions(-) delete mode 100644 src/main/java/service/DonationService.java delete mode 100644 src/main/java/service/InputHelper.java delete mode 100644 src/main/java/service/OrganizationService.java diff --git a/src/main/java/service/DonationService.java b/src/main/java/service/DonationService.java deleted file mode 100644 index 1c04562..0000000 --- a/src/main/java/service/DonationService.java +++ /dev/null @@ -1,4 +0,0 @@ -package service; - -public class DonationService { -} diff --git a/src/main/java/service/InputHelper.java b/src/main/java/service/InputHelper.java deleted file mode 100644 index 0a6201e..0000000 --- a/src/main/java/service/InputHelper.java +++ /dev/null @@ -1,4 +0,0 @@ -package service; - -public class InputHelper { -} diff --git a/src/main/java/service/OrganizationService.java b/src/main/java/service/OrganizationService.java deleted file mode 100644 index e4c0c89..0000000 --- a/src/main/java/service/OrganizationService.java +++ /dev/null @@ -1,4 +0,0 @@ -package service; - -public class OrganizationService { -} From 67c37a8c0a40637ce2c559cb1ec35219ebb8d512 Mon Sep 17 00:00:00 2001 From: Marius Klepp Date: Tue, 3 Mar 2026 14:05:17 +0100 Subject: [PATCH 2/5] Cleaned up structure --- pom.xml | 60 ++++++++++++++----- .../{service => application}/UserService.java | 8 +-- .../{model => domain/donation}/Cause.java | 2 +- .../{model => domain/donation}/Donation.java | 5 +- .../organization}/Organization.java | 4 +- src/main/java/domain/user/Role.java | 4 ++ .../java/{model => domain/user}/User.java | 10 +--- src/main/java/gui/GiveHopeGUI.java | 4 -- .../InnsamlingskontrollenClient.java | 4 +- src/main/java/register/DonationRegister.java | 4 -- .../java/register/OrganizationRegister.java | 4 -- src/main/java/register/UserRegister.java | 38 ------------ src/main/java/ui/GiveHopeGIU.java | 23 +++++++ .../java/ui/controller/HomeController.java | 24 ++++++++ .../java/ui/controller/SignInController.java | 36 +++++++++++ .../java/{service => util}/AuthService.java | 5 +- .../java/{password => util}/PasswordHash.java | 2 +- src/main/resources/ui/home.fxml | 31 ++++++++++ src/main/resources/ui/signIn.fxml | 30 ++++++++++ src/test/java/domain/DonationTest.java | 5 ++ src/test/java/domain/OrganizationTest.java | 5 ++ src/test/java/domain/UserTest.java | 5 ++ src/test/java/model/DonationTest.java | 7 --- src/test/java/model/OrganizationTest.java | 7 --- src/test/java/model/UserTest.java | 7 --- 25 files changed, 226 insertions(+), 108 deletions(-) rename src/main/java/{service => application}/UserService.java (73%) rename src/main/java/{model => domain/donation}/Cause.java (76%) rename src/main/java/{model => domain/donation}/Donation.java (94%) rename src/main/java/{model => domain/organization}/Organization.java (97%) create mode 100644 src/main/java/domain/user/Role.java rename src/main/java/{model => domain/user}/User.java (87%) delete mode 100644 src/main/java/gui/GiveHopeGUI.java rename src/main/java/{service => integration}/InnsamlingskontrollenClient.java (92%) delete mode 100644 src/main/java/register/DonationRegister.java delete mode 100644 src/main/java/register/OrganizationRegister.java delete mode 100644 src/main/java/register/UserRegister.java create mode 100644 src/main/java/ui/GiveHopeGIU.java create mode 100644 src/main/java/ui/controller/HomeController.java create mode 100644 src/main/java/ui/controller/SignInController.java rename src/main/java/{service => util}/AuthService.java (85%) rename src/main/java/{password => util}/PasswordHash.java (97%) create mode 100644 src/main/resources/ui/home.fxml create mode 100644 src/main/resources/ui/signIn.fxml create mode 100644 src/test/java/domain/DonationTest.java create mode 100644 src/test/java/domain/OrganizationTest.java create mode 100644 src/test/java/domain/UserTest.java delete mode 100644 src/test/java/model/DonationTest.java delete mode 100644 src/test/java/model/OrganizationTest.java delete mode 100644 src/test/java/model/UserTest.java diff --git a/pom.xml b/pom.xml index 6419e74..fc33115 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,9 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 edu.ntnu.idatt1005.gruppe26 @@ -9,33 +11,61 @@ 1.0-SNAPSHOT - 25 - 25 + 25 + 25.0.2 UTF-8 + + + - com.fasterxml.jackson.core - jackson-databind - 2.17.0 + org.openjfx + javafx-controls + ${javafx.version} + - org.junit.jupiter - junit-jupiter - 5.13.4 - test + org.openjfx + javafx-fxml + ${javafx.version} + + org.junit.jupiter junit-jupiter - 6.0.2 + 6.0.1 test + - org.xerial - sqlite-jdbc - 3.46.1.3 + com.fasterxml.jackson.core + jackson-databind + 2.17.0 - + + + + + + + org.openjfx + javafx-maven-plugin + 0.0.8 + + ui.GiveHopeGIU + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.4 + + + + \ No newline at end of file diff --git a/src/main/java/service/UserService.java b/src/main/java/application/UserService.java similarity index 73% rename from src/main/java/service/UserService.java rename to src/main/java/application/UserService.java index 8590544..1b063a4 100644 --- a/src/main/java/service/UserService.java +++ b/src/main/java/application/UserService.java @@ -1,9 +1,7 @@ -package service; +package application; -import model.User; -import register.UserRegister; -import password.PasswordHash; -import service.AuthService; +import domain.user.User; +import util.AuthService; public class UserService { diff --git a/src/main/java/model/Cause.java b/src/main/java/domain/donation/Cause.java similarity index 76% rename from src/main/java/model/Cause.java rename to src/main/java/domain/donation/Cause.java index 0cdebab..ae9311d 100644 --- a/src/main/java/model/Cause.java +++ b/src/main/java/domain/donation/Cause.java @@ -1,3 +1,3 @@ -package model; +package domain.donation; public enum Cause { HEALTH, EMERGENCY_RELIEF, CHILDREN, ENVIRONMENT, CONFLICTS; } diff --git a/src/main/java/model/Donation.java b/src/main/java/domain/donation/Donation.java similarity index 94% rename from src/main/java/model/Donation.java rename to src/main/java/domain/donation/Donation.java index 8a5cac1..ff49864 100644 --- a/src/main/java/model/Donation.java +++ b/src/main/java/domain/donation/Donation.java @@ -1,4 +1,7 @@ -package model; +package domain.donation; + +import domain.organization.Organization; +import domain.user.User; import java.math.BigDecimal; import java.time.LocalDateTime; diff --git a/src/main/java/model/Organization.java b/src/main/java/domain/organization/Organization.java similarity index 97% rename from src/main/java/model/Organization.java rename to src/main/java/domain/organization/Organization.java index 9b680ac..c4d5d3c 100644 --- a/src/main/java/model/Organization.java +++ b/src/main/java/domain/organization/Organization.java @@ -1,4 +1,6 @@ -package model; +package domain.organization; + +import domain.donation.Cause; import java.util.Objects; diff --git a/src/main/java/domain/user/Role.java b/src/main/java/domain/user/Role.java new file mode 100644 index 0000000..b2dd36c --- /dev/null +++ b/src/main/java/domain/user/Role.java @@ -0,0 +1,4 @@ +package domain.user; + +public enum Role { +} diff --git a/src/main/java/model/User.java b/src/main/java/domain/user/User.java similarity index 87% rename from src/main/java/model/User.java rename to src/main/java/domain/user/User.java index ccb8779..9b5e82f 100644 --- a/src/main/java/model/User.java +++ b/src/main/java/domain/user/User.java @@ -1,6 +1,4 @@ -package model; - -import password.PasswordHash; +package domain.user; public class User { private String userName; @@ -9,10 +7,6 @@ public class User { private String password; public User(String userName, String phoneNumber, String password, String eMail) { - this.userName = userName; - this.phoneNumber = phoneNumber; - this.eMail = eMail; - this.password = password; if (userName == null || userName.isBlank()) { throw new IllegalArgumentException("Username has to be filled in"); @@ -32,7 +26,7 @@ public User(String userName, String phoneNumber, String password, String eMail) this.userName = userName; this.phoneNumber = phoneNumber; - this.eMail = eMail; + this.eMail = eMail.trim(); this.password = password; } diff --git a/src/main/java/gui/GiveHopeGUI.java b/src/main/java/gui/GiveHopeGUI.java deleted file mode 100644 index c5c4524..0000000 --- a/src/main/java/gui/GiveHopeGUI.java +++ /dev/null @@ -1,4 +0,0 @@ -package gui; - -public class GiveHopeGUI { -} diff --git a/src/main/java/service/InnsamlingskontrollenClient.java b/src/main/java/integration/InnsamlingskontrollenClient.java similarity index 92% rename from src/main/java/service/InnsamlingskontrollenClient.java rename to src/main/java/integration/InnsamlingskontrollenClient.java index 9aece36..c0786fa 100644 --- a/src/main/java/service/InnsamlingskontrollenClient.java +++ b/src/main/java/integration/InnsamlingskontrollenClient.java @@ -1,4 +1,4 @@ -package service; +package integration; import java.net.URI; import java.net.http.HttpClient; @@ -6,7 +6,7 @@ import java.net.http.HttpResponse; import com.fasterxml.jackson.databind.ObjectMapper; -import model.Organization; +import domain.organization.Organization; public class InnsamlingskontrollenClient { diff --git a/src/main/java/register/DonationRegister.java b/src/main/java/register/DonationRegister.java deleted file mode 100644 index 0fd05d3..0000000 --- a/src/main/java/register/DonationRegister.java +++ /dev/null @@ -1,4 +0,0 @@ -package register; - -public class DonationRegister { -} diff --git a/src/main/java/register/OrganizationRegister.java b/src/main/java/register/OrganizationRegister.java deleted file mode 100644 index 57f36b9..0000000 --- a/src/main/java/register/OrganizationRegister.java +++ /dev/null @@ -1,4 +0,0 @@ -package register; - -public class OrganizationRegister { -} diff --git a/src/main/java/register/UserRegister.java b/src/main/java/register/UserRegister.java deleted file mode 100644 index b6ae58f..0000000 --- a/src/main/java/register/UserRegister.java +++ /dev/null @@ -1,38 +0,0 @@ -package register; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import model.User; - -public class UserRegister { - private final Map users; - - - public UserRegister(String userName, User user) { - this.users = new HashMap<>(); - } - - public void addUser(User user) { - if (user == null) { - throw new IllegalArgumentException("User cannot be null"); - } - if (!users.containsKey(user.getUsername())) { - users.put(user.getUsername(), user); - } - } - - public void removeUser(User user) { - if (user == null) { - throw new IllegalArgumentException("User cannot be null"); - } - users.remove(user.getUsername()); - } - - public List getAllUsers() { - return new ArrayList<>(users.values()); - } - - public int numberOfAuthors() { return users.size(); } -} diff --git a/src/main/java/ui/GiveHopeGIU.java b/src/main/java/ui/GiveHopeGIU.java new file mode 100644 index 0000000..2617122 --- /dev/null +++ b/src/main/java/ui/GiveHopeGIU.java @@ -0,0 +1,23 @@ +package ui; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.stage.Stage; + +public class GiveHopeGIU extends Application { + + @Override + public void start(Stage stage) throws Exception { + FXMLLoader loader = new FXMLLoader(getClass().getResource("/ui/home.fxml")); + Scene scene = new Scene(loader.load(), 600, 400); + + stage.setTitle("GiveHope"); + stage.setScene(scene); + stage.show(); + } + + public static void main(String[] args) { + launch(); + } +} \ No newline at end of file diff --git a/src/main/java/ui/controller/HomeController.java b/src/main/java/ui/controller/HomeController.java new file mode 100644 index 0000000..bda7d61 --- /dev/null +++ b/src/main/java/ui/controller/HomeController.java @@ -0,0 +1,24 @@ +package ui.controller; + +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.control.Button; + +import java.io.IOException; + +public class HomeController { + + public Button signInButton; + + @FXML + private void goToSignIn() throws IOException { + Parent root = FXMLLoader.load(getClass().getResource("/ui/signIn.fxml")); + signInButton.getScene().setRoot(root); + } + + @FXML + private void handleBrowse() { + System.out.println("Browse button pressed"); + } +} \ No newline at end of file diff --git a/src/main/java/ui/controller/SignInController.java b/src/main/java/ui/controller/SignInController.java new file mode 100644 index 0000000..3e141bf --- /dev/null +++ b/src/main/java/ui/controller/SignInController.java @@ -0,0 +1,36 @@ +package ui.controller; + +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; + +public class SignInController { + + @FXML private TextField emailField; + @FXML private PasswordField passwordField; + @FXML private Label errorLabel; + + @FXML + private void handleSignIn() { + String email = emailField.getText(); + String password = passwordField.getText(); + + // Mini-sjekk for å se at wiring funker + if (email == null || email.isBlank() || password == null || password.isBlank()) { + errorLabel.setText("Please enter email and password."); + return; + } + + errorLabel.setText(""); // nullstill + System.out.println("Trying to sign in with: " + email); + + // Her skal du senere kalle service/DB (ikke her inne direkte!) + } + + @FXML + private void goToRegister() { + System.out.println("Go to Register clicked"); + // Neste steg: bytte scene/view + } +} \ No newline at end of file diff --git a/src/main/java/service/AuthService.java b/src/main/java/util/AuthService.java similarity index 85% rename from src/main/java/service/AuthService.java rename to src/main/java/util/AuthService.java index 3e0f07b..2e02e8b 100644 --- a/src/main/java/service/AuthService.java +++ b/src/main/java/util/AuthService.java @@ -1,7 +1,6 @@ -package service; +package util; -import model.User; -import password.PasswordHash; +import domain.user.User; public class AuthService { diff --git a/src/main/java/password/PasswordHash.java b/src/main/java/util/PasswordHash.java similarity index 97% rename from src/main/java/password/PasswordHash.java rename to src/main/java/util/PasswordHash.java index 4faea00..eb9d601 100644 --- a/src/main/java/password/PasswordHash.java +++ b/src/main/java/util/PasswordHash.java @@ -1,4 +1,4 @@ -package password; +package util; import java.security.MessageDigest; diff --git a/src/main/resources/ui/home.fxml b/src/main/resources/ui/home.fxml new file mode 100644 index 0000000..5028391 --- /dev/null +++ b/src/main/resources/ui/home.fxml @@ -0,0 +1,31 @@ + + + + + + + + + + + + +