This repository hosts the materials that guide the reader into building a digital twin for the incubator project.
The idea is to give a step by step guide with examples on how to build a digital twin for an incubator.
Each module is in a separate folder, containing one or more Jupyter notebooks. It is strongly recommended that modules and jupyter notebooks are followed in order, as they sometimes depend on each other.
If you encounter any problem, or have any questions, follow the steps:
- Consult the Frequently Asked Questions.
- Check if there are closed or open issues
- Open an issue.
- Contact Claudio who is the course responsible.
We assume the reader is familiar with the following tools (material are provided below for tutorials, but we recommend the reader to search the web for the latest information):
- Git
- Python
- Jupyter
- VSCode
- Docker
- RabbitMQ
- InfluxDB
Installation:
- Depending on your platform, you may have to install the git binary, and then a git graphical user interface.
- The git binary can be obtained here, for your platform: https://git-scm.com/
- The git user interface can be found here: https://git-scm.com/downloads/guis
- For windows, we recommend:
- For mac, we recommend:
- For Linux, we recommend:
- TODO
Tutorial: https://github.com/git-guides
We will use python as the main programming language for creating the digital twin, due to its wide usage, versatility, and excellent library support.
Installation:
- Use Python 3.11 as minimum version. We recommend to install the latest python version, and revert to the suggested version if you face problems.
- Install the python dependencies declared in the requirements.txt file. Run
pip install -r requirements.txt
Tutorial:
- https://docs.python.org/3.11/tutorial/index.html
- Learn about virtual environments and the pip package manager to install python packages: https://docs.python.org/3.11/tutorial/venv.html
Installation:
- https://code.visualstudio.com/docs/setup/setup-overview
- Install the extensions:
- Python
- Jupyter - Running and visualizing Jupyter notebooks
- Markdown All in One - Visualizing the markdown documentation
Tutorial: https://code.visualstudio.com/docs/introvideos/basics
Installation:
- Install Jupyter notebook following instructions from: https://jupyter.org/install
Tutorial:
- Skim https://docs.jupyter.org/en/latest/
- Learn about the Jupyter notebook, which is the interface we recommend for editing jupyter notebooks: https://jupyter-notebook.readthedocs.io/en/latest/
Installation:
Tutorial:
- Read the documentation in https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
- If the extension is installed, you should be able to open the notebooks in this repository using VSCode, and interact with them.
Installation: https://www.docker.com/products/docker-desktop/
Tutorial:
- Start on the materials under 0-Pre-requisites
- Complement them with https://docker-curriculum.com/
Installation: Not needed, since we will configure and run a rabbitmq server using docker.
Tutorial:
- Start on the materials under 0-Pre-requisites
- Complement them with the python tutorials in https://www.rabbitmq.com/tutorials
Installation: Not needed, since we will configure and run an influxdb server using docker.
Tutorial:
- Start on the materials under 0-Pre-requisites
- Complement them with https://docs.influxdata.com/influxdb/v2/get-started/
The course is organized in different folders, to be followed in their alphanumerical order. Each folder contains one or more jupyter notebooks that you should run and go carefully over.
- Ensure that documentation links are not broken.
- Use for example, markdown-link-check to check all md files for broken links:
Get-ChildItem -Include *.md -Recurse | Foreach {markdown-link-check --config .\markdown_link_check_config.json $_.fullname}
- If relevant, regenerate the Table of Contents, either by hand or (recommended) using Markdown All in One or some other utility.
- Use for example, markdown-link-check to check all md files for broken links:
- Run notebooks and check that there are no errors:
run_tests.ps1