This repo contains a demonstrative digital twin platform for hospitals.
The end goal of this project is deployment on Google Cloud Platform—however, this project is currently still in the local development stage (local Docker Compose stack only). The roadmap is as follows:
- Minimum implementation in Docker
- Migration to Kubernetes
- Migration to Google Cloud Platform
Additional services to be added to the platform may follow the above pipeline at their own speed.
We assume an apt-based Linux environment. For Windows machines, use WSL (not tested).
Warning
Do not run VS Code as a snap; this will mess with environment variables and cause some scripts to fail. See instructions for installing VS Code via apt
.
This is because a terminal session using VS Code's built-in terminal will have $XDG_DATA_HOME
set.
init.sh
ensures that you have the minimal tools required for development:
- Visual Studio Code
pre-commit
: For setting up pre-commit hooks.- This will ensure proper code formatting and style and minimize superfluous formatting-only file changes.
- Go: for Go language development, or simply installing Go-based tools using
go install
. uv
: for Python virtual environment setup and installing Python-based tools usinguv tool install
.npm
: for Typescript development and running Node.js based tools withnpx
.- Various linters, formatters, etc. using the above tools.
Additional software can be installed using git script install
(source scripts.sh
first).
See .vscode/extensions.json
for a list of recommended extensions. You can also view a list of recommended extensions using
the command palette (F1
):
Note
Note the following:
- VS Code may also make its own extension recommendations.
- You will need a lot of extensions for this monorepo to cover all aspects (container management, Markdown documentation, Python and JS/TS development, etc.). It is best to create a new VS Code profile specifically for this project.
See the dev-docs/
directory. The uv run mkdocs serve
option is an easy way to serve the documentation files locally, with live refresh.