Welcome. We maintain a docusaurus site containing all the details of the project. Why not get started there:
https://vuu.finos.org/desktop/docs/introduction/intro
See the Docs for Java versions and dependencies you need.
#In your favourite code directory...
git clone https://github.com/finos/vuu.git
#cd into the repository
cd vuu
#run the maven compile step
mvn install
#cd into vuu, child in repo
cd example/main
#The server should now be started on your machine
mvn exec:execthis should be the same as Linux & macos just with windows adjusted pathsLayout management requires persisting layouts. Layouts can either be persisted locally or remotely. The remote implementation requires spinning up a Springboot server instance, but is more robust and reflective of a real-world application.
Changing whether local/remote is used is configured with the following flag:
- Open
finos-vuu\vuu-ui\showcase\vite.config.js(for Showcase), orfinos-vuu\vuu-ui\sample-apps\app-vuu-example\esbuild.mjs(for sample app) - Set
"process.env.LOCAL"flag totruefor local, orfalsefor remote
The local implementation is default. It uses browser local storage. If you have chosen the remote implementation, ensure you are running the remote server.
You can run the remote server from IntelliJ or via CLI. Once running, use http://localhost:8081/api/swagger to review endpoints and contracts. It uses an in-memory H2 database, and can be accessed at http://localhost:8081/api/h2-console.
#from top-level vuu repo (not vuu child directory in repo)
cd layout-server
mvn spring-boot:run- Follow steps 3-5 outlined in 'Configuring IntelliJ' below
- Select 'LayoutServer' config and click run
You may prefer to run the backend using the IntelliJ IDE, if so, you will need to follow the Client Installation above to ensure that the project has built correctly.
- Install the Scala plugin: file -> settings -> plugins
- Install Scala 2.13.10
- Set project SDK version to 11: file -> project structure -> select an SDK -> require version 11
- Enable 'Use plugin registry': file -> settings -> build, execution, deployment -> Maven
- Open Maven tab on the right and click install on vuu-parent -> lifecycle -> install
- In the terminal, navigate to
vuu-ui/sample-apps/app-vuu-example- Run
npm install
npm run build- In IntelliJ, select 'SimulMain' config and click run
- If you get a 'certificate-unknown' error, set 'Allow invalid certificates for resources loaded from localhost' to 'Enabled' in your chrome settings
The UI scripts all run from the vuu/vuu-ui directory.
#from top-level vuu repo (not vuu child directory in repo)
cd vuu-ui
npm install
npm run build
npm run build:appYou can now open the demo app in your browser at https://127.0.0.1:8443/index.html
Alternatively, you may choose to run the demo app in Electron. First install Electron in the tools/electron folder:
#from top-level vuu repo (not vuu child directory in repo)
cd vuu-ui/tools/electron
npm installThen, back in vuu-ui, run the launch script"
#from vuu/vuu-ui
npm run launch:demo:electronWork In Progress!
For any questions, bugs or feature requests please open an issue.
To submit a contribution:
- Fork it (https://github.com/finos/vuu/fork)
- Create your feature branch (
git checkout -b feature/fooBar) - Read our contribution guidelines and Community Code of Conduct
- Commit your changes (
git commit -am 'Add some fooBar') - Push to the branch (
git push origin feature/fooBar) - Create a new Pull Request
NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
Need an ICLA? Unsure if you are covered under an existing CCLA? Email help@finos.org
| Type | Used For | Example / Naming convention |
|---|---|---|
| End To End Tests (Server only) | Sending websocket message to server and assert on messages returned. Spin up real VUU server | Tests that ends in WSApiTest |
| Scenario Tests | Test specific scenario that may span multiple ui / server interactions. Uses test VUU server and various helpers to write tests with ease | No name convention. Extends VuuServerTestCase |
| Functional Unit Tests | Unit test logical group of classes to test an overall functional behaviour, show different ways the feature is intended to be used | Tests that ends in FunctionalTest |
| Unit Tests | Good old plain vanilla unit tests | Start with class name/subject of the test, ends in Test |
| Java Tests | Tests interfaces that can be called or extended by application that use the VUU in Java OR test for java application using VUU | Tests in vuu-java module or example/main-java module |
These are work in progress and intended to show the intention of the direction that it is heading. If decision is to take it forward, need to evolve it more and implement it for rest of the codebase. If decision is to reverse, should be removed to achieve consistency
| Change | Description |
|---|---|
| UI and Server API review | New websocket message types #1447. See Messages.scala |
| RPC Handler registration and resolution | See #1503 |
| Functional Error handling | See #1504 |
| Type | Used For | Example / Naming convention |
|---|---|---|
| End To End Tests (Server only) | Sending websocket message to server and assert on messages returned. Spin up real VUU server | Tests that ends in WSApiTest |
| Scenario Tests | Test specific scenario that may span multiple ui / server interactions. Uses test VUU server | No name convention. Extends VuuServerTestCase |
| Java Tests | Tests interfaces that can be called or extended by application that use the library in Java Or test for java application using VUU | Tests in vuu-java module or example/main-java module |
Copyright 2022 venuu-io
Distributed under the Apache License, Version 2.0.
SPDX-License-Identifier: Apache-2.0