Note that this repository originally was created on gitlab.
The original repository does not exist anymore and no issues/merges or other types of information related to gitlab is included in the github repository.
Also note that functionality connected to the gitlab repo, such as gitpod or pipeline, does not work.
Information related to students without github user will not be displayed - for example statistics on commits.
We are making an application called Travelu. We have written about its functionality in the README.md in the travelu folder.
- Torbjørn Wiik
- Ken Van Nguyen
- Bendik Norli
- John Hausberg Anfindsen
This project contains:
- A README.md explaining the functionality of the app
- User scenarios for the different use cases of the app
- Documentation about quality assurance of the project
- Documentation of all releases
- Diagrams of the project's architecture and how the application works
- Documentation about our development process
- The application's user interface controllers (travelu/fxui/src/main/java/travelu/fxui)
- FXML files connected to these controllers (resources/travelu/fxui)
- A README.md explaining how we implemented the user interface.
- The application's domain logic (travelu/core/src/main/java/travelu/core)
- A README.md explaining the responsibilities of the domain logic.
- The application's persistence (travelu/localpersistence/src/main/java/travelu/localpersistence)
- A README.md about what we used for persistence and how we implemented it
- The application's REST server API setup (travelu/restserver/src/main/java/travelu/restserver)
- A README.md explaining how the server is set up and how to run it
- The application's REST client (travelu/client/src/main/java/travelu/client)
- A README.md explaining how the client works
- Tests for the application's UI controllers (travelu/fxui/src/test/java/travelu/fxui)
- Tests for the application's domain logic (travelu/core/src/test/java/travelu/core)
- Tests for the application's persistence (travelu/localpersistence/src/test/java/travelu/localpersistence)
- An ingegration test for the application (travelu/integrationtests/src/test/java/travelu/integrationtests)
- A README.md explaining how we implemented and how to run the integration tests
The project is built with maven. To run the project, in terminal:
cd traveluto change into project-foldermvn installin root folder- Note: this also runs tests and installs package
mvn -pl restserver spring-boot:runto start the server handling the rest-api
In a new terminal:
mvn -pl fxui javafx:runto start the application
Notice:
fxui/module-info is deleted for enabling run through Maven.
See module-info for explanation
The project can be installed with JLink and JPackage. This involves creating a binary executable for the application which can then be run by your computer. To install the project, in terminal:
cd fxuito change into ui-foldermvn clean compile javafx:jlinkto generate a zip filecd ..to change into project-foldermvn jpackage:jpackage -f ./fxui/pom.xmlto create a custom runtime image
It is now possible to run the app by unzipping the zip file and running the executable file.
This process is only functional locally (on mac). Teaching assistant has clarified on Piazza that this is sufficient.
Note: The server must be running for the app to work.
After building project, run the following commands in terminal to run tests and generate coverage reports:
cd traveluto change into project-folder- Run
mvn testto get test results - Run
mvn verifyto get test-coverage and quality report - Report found in travelu/core/target/site/jacoco/index.html
See documentaion about test coverage for more information.
NOTE: The UI tests will fail if you have a spring-boot server running when you run the tests. You can either stop the server or run the tests with the -DskipUITests=true flag.
- Backend: Java
- Frontend: JavaFX
- Persistence: JSON
- Testing backend: JUnit
- Testing frontend: TestFX
- Project management: Maven
Integrated functions in VSCode was used to create a boilerplate for the project. This ensured that everything was added correctly. We then followed up with changing pom.xml with the correct version for running on silicon macs and adding dependencies for testing.
Gitpod-tag got added to the README.md in root to enable remote work and easy access for the course-team