From 4b702bc63be2a6dc1cc2ac66069c13dd9af4da5a Mon Sep 17 00:00:00 2001 From: cugurlu Date: Sat, 16 Mar 2019 22:43:30 +0100 Subject: [PATCH] Add configurations for basic authentication --- src/.idea/workspace.xml | 681 ++++++------ .../java/greenify/client/Application.java | 5 +- .../controller/DashBoardController.java | 41 +- .../controller/RegisterWindowController.java | 15 +- .../client/controller/UserController.java | 22 +- .../greenify/client/rest/UserService.java | 28 +- .../main/resources/fxml/RegisterWindow.fxml | 79 +- .../src/main/resources/fxml/dashboard.fxml | 30 +- .../src/main/resources/fxml/sample.fxml | 24 +- .../resources/stylesheets/dashboardStyle.css | 23 - .../greenify/server/rest/UserController.java | 12 + .../greenify/server/service/UserService.java | 37 +- src/src/.classpath | 7 + src/src/.idea/checkstyle-idea.xml | 16 + src/src/.idea/checkstyleidea-libs/readme.txt | 6 + src/src/.idea/compiler.xml | 8 + src/src/.idea/encodings.xml | 4 + src/src/.idea/gradle.xml | 23 + src/src/.idea/misc.xml | 7 + src/src/.idea/uiDesigner.xml | 124 +++ src/src/.idea/vcs.xml | 6 + src/src/.idea/workspace.xml | 985 ++++++++++++++++++ src/src/.project | 17 + src/src/Client/.classpath | 270 +++++ src/src/Client/.idea/compiler.xml | 9 + src/src/Client/.idea/encodings.xml | 4 + src/src/Client/.idea/gradle.xml | 20 + src/src/Client/.idea/misc.xml | 7 + src/src/Client/.idea/modules.xml | 8 + src/src/Client/.idea/uiDesigner.xml | 124 +++ src/src/Client/.idea/workspace.xml | 489 +++++++++ src/src/Client/.project | 17 + src/src/Client/build.gradle | 83 ++ .../java/greenify/client/Application.java | 45 + .../controller/DashBoardController.java | 73 ++ .../controller/RegisterWindowController.java | 68 ++ .../client/controller/UserController.java | 112 ++ .../greenify/client/rest/UserService.java | 62 ++ .../src/main/resources/addActivity1.png | Bin 0 -> 8381 bytes .../src/main/resources/addActivity2.png | Bin 0 -> 8406 bytes .../src/main/resources/application.properties | 0 .../main/resources/fxml/RegisterWindow.fxml | 44 + .../src/main/resources/fxml/dashboard.fxml | 99 ++ .../src/main/resources/fxml/sample.fxml | 34 + .../Client/src/main/resources/pinkleaf.jpg | Bin 0 -> 252662 bytes .../src/main/resources/registerBackground.png | Bin 0 -> 19748 bytes .../resources/stylesheets/Big Designer.ttf | Bin 0 -> 222308 bytes .../resources/stylesheets/DesignioRegular.otf | Bin 0 -> 20716 bytes .../resources/stylesheets/dashboardStyle.css | 31 + .../Client/src/test/java/UserServiceTest.java | 35 + src/src/Common/.classpath | 11 + src/src/Common/.project | 17 + src/src/Common/build.gradle | 45 + .../greenify/common/ApplicationException.java | 7 + .../java/greenify/common/ErrorResponse.java | 19 + .../main/java/greenify/common/UserDTO.java | 35 + .../src/test/java/ErrorResponseTest.java | 23 + src/src/Common/src/test/java/UserDTOTest.java | 25 + src/src/Server/.classpath | 439 ++++++++ src/src/Server/.idea/encodings.xml | 4 + src/src/Server/.idea/gradle.xml | 20 + src/src/Server/.idea/misc.xml | 7 + src/src/Server/.idea/workspace.xml | 443 ++++++++ src/src/Server/.project | 17 + src/src/Server/build.gradle | 66 ++ .../java/greenify/server/Application.java | 13 + .../java/greenify/server/data/model/User.java | 82 ++ .../data/repository/UserRepository.java | 10 + .../greenify/server/rest/MainController.java | 38 + .../server/rest/RestExceptionHandler.java | 17 + .../greenify/server/rest/UserController.java | 32 + .../greenify/server/service/UserService.java | 68 ++ .../src/main/resources/application.properties | 6 + .../Server/src/test/java/ApplicationTest.java | 16 + .../src/test/java/UserControllerTest.java | 46 + src/src/Server/src/test/java/UserTest.java | 46 + 76 files changed, 4830 insertions(+), 556 deletions(-) create mode 100644 src/src/.classpath create mode 100644 src/src/.idea/checkstyle-idea.xml create mode 100644 src/src/.idea/checkstyleidea-libs/readme.txt create mode 100644 src/src/.idea/compiler.xml create mode 100644 src/src/.idea/encodings.xml create mode 100644 src/src/.idea/gradle.xml create mode 100644 src/src/.idea/misc.xml create mode 100644 src/src/.idea/uiDesigner.xml create mode 100644 src/src/.idea/vcs.xml create mode 100644 src/src/.idea/workspace.xml create mode 100644 src/src/.project create mode 100644 src/src/Client/.classpath create mode 100644 src/src/Client/.idea/compiler.xml create mode 100644 src/src/Client/.idea/encodings.xml create mode 100644 src/src/Client/.idea/gradle.xml create mode 100644 src/src/Client/.idea/misc.xml create mode 100644 src/src/Client/.idea/modules.xml create mode 100644 src/src/Client/.idea/uiDesigner.xml create mode 100644 src/src/Client/.idea/workspace.xml create mode 100644 src/src/Client/.project create mode 100644 src/src/Client/build.gradle create mode 100644 src/src/Client/src/main/java/greenify/client/Application.java create mode 100644 src/src/Client/src/main/java/greenify/client/controller/DashBoardController.java create mode 100644 src/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java create mode 100644 src/src/Client/src/main/java/greenify/client/controller/UserController.java create mode 100644 src/src/Client/src/main/java/greenify/client/rest/UserService.java create mode 100644 src/src/Client/src/main/resources/addActivity1.png create mode 100644 src/src/Client/src/main/resources/addActivity2.png create mode 100644 src/src/Client/src/main/resources/application.properties create mode 100644 src/src/Client/src/main/resources/fxml/RegisterWindow.fxml create mode 100644 src/src/Client/src/main/resources/fxml/dashboard.fxml create mode 100644 src/src/Client/src/main/resources/fxml/sample.fxml create mode 100644 src/src/Client/src/main/resources/pinkleaf.jpg create mode 100644 src/src/Client/src/main/resources/registerBackground.png create mode 100644 src/src/Client/src/main/resources/stylesheets/Big Designer.ttf create mode 100644 src/src/Client/src/main/resources/stylesheets/DesignioRegular.otf create mode 100644 src/src/Client/src/main/resources/stylesheets/dashboardStyle.css create mode 100644 src/src/Client/src/test/java/UserServiceTest.java create mode 100644 src/src/Common/.classpath create mode 100644 src/src/Common/.project create mode 100644 src/src/Common/build.gradle create mode 100644 src/src/Common/src/main/java/greenify/common/ApplicationException.java create mode 100644 src/src/Common/src/main/java/greenify/common/ErrorResponse.java create mode 100644 src/src/Common/src/main/java/greenify/common/UserDTO.java create mode 100644 src/src/Common/src/test/java/ErrorResponseTest.java create mode 100644 src/src/Common/src/test/java/UserDTOTest.java create mode 100644 src/src/Server/.classpath create mode 100644 src/src/Server/.idea/encodings.xml create mode 100644 src/src/Server/.idea/gradle.xml create mode 100644 src/src/Server/.idea/misc.xml create mode 100644 src/src/Server/.idea/workspace.xml create mode 100644 src/src/Server/.project create mode 100644 src/src/Server/build.gradle create mode 100644 src/src/Server/src/main/java/greenify/server/Application.java create mode 100644 src/src/Server/src/main/java/greenify/server/data/model/User.java create mode 100644 src/src/Server/src/main/java/greenify/server/data/repository/UserRepository.java create mode 100644 src/src/Server/src/main/java/greenify/server/rest/MainController.java create mode 100644 src/src/Server/src/main/java/greenify/server/rest/RestExceptionHandler.java create mode 100644 src/src/Server/src/main/java/greenify/server/rest/UserController.java create mode 100644 src/src/Server/src/main/java/greenify/server/service/UserService.java create mode 100644 src/src/Server/src/main/resources/application.properties create mode 100644 src/src/Server/src/test/java/ApplicationTest.java create mode 100644 src/src/Server/src/test/java/UserControllerTest.java create mode 100644 src/src/Server/src/test/java/UserTest.java diff --git a/src/.idea/workspace.xml b/src/.idea/workspace.xml index d7cd59b..b69fda1 100644 --- a/src/.idea/workspace.xml +++ b/src/.idea/workspace.xml @@ -1,30 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - + @@ -81,6 +58,9 @@ + + + @@ -91,85 +71,28 @@ - + - + - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/src/.project b/src/src/.project new file mode 100644 index 0000000..d4fb5ff --- /dev/null +++ b/src/src/.project @@ -0,0 +1,17 @@ + + + OOPP + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/src/Client/.classpath b/src/src/Client/.classpath new file mode 100644 index 0000000..e5b885c --- /dev/null +++ b/src/src/Client/.classpath @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/src/Client/.idea/compiler.xml b/src/src/Client/.idea/compiler.xml new file mode 100644 index 0000000..3d94435 --- /dev/null +++ b/src/src/Client/.idea/compiler.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/src/Client/.idea/encodings.xml b/src/src/Client/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/src/src/Client/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/src/Client/.idea/gradle.xml b/src/src/Client/.idea/gradle.xml new file mode 100644 index 0000000..d1f1d89 --- /dev/null +++ b/src/src/Client/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/src/src/Client/.idea/misc.xml b/src/src/Client/.idea/misc.xml new file mode 100644 index 0000000..9870be1 --- /dev/null +++ b/src/src/Client/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/src/Client/.idea/modules.xml b/src/src/Client/.idea/modules.xml new file mode 100644 index 0000000..cde60df --- /dev/null +++ b/src/src/Client/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/src/Client/.idea/uiDesigner.xml b/src/src/Client/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/src/src/Client/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/src/Client/.idea/workspace.xml b/src/src/Client/.idea/workspace.xml new file mode 100644 index 0000000..06551d4 --- /dev/null +++ b/src/src/Client/.idea/workspace.xml @@ -0,0 +1,489 @@ + + + + + + + + + + + + + hello.* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + 1550791437583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No facets are configured + + + + + + + + + + + + + + + 10 + + + + + + + + main|com.bettercoding.jfx.Client + + + + + + + + 10 + + + + + + + + Gradle: ch.qos.logback:logback-classic:1.2.3 + + + + + + + + \ No newline at end of file diff --git a/src/src/Client/.project b/src/src/Client/.project new file mode 100644 index 0000000..2598613 --- /dev/null +++ b/src/src/Client/.project @@ -0,0 +1,17 @@ + + + Client + + + + org.eclipse.jdt.core.javanature + + + + org.eclipse.jdt.core.javabuilder + + + + + + diff --git a/src/src/Client/build.gradle b/src/src/Client/build.gradle new file mode 100644 index 0000000..9b01f2b --- /dev/null +++ b/src/src/Client/build.gradle @@ -0,0 +1,83 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE") + } +} + +apply plugin: 'java' +apply plugin: 'eclipse' +apply plugin: 'idea' +apply plugin: 'org.springframework.boot' +apply plugin: 'io.spring.dependency-management' +apply plugin: 'jacoco' +//apply plugin: 'checkstyle' +// +//checkstyle { +// version = '7.8.1' +// config = 'checkstyle/checkstyle.xml' as File +//} +// +//checkstyleMain { +// source ='src/main/java' +//} +// +//checkstyleTest { +// source ='src/test/java' +//} +// +//tasks.withType(Checkstyle) { +// reports { +// xml.enabled false +// html.enabled true +// html.stylesheet resources.text.fromFile('config/xsl/checkstyle-custom.xsl') +// } +//} + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +test { + useJUnitPlatform() +} + +bootJar { + baseName = 'gs-consuming-rest' + version = '0.1.0' +} + +repositories { + mavenCentral() +} + +dependencies { + compile("org.springframework.boot:spring-boot-starter") + compile("org.springframework:spring-web") + compile("com.fasterxml.jackson.core:jackson-databind") + testCompile("junit:junit") + compile project(':src:Common') + testCompile('org.springframework.boot:spring-boot-starter-test') + testCompile( + 'junit:junit:4.12', + 'org.junit.jupiter:junit-jupiter-api:5.4.0' + ) + testRuntime( + 'org.junit.jupiter:junit-jupiter-engine:5.4.0', + 'org.junit.vintage:junit-vintage-engine:5.4.0' + ) +} + +jacoco { + toolVersion = "0.8.3" + reportsDir = file("$buildDir/customJacocoReportDir") +} + +jacocoTestReport { + reports { + xml.enabled false + csv.enabled false + html.destination file("${buildDir}/jacocoHtml") + } +} \ No newline at end of file diff --git a/src/src/Client/src/main/java/greenify/client/Application.java b/src/src/Client/src/main/java/greenify/client/Application.java new file mode 100644 index 0000000..ede019f --- /dev/null +++ b/src/src/Client/src/main/java/greenify/client/Application.java @@ -0,0 +1,45 @@ +package greenify.client; + +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; + +@SpringBootApplication +public class Application extends javafx.application.Application { + private ConfigurableApplicationContext springContext; + private Parent rootNode; + private FXMLLoader fxmlLoader; + private static final Logger log = LoggerFactory.getLogger(Application.class); + + public static void main(String[] args) { + launch(args); + } + + @Override + public void init() throws Exception { + springContext = SpringApplication.run(Application.class); + fxmlLoader = new FXMLLoader(); + fxmlLoader.setControllerFactory(springContext::getBean); + } + + @Override + public void start(Stage primaryStage) throws Exception { + fxmlLoader.setLocation(this.getClass().getClassLoader().getResource("fxml/sample.fxml")); + rootNode = fxmlLoader.load(); + primaryStage.setTitle("Greenify"); + Scene scene = new Scene(rootNode); + primaryStage.setScene(scene); + primaryStage.show(); + } + + @Override + public void stop() { + springContext.stop(); + } +} \ No newline at end of file diff --git a/src/src/Client/src/main/java/greenify/client/controller/DashBoardController.java b/src/src/Client/src/main/java/greenify/client/controller/DashBoardController.java new file mode 100644 index 0000000..3e4b76e --- /dev/null +++ b/src/src/Client/src/main/java/greenify/client/controller/DashBoardController.java @@ -0,0 +1,73 @@ +package greenify.client.controller; + +import greenify.client.rest.UserService; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.layout.AnchorPane; +import org.springframework.stereotype.Controller; + +@Controller +public class DashBoardController { + + private int count = 0; + + @FXML + public AnchorPane menuBar; + public AnchorPane dashboardPane; + public AnchorPane userPane; + public AnchorPane activitiesPane; + public Label welcomebacktext; + public Button dashboardButton; + public Button activitiesButton; + public Button userButton; + public Button veganMealButton; + public Label counter; + public Label scoreField; + + /** + * displays the dashboard pane. + * @param event the event (clicking the button) + */ + public void displayDashboard(ActionEvent event) { + System.out.println("display dashboard"); + dashboardPane.setVisible(true); + userPane.setVisible(false); + activitiesPane.setVisible(false); + } + + /** + * displays the activities pane. + * @param event the event (clicking the button) + */ + public void displayActivities(ActionEvent event) { + System.out.println("display activities"); + dashboardPane.setVisible(false); + userPane.setVisible(false); + activitiesPane.setVisible(true); + } + + /** + * displays the user profile pane. + * @param event the event (clicking the button) + */ + public void displayUser(ActionEvent event) { + System.out.println("display user"); + dashboardPane.setVisible(false); + userPane.setVisible(true); + activitiesPane.setVisible(false); + } + + /** + * adds a vegetarian meal. + * @param event the event (clicking the button) + */ + public void addVeganMeal(ActionEvent event) { + count++; + counter.setText("Count: " + count); + UserService service = new UserService(); + service.addVeganMeal(null, null); + System.out.println("Vegetarian meal is added"); + } +} diff --git a/src/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java b/src/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java new file mode 100644 index 0000000..a0e6a8b --- /dev/null +++ b/src/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java @@ -0,0 +1,68 @@ +package greenify.client.controller; + +import greenify.client.rest.UserService; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.stage.Stage; +import javafx.stage.Window; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; + +@Controller +public class RegisterWindowController { + + @Autowired + UserService userService; + + @FXML + private TextField userNameText; + @FXML + private PasswordField passwordField; + @FXML + private PasswordField passwordField2; + @FXML + private Button signupButton; + + /** + * signs the user up. + * @param event the click of the signup button + */ + @FXML + public void handleSignUpButton(ActionEvent event) { + //set the window to the current window (for displaying the alerts) + Window owner = signupButton.getScene().getWindow(); + //check if the username field is empty + if (userNameText.getText().isEmpty()) { + //if so, display an alert + UserController.AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Username Error!", + "Please enter a username!"); + return; + } + + //check if the password field is empty + if (passwordField.getText().isEmpty()) { + //if so, display an alert + UserController.AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Password Error!", + "Please enter a password!"); + return; + } + + //check if the two password fields are equal + if (!passwordField.getText().equals(passwordField2.getText())) { + //if not, display an alert + UserController.AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Password Error!", + "Please make sure the passwords entered are the same!"); + return; + } + + userService.registerUser(userNameText.getText(), passwordField.getText()); + + //close the register window after the user has entered all the credentials + Stage current = (Stage) owner; + current.close(); + } +} diff --git a/src/src/Client/src/main/java/greenify/client/controller/UserController.java b/src/src/Client/src/main/java/greenify/client/controller/UserController.java new file mode 100644 index 0000000..abf29a5 --- /dev/null +++ b/src/src/Client/src/main/java/greenify/client/controller/UserController.java @@ -0,0 +1,112 @@ +package greenify.client.controller; + +import greenify.client.rest.UserService; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.stage.Stage; +import javafx.stage.Window; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; + +import java.io.IOException; + +@Controller +public class UserController { + @Autowired + UserService userService; + + @FXML + public TextField usernameField; + + @FXML + private PasswordField passwordField; + + @FXML + private Button loginButton; + + @FXML + private Button signupButton; + + @FXML + protected void handleLoginButtonAction(ActionEvent event) throws IOException { + Window owner = loginButton.getScene().getWindow(); + if (usernameField.getText().isEmpty()) { + AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Log-in Error!", + "Please enter your username"); + return; + } else { + System.out.println("Username is " + usernameField.getText()); + } + if (passwordField.getText().isEmpty()) { + AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Log-in Error!", + "Please enter a password"); + return; + } else { + System.out.println("Password is " + passwordField.getText()); + } + userService.loginUser(usernameField.getText(), passwordField.getText()); + Stage current = (Stage) owner; + current.close(); + openDashboard(); + + } + + /** + * opens the dashboard stage. + * @throws IOException exception if fxml file can't be found + * @author sem + */ + public void openDashboard() throws IOException { + Parent dash = FXMLLoader.load( + this.getClass().getClassLoader().getResource("fxml/dashboard.fxml") + ); + Scene scene = new Scene(dash); + scene.getStylesheets().add(getClass().getClassLoader().getResource("stylesheets/dashboardStyle.css").toExternalForm()); + Stage appStage = new Stage(); + appStage.setScene(scene); + appStage.show(); + } + + public static class AlertHelper { + /** + * alerts for the login screen. + * @param alertType the type of alert + * @param owner the owner (window) of the alert + * @param title the title given to the displayed alert + * @param message the message displayed in the alert + */ + public static void showAlert(Alert.AlertType alertType, + Window owner, + String title, + String message) { + Alert alert = new Alert(alertType); + alert.setTitle(title); + alert.setHeaderText(null); + alert.setContentText(message); + alert.initOwner(owner); + alert.show(); + } + } + + public void handleRegisterButtonAction(ActionEvent event) throws Exception{ + //load the fxml file + Parent registerWindow = FXMLLoader.load ( + this.getClass().getClassLoader().getResource("fxml/RegisterWindow.fxml") + ); + //make the window use the scene + Scene registerscene = new Scene(registerWindow); + Stage registerStage = new Stage(); + //open the window + registerStage.setScene(registerscene); + registerStage.setTitle("Enter register credentials"); + registerStage.show(); + } + +} diff --git a/src/src/Client/src/main/java/greenify/client/rest/UserService.java b/src/src/Client/src/main/java/greenify/client/rest/UserService.java new file mode 100644 index 0000000..9ede326 --- /dev/null +++ b/src/src/Client/src/main/java/greenify/client/rest/UserService.java @@ -0,0 +1,62 @@ +package greenify.client.rest; + +import greenify.common.UserDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.http.*; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponentsBuilder; + +@Service +public class UserService { + + @Autowired + RestTemplate restTemplate; + + @Bean + RestTemplate restTemplate(RestTemplateBuilder builder) { + return builder.build(); + } + + /** + * registers the user. + * @param name the username of the user + * @param password the password of the user + * @return a userDTO + */ + public UserDTO registerUser(String name, String password) { + HttpHeaders headers = new HttpHeaders(); + headers.set("Accept", MediaType.APPLICATION_JSON_VALUE); + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/registerUser") + .queryParam("name", name) + .queryParam("password", password); + HttpEntity entity = new HttpEntity<>(headers); + System.out.println(builder.build().encode().toUri()); + return this.restTemplate.getForObject(builder.build().encode().toUri(), UserDTO.class); + } + + public UserDTO loginUser(String name, String password) { + HttpHeaders headers = new HttpHeaders(); + headers.set("Accept", MediaType.APPLICATION_JSON_VALUE); + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/loginUser") + .queryParam("name", name) + .queryParam("password", password); + HttpEntity entity = new HttpEntity<>(headers); + System.out.println(builder.build().encode().toUri()); + return this.restTemplate.getForObject(builder.build().encode().toUri(), UserDTO.class); + } + + public UserDTO addVeganMeal(Long id, String name) { + HttpHeaders headers = new HttpHeaders(); + headers.set("Accept", MediaType.APPLICATION_JSON_VALUE); + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/addVeganMeal") + .queryParam("id", id) + .queryParam("name", name); + HttpEntity entity = new HttpEntity<>(headers); + System.out.println(builder.build().encode().toUri()); + return this.restTemplate.getForObject(builder.build().encode().toUri(), UserDTO.class); + } +} diff --git a/src/src/Client/src/main/resources/addActivity1.png b/src/src/Client/src/main/resources/addActivity1.png new file mode 100644 index 0000000000000000000000000000000000000000..85af03c1d144ddcf82f39cc9d87ac5fa1488d623 GIT binary patch literal 8381 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 Td$+VW00000NkvXXu0mjfA^Rq= literal 0 HcmV?d00001 diff --git a/src/src/Client/src/main/resources/addActivity2.png b/src/src/Client/src/main/resources/addActivity2.png new file mode 100644 index 0000000000000000000000000000000000000000..48d85d9c2d116f73e43a8feb597ac7f8cfa35b00 GIT binary patch literal 8406 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 literal 0 HcmV?d00001 diff --git a/src/src/Client/src/main/resources/application.properties b/src/src/Client/src/main/resources/application.properties new file mode 100644 index 0000000..e69de29 diff --git a/src/src/Client/src/main/resources/fxml/RegisterWindow.fxml b/src/src/Client/src/main/resources/fxml/RegisterWindow.fxml new file mode 100644 index 0000000..4b3a472 --- /dev/null +++ b/src/src/Client/src/main/resources/fxml/RegisterWindow.fxml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/src/Client/src/main/resources/fxml/dashboard.fxml b/src/src/Client/src/main/resources/fxml/dashboard.fxml new file mode 100644 index 0000000..1627774 --- /dev/null +++ b/src/src/Client/src/main/resources/fxml/dashboard.fxml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/src/Client/src/main/resources/fxml/sample.fxml b/src/src/Client/src/main/resources/fxml/sample.fxml new file mode 100644 index 0000000..ea80989 --- /dev/null +++ b/src/src/Client/src/main/resources/fxml/sample.fxml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + +