- WebUI-Workshop 2024
- Overview
- Tutorials to follow before workshop day
- Local Setup
- Build a project with WebUI - Framework
The purpose of this repository is to provide training material and step by step instructions for new joiners that are to work on ALICE GUIs. The workshop will be split in 3 main categories over the course of 2-3 days. It also gives an introduction to all ALICE projects (Bookkeeping, Control, InfoLogger, Quality Control, RCT).
At the end of the workshop the students should have successfully built a web project based on @aliceo2/web-ui.
The following tutorials are considered to be useful to skim through or complete before the workshop days.
- NodeJS: https://nodejs.dev/en/learn/
- ExpressJS: https://www.tutorialspoint.com/expressjs/index.htm
- gRPC for NodeJS: https://grpc.io/docs/languages/node/
- Sequalize for Databases: https://sequelize.org/docs/v6/getting-started/
- MithrilJS: https://mithril.js.org/
- Docker: https://www.docker.com/101-tutorial/
- CSS Flexbox Guide: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
NodeJS required version >=20
.
Downloading the package from nodejs website will install both NodeJS and NPM.
Check installation was successful:
node -v
npm -v
Install an editor of your choice. For this workshop, presenters will be using Visual Studio Code.
The AliceO2 user applications are built as web projects based on a common UI Framework @aliceo2/web-ui which provides functionality for both front-end and back-end.
All applications are built as SPAs (Single Page Applications).
A single-page application is a web application or website that interacts with the web browser by dynamically rewriting the current web page with new data from the web server. In order to do that, it was decided to make use of MithrilJS and its capabilities of building virtual nodes. MVC
- Examples on how to build Components.
- Scaling your application
- Set of CSS Components built in accordance with ALICE Standards.
Before starting the exercises, fork the repository and clone your fork locally.