.mvn/wrapper | ||
.vscode | ||
frontend | ||
src/main | ||
.gitignore | ||
.npmrc | ||
.prettierrc.js | ||
Dockerfile | ||
LICENSE.md | ||
mvnw | ||
mvnw.cmd | ||
package.json | ||
pnpm-lock.yaml | ||
pom.xml | ||
README.md | ||
tsconfig.json | ||
types.d.ts | ||
webpack.config.js |
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 (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
Directory | Description |
---|---|
frontend/ | Client-side source directory |
index.html | HTML template |
index.ts | Frontend entrypoint, contains the client-side routing setup using Vaadin Router |
main-layout.ts | Main layout Web Component, contains the navigation menu, uses App Layout |
server-layout.ts | Blank layout Web Component for server-side Java/Kotlin views |
views/ | UI views Web Components (TypeScript) |
themes/ | Custom CSS styles |
src/main/java/com/cubetiqs/fusion | Server-side source directory, contains the server-side Java views |
src/main/kotlin/com/cubetiqs/fusion | Server-side source directory, contains the server-side Kotlin views |
Application.kt | Server 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