# Checkout
git clone https://github.com/circlesland/o-platform.git
# Build
cd o-platform
./build.sh
# Run
cd shell
npm run dev
#Build & Run with local self-signed Certificate:
cd o-platfrom
./buildlocal.shrink-0
cd shell
npm run devs
The shell is a svelte application which responsibility it is to load Dapps (by route) and run processes that require user interaction. Loaded dapps can use the shell to communicate with each other using events.
The loader can be found in /shell/src/libs/shell-os/loader.ts:. It 'import's all dapp manifests at the beginning of the file and then calls 'constructRoutes()'. It exports the constructed routes via it's 'routes'-const. These routes are then hooked up to the svelte-spa-router.
On every invocation of a route, the loader's 'getDappEntryPoint()' function is called with the invoked dapp- and pageManifest. It returns a configured svelte component that can be displayed by the component in App.svelte.
A Dapp is a small application that consists of pages, other svelte components and processes.
Every Dapp has a DappManifest file which lists all
PageManifests.
Each Dapp has one or more page(s).