A simple and fast minimal framework for teaching vue+ts. UI Sandbox allows you to define multiple interactive sandboxes to teach using pre-built scenarios.
Runs on vite, and a minimal express backend for managing files.
Requires Node.js version 20.10.0 or higher.
On Windows, requires Microsoft Visual C++ Redistributable 2015+.
- Clone this repository
git clone https://github.com/ElectronicBlueberry/UI-Sandbox.git
- Install dependencies
npm i
- Run
npm run main
- Open
http://localhost:8000/
You can create a new template using the command:
npm run new -- my_template
Alternatively, you can manually create a folder in src/templates
with the name of your sandbox in snake_case.
Add a meta.json
file, containing category and order.
Example:
{
"category": "Basics",
"order": 5
}
The order does not have to be sequential.
Create a sub-folder called template
, and inside a file called Index.vue
.
Anything inside this template
folder will later be copied to the sandbox.
If you add a new category, you can define it in src/templates/categories.json
,
to set it's order relative to other categories.
Also create a hint.md
and test.ts
file.
The contents of the hint file will be shown in a popup if the hint
button is pressed in a sandbox.
The default export function of the test file will be ran when the test
button is pressed in a sandbox.
It should throw an error if the test fails, otherwise resolve to void.
Your folder structure should now look something like this:
templates
├── categories.json
└── your_sandbox
├── hint.md
├── meta.json
├── test.ts
└── template
└── Index.vue
When developing new sandboxes, you can run UI-Sandbox in template mode, to see your template changes directly instead of a new sandbox being created from your template every time you navigate to it.
To do so use:
npm run template-dev
instead of npm run main