vuu
vuu copied to clipboard
Vuu - an open source view server and html 5 based UI system
Vuu
The Realtime View Server
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
Installation - Server
Vuu Server
Prerequisites
See the Docs for Java versions and dependencies you need.
OS X & Linux
#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:exec
Windows
this should be the same as Linux & macos just with windows adjusted paths
Layout Server
Layout 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.
Choosing local or remote
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 totrue
for local, orfalse
for 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.
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
.
CLI
#from top-level vuu repo (not vuu child directory in repo)
cd layout-server
mvn spring-boot:run
From IntelliJ
- Follow steps 3-5 outlined in 'Configuring IntelliJ' below
- Select 'LayoutServer' config and click run
Configuring IntelliJ
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
Installation - Client
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:app
You 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 install
Then, back in vuu-ui, run the launch script"
#from vuu/vuu-ui
npm run launch:demo:electron
Usage example
Work In Progress!
Roadmap
Contact
Contributing
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 [email protected]
License
Copyright 2022 venuu-io
Distributed under the Apache License, Version 2.0.
SPDX-License-Identifier: Apache-2.0