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/app/Main.java b/src/main/java/app/Main.java index 0d14e0b..d34d6b3 100644 --- a/src/main/java/app/Main.java +++ b/src/main/java/app/Main.java @@ -1,8 +1,6 @@ package app; -import static db.Database.URL; - -import db.Database; +import persistence.db.Database; public class Main { public static void main(String[] args) { 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 95e6073..a93c263 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/dao/CauseDao.java b/src/main/java/persistence/CauseDao.java similarity index 56% rename from src/main/java/dao/CauseDao.java rename to src/main/java/persistence/CauseDao.java index 78c1a28..4ed035d 100644 --- a/src/main/java/dao/CauseDao.java +++ b/src/main/java/persistence/CauseDao.java @@ -1,4 +1,4 @@ -package dao; +package persistence; public class CauseDao { } diff --git a/src/main/java/dao/DonationDao.java b/src/main/java/persistence/DonationDao.java similarity index 58% rename from src/main/java/dao/DonationDao.java rename to src/main/java/persistence/DonationDao.java index 291b292..a1a0b46 100644 --- a/src/main/java/dao/DonationDao.java +++ b/src/main/java/persistence/DonationDao.java @@ -1,4 +1,4 @@ -package dao; +package persistence; public class DonationDao { } diff --git a/src/main/java/dao/OrganizationDao.java b/src/main/java/persistence/OrganizationDao.java similarity index 61% rename from src/main/java/dao/OrganizationDao.java rename to src/main/java/persistence/OrganizationDao.java index f406a3a..8b45a05 100644 --- a/src/main/java/dao/OrganizationDao.java +++ b/src/main/java/persistence/OrganizationDao.java @@ -1,4 +1,4 @@ -package dao; +package persistence; public class OrganizationDao { } diff --git a/src/main/java/dao/UserDao.java b/src/main/java/persistence/UserDao.java similarity index 89% rename from src/main/java/dao/UserDao.java rename to src/main/java/persistence/UserDao.java index 39575b7..5a77341 100644 --- a/src/main/java/dao/UserDao.java +++ b/src/main/java/persistence/UserDao.java @@ -1,6 +1,6 @@ -package dao; +package persistence; -import db.Database; +import persistence.db.Database; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; diff --git a/src/main/java/db/Database.java b/src/main/java/persistence/db/Database.java similarity index 95% rename from src/main/java/db/Database.java rename to src/main/java/persistence/db/Database.java index 2829bb1..db7cf33 100644 --- a/src/main/java/db/Database.java +++ b/src/main/java/persistence/db/Database.java @@ -1,4 +1,4 @@ -package db; +package persistence.db; import java.sql.Connection; import java.sql.DriverManager; 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/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 { -} diff --git a/src/main/java/service/UserService.java b/src/main/java/service/UserService.java deleted file mode 100644 index 8590544..0000000 --- a/src/main/java/service/UserService.java +++ /dev/null @@ -1,23 +0,0 @@ -package service; - -import model.User; -import register.UserRegister; -import password.PasswordHash; -import service.AuthService; - - -public class UserService { - private AuthService authService; - - public UserService() { - this.authService = authService; - } - - public boolean changeUsername(User user, String password, String newUsername) { - if (authService.login(user, password)) { - user.setUsername(newUsername); - return true; - } - return false; - } -} 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 @@ + + + + + + + + + + + + +