cubetiq-fusion/README.md

60 lines
2.6 KiB
Markdown

# 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
<table style="width:100%; text-align: left;">
<tr><th>Directory</th><th>Description</th></tr>
<tr><td><code>frontend/</code></td><td>Client-side source directory</td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<code>index.html</code></td><td>HTML template</td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<code>index.ts</code></td><td>Frontend entrypoint, contains the client-side routing setup using <a href="https://vaadin.com/router">Vaadin Router</a></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<code>main-layout.ts</code></td><td>Main layout Web Component, contains the navigation menu, uses <a href="https://vaadin.com/components/vaadin-app-layout">App Layout</a></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<code>server-layout.ts</code></td><td>Blank layout Web Component for server-side Java/Kotlin views</td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<code>views/</code></td><td>UI views Web Components (TypeScript)</td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<code>themes/</code></td><td>Custom
CSS styles</td></tr>
<tr><td><code>src/main/java/com/cubetiqs/fusion</code></td><td>Server-side
source directory, contains the server-side Java views</td></tr>
<tr><td><code>src/main/kotlin/com/cubetiqs/fusion</code></td><td>Server-side
source directory, contains the server-side Kotlin views</td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<code>Application.kt</code></td><td>Server entry-point</td></tr>
</table>
## 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
```