-
Notifications
You must be signed in to change notification settings - Fork 0
Releases
The following instructions are for building and running the client application and server for the sprints only (Some of them are also deprecated since the server code has been changed, but they are left for completeness).
Packaging Client Application:
To package the app, simply go to the Gradle menu on IntelliJ and go to the application folder and then the compose desktop folder in which you will find the command packageDmg (or for Windows packageMSI). This will create an installer on your local machine. The installer is usually installed in application/build/compose/binaries/main/dmg (or /msi).
Releases:
Sprint 1 (Release v0.1)
Release Notes: The notes are located in releases/v0.1-release-notes.md
Client Installer: The client installer is located in releases/v0.1-CalendarApp-installer.dmg
Running and Building the Server:
v0.1: As user authentication is not yet implemented, here are the instructions to get the project running
- First, run the server code by clicking on Run in the main function in the Application file of the server directory
- Since the user of the current database is hardcoded on Cedric's local machine's database, the UI will crash since the routes are based on the user in his database. You will need to create your own user. You can do so by sending a POST request to the route "localhost:8080/user". You can do so using Postman. You will need set the body to JSON and give it a username like this: { "username": "Daniel" }
- Now, copy the id returned by the API. This will be your hardcoded user's ID. In the UI application directory, copy that ID to the application/src/main/kotlin/APIclient/CourseSchedulesClient file in two different places. In the function addUserCourse and updateSchedule, replace the hardcoded ID in the URL with your own ID (e.g. the url is http://0.0.0.0:8080/user/48d99b1a-d963-4686-870c-52d6bac6dd9f/course). Replace "48d99..d9f" with your own.
Sprint 2 (Release v0.2):
Release Notes: The notes are located at releases/v0.2-release-notes.md
Client Installer: The client installer is located at releases/v0.2-CalendarApp-installer.dmg
Running and Building the Server:
v0.2: To build the server, first run "./gradlew :server:buildFatJar" from the root of the project or directly from IntelliJ Then, cd into the server directory and run "Docker compose up --build" if it's the first time. On subsequent runs of the server, you can omit the "--build". However, if the server code has been changed, then you will need to rebuild the jar file and rebuild Docker as while. I recommend using a GUI interface to see the contents of the database. Postico 2 works well, but you might need to download Postgres.
Sprint 3 (Release v0.3):
Release Notes: The notes are located at releases/v0.3-release-notes.md
Client Installer: The client installer is located at releases/v0.3-CalendarApp-installer.dmg
Running and Building the Server:
v0.3: Same as Sprint 2, but make sure to rebuild the Fat Jar since the server code has been changed.
Sprint 4 (Release v0.4):
Release Notes: The notes are located at releases/v0.4-release-notes.md
Client Installer: The client installer is located at releases/v0.4-CalendarApp-installer.dmg
Running and Building the Server:
V0.4: Same as Spring 2 and 3, but the optimization feature has been added to the project. The OptaPlanner engine which is used for solving the scheduling problems only supports Spring Boot, so a Spring Boot server project has been added. The server is located under the plannerServer directory. To build the server, first run “./gradlew :plannerServer:build” from the root of the project. Then, cd into the plannerServer directory and run “Docker compose up --build” if it’s the first time. On subsequent runs of the server, you can omit the "--build". If the server code has been changed, then you will need to rebuild the jar file and rebuild Docker as while.