SESsy Library: Een geïntegreerde oefening
Download Locatie: op Github via https://github.com/KULeuven-Diepenbeek/sessylibrary. Zie README.md
op de hoofdpagina. SESsy library is:
A Library Management Simulation WebApp for the ‘SES’ (Software Engineering Skills) course
Installatie
Download via bovenstaande Github link, of met git clone
. Dit is een “Gradle” project, die de build van ons Java ecosysteem verzorgt. Dat wil zeggen dat het Gradle systeem automatisch libraries (jar
bestanden) download van een centrale repository, moesten die nodig zijn. Het enige wat jij moet installeren is Java:
Minimum Vereisten
- Java 11
- Gradle 5.6.x of hoger
Installeer Gradle en de lokale dependencies door middel van de Gradle wrapper. Voer in de sessylibrary map gradlew.bat
(of ./gradlew
voor Unix) uit. Dit download automatisch de juiste versie van Gradle.
Het project builden
Command-line: gradlew.bat shadowjar
.
Het resultaat is sessylibrary-1.0-SNAPSHOT-all.jar
in de build\libs
folder.
Met IntelliJ: open het project (selecteer de root folder), en klik op ‘build’. Alternatief kan je met IntelliJ de gradle.build
file openen en de juiste task starten door in de Gutter op het groene start knopje te klikken.
Het project (de server) opstarten
Er zijn verschillende manieren om de gebuilde jar
file aan het draaien te brengen:
- Command-line Java: Na het builden van de jar, uitvoeren (in de root folder) met
java -jar build\libs\sessylibrary-1.0-SNAPSHOT-all.jar server app.yml
. - Command-line Gradle: (eenvoudiger)
./gradlew serve
. Voert bovenstaande commando uit, reeds door ons zo geconfigureerd. - IntelliJ: Menu Run -> Run… Kies voor klasse
be.kuleuven.sessylibrary.SessyLibApplication
en geef als program arguments (NIET met VM options) “server app.yml” in. Klik op Apply/Run.
De applicatie staat nu live op http://localhost:8080!
Indien je “port already in use” Exceptions krijgt, en je niet in de mogelijkheid bent om poort 8080
vrij te maken, kan je in app.yml
kiezen voor een andere HTTP poort. Plak daarom onderstaande stuk in je config file:
server:
rootPath: /api/
applicationConnectors:
- type: http
port: 9000 (of 8088, of ....)
Componenten
(Documentatie overgenomen uit de Git repository README.md)
Backend
DropWizard Java RESTful API that integrates Jetty/Jackson/… functionality in a nice all-in-one package.
This means executing the jar automatically bootstraps a webserver, and REST calls can be easily added using javax.ws
annotations. See be.kuleuven.sessylibrary.api
classes for examples.
Frontend
VueJS Progressive single-page JS framework that calls the above API endpoints and is served from the very same webserver thanks to the dropwizard-assets
module.
The compiled vuejs webpage should be copied to src/main/resources/assets
- index.htm
is served at /
.
Students do not need to edit the frontend part of this application and may consider this as a ‘given’.
Building and running the Frontend source:
npm install
in the frontend subdirnpm run serve
in the frontend subdir