# CUBETIQ Fusion - Spring Boot 2.5+ - Vaadin Fusion (21+) - TypeScript - Java 11+ - Kotlin 1.5+ ## Running the application The project is a standard Maven project. To run it from the command line, type `mvnw` (Windows), or `./mvnw` (Mac & Linux), then open http://localhost:8080 in your browser. You can also import the project to your IDE of choice as you would with any Maven project. Read more on [how to set up a development environment for Vaadin projects](https://vaadin.com/docs/latest/guide/install) (Windows, Linux, macOS). ## Deploying to Production To create a production build, call `mvnw clean package -Pproduction` (Windows), or `./mvnw clean package -Pproduction` (Mac & Linux). This will build a JAR file with all the dependencies and front-end resources, ready to be deployed. The file can be found in the `target` folder after the build completes. Once the JAR file is built, you can run it using `java -jar target/myapp-1.0-SNAPSHOT.jar` (NOTE, replace `myapp-1.0-SNAPSHOT.jar` with the name of your jar). ## Project structure
DirectoryDescription
frontend/Client-side source directory
    index.htmlHTML template
    index.tsFrontend entrypoint, contains the client-side routing setup using Vaadin Router
    main-layout.tsMain layout Web Component, contains the navigation menu, uses App Layout
    server-layout.tsBlank layout Web Component for server-side Java/Kotlin views
    views/UI views Web Components (TypeScript)
    themes/Custom CSS styles
src/main/java/com/cubetiqs/fusionServer-side source directory, contains the server-side Java views
src/main/kotlin/com/cubetiqs/fusionServer-side source directory, contains the server-side Kotlin views
    Application.ktServer entry-point
## Deploying using Docker To build the Dockerized version of the project, run ``` docker build . -t myapp:latest ``` Once the Docker image is correctly built, you can test it locally using ``` docker run -p 8080:8080 myapp:latest ```