https://github.com/graduta/webui-workshop
WebUI - Workshop 2020: Frontend, Backend, Development Process
https://github.com/graduta/webui-workshop
github-action hyperscript istanbuljs mocha nodejs puppeteer sinonjs workshop
Last synced: 11 months ago
JSON representation
WebUI - Workshop 2020: Frontend, Backend, Development Process
- Host: GitHub
- URL: https://github.com/graduta/webui-workshop
- Owner: graduta
- License: other
- Created: 2020-03-10T09:27:38.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2025-03-17T11:29:44.000Z (about 1 year ago)
- Last Synced: 2025-04-19T07:52:15.042Z (about 1 year ago)
- Topics: github-action, hyperscript, istanbuljs, mocha, nodejs, puppeteer, sinonjs, workshop
- Language: JavaScript
- Homepage:
- Size: 77.1 KB
- Stars: 2
- Watchers: 2
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WebUI-Workshop 2024
- [WebUI-Workshop 2024](#webui-workshop-2024)
- [Overview](#overview)
- [Tutorials to follow before workshop day](#tutorials-to-follow-before-workshop-day)
- [Local Setup](#local-setup)
- [NodeJS \& NPM](#nodejs--npm)
- [IDE](#ide)
- [Build a project with WebUI - Framework](#build-a-project-with-webui---framework)
- [0. Intro](#0-intro)
- [1. Introductory NodeJS Exercises](#1-introductory-nodejs-exercises)
- [2. Setting up the project template locally](#2-setting-up-the-project-template-locally)
- [3. Front-End Exercises](#3-front-end-exercises)
- [4. Back-End Exercises](#4-back-end-exercises)
- [5. Development Process](#5-development-process)
- [References](#references)
# Overview
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](https://www.npmjs.com/package/@aliceo2/web-ui).
# Tutorials to follow before workshop day
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/
# Local Setup
### NodeJS & NPM
[NodeJS](https://nodejs.org/en/) required version `>=20`.
Downloading the package from nodejs website will install both NodeJS and NPM.
Check installation was successful:
* `node -v`
* `npm -v`
### IDE
Install an editor of your choice. For this workshop, presenters will be using [Visual Studio Code](https://code.visualstudio.com).
# Build a project with WebUI - Framework
## 0. Intro
The AliceO2 user applications are built as web projects based on a common UI Framework [@aliceo2/web-ui](https://www.npmjs.com/package/@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](https://github.com/AliceO2Group/WebUi/blob/dev/Framework/docs/guide/template-engine.md)
* Examples on how to build [Components](https://github.com/AliceO2Group/WebUi/blob/dev/Framework/docs/guide/components.md).
* [Scaling your application](https://github.com/AliceO2Group/WebUi/blob/dev/Framework/docs/guide/scale-app.md)
* Set of [CSS](https://aliceo2group.github.io/WebUi/Framework/docs/reference/frontend-css.html) Components built in accordance with ALICE Standards.
Before starting the exercises, fork the repository and clone your fork locally.
## 1. [Introductory NodeJS Exercises](./docs/INTRODUCTORY_EXERCISES.md)
## 2. [Setting up the project template locally](./docs/SETUP_WEBUI_TEMPLATE.md)
## 3. [Front-End Exercises](docs/WORKSHOP_FRONTEND.md)
## 4. [Back-End Exercises](docs/WORKSHOP_BACKEND.md)
## 5. [Development Process](docs/DEVELOPMENT_PROCESS.md)
## References
* [Documentation WebUI](https://github.com/AliceO2Group/WebUi/tree/dev/Framework)