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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/ui/signIn.fxml b/src/main/resources/ui/signIn.fxml
new file mode 100644
index 0000000..5bb59d4
--- /dev/null
+++ b/src/main/resources/ui/signIn.fxml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/java/domain/DonationTest.java b/src/test/java/domain/DonationTest.java
new file mode 100644
index 0000000..bb9c875
--- /dev/null
+++ b/src/test/java/domain/DonationTest.java
@@ -0,0 +1,5 @@
+package domain;
+
+class DonationTest {
+
+}
\ No newline at end of file
diff --git a/src/test/java/domain/OrganizationTest.java b/src/test/java/domain/OrganizationTest.java
new file mode 100644
index 0000000..815aa53
--- /dev/null
+++ b/src/test/java/domain/OrganizationTest.java
@@ -0,0 +1,5 @@
+package domain;
+
+class OrganizationTest {
+
+}
\ No newline at end of file
diff --git a/src/test/java/domain/UserTest.java b/src/test/java/domain/UserTest.java
new file mode 100644
index 0000000..c21aa90
--- /dev/null
+++ b/src/test/java/domain/UserTest.java
@@ -0,0 +1,5 @@
+package domain;
+
+class UserTest {
+
+}
\ No newline at end of file
diff --git a/src/test/java/model/DonationTest.java b/src/test/java/model/DonationTest.java
deleted file mode 100644
index 954bd94..0000000
--- a/src/test/java/model/DonationTest.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package model;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class DonationTest {
-
-}
\ No newline at end of file
diff --git a/src/test/java/model/OrganizationTest.java b/src/test/java/model/OrganizationTest.java
deleted file mode 100644
index c4ee8ba..0000000
--- a/src/test/java/model/OrganizationTest.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package model;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class OrganizationTest {
-
-}
\ No newline at end of file
diff --git a/src/test/java/model/UserTest.java b/src/test/java/model/UserTest.java
deleted file mode 100644
index af46b3f..0000000
--- a/src/test/java/model/UserTest.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package model;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class UserTest {
-
-}
\ No newline at end of file
diff --git a/src/test/java/service/DonationServiceTest.java b/src/test/java/service/DonationServiceTest.java
deleted file mode 100644
index dd2a607..0000000
--- a/src/test/java/service/DonationServiceTest.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package service;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class DonationServiceTest {
-
-}
\ No newline at end of file
diff --git a/src/test/java/service/OrganizationServiceTest.java b/src/test/java/service/OrganizationServiceTest.java
deleted file mode 100644
index 182cc6a..0000000
--- a/src/test/java/service/OrganizationServiceTest.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package service;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class OrganizationServiceTest {
-
-}
\ No newline at end of file
diff --git a/src/test/java/service/UserServiceTest.java b/src/test/java/service/UserServiceTest.java
deleted file mode 100644
index 74bbe85..0000000
--- a/src/test/java/service/UserServiceTest.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package service;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class UserServiceTest {
-
-}
\ No newline at end of file