storj/satellite/admin/ui
Egon Elbre 1d5b3e508c satellite/admin/ui: fix rollup building
rollup does not handle virtual drives correctly, use preserveSymlinks to
avoid compilation issues.

Change-Id: I7ae9509572ff4e2e74b059db4909f2e612a1331b
2021-11-09 13:16:37 +00:00
..
.vscode satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00
public satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00
src satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00
.gitignore satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00
.prettierrc.toml satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00
package-lock.json satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00
package.json satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00
README.md satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00
rollup.config.js satellite/admin/ui: fix rollup building 2021-11-09 13:16:37 +00:00
tsconfig.json satellite/admin/ui: Create Web UI v1 2021-11-09 09:59:35 +00:00

Admin UI

Implementation details

This is a project based on the Svelte template for apps.

The project templated was converted to Typescript following the instructions on its README.

The Web App is currently straightforward as we specified that v1 would be.

The v1 is just a simple web page that exposes the Admin API through some forms and allow to a call the API without needing to use some HTTP REST clients (e.g. Postman, cURL, etc.). It doesn't offer any user authentication; the user has to know the API authorization token for using it.

The UI has a set of Svelte components that collaborate together to render an HTML form with input elements from the Admin API client. The Svelte components expect some values of a certain Typescript interfaces, types, and classes, for being able to dynamically render the HTML form and elements.

Each source has a brief doc comment about its functionality.

Development

Install the dependencies...

npm install

...then start Rollup:

npm run dev

Navigate to localhost:5000. You should see your app running.

By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the sirv commands in package.json to include the option --host 0.0.0.0.

Building for production mode

To create an optimised version of the app:

npm run build