Skip to content
This repository has been archived by the owner on Jul 23, 2024. It is now read-only.

paritytech/governance-ui

Repository files navigation

Archive

This repo is no longer maintained. Please have a look at its new home https://github.com/polkassembly/governance-ui for updates and contributions.

CI status CT status

Polkadot Delegation Dashboard is a PWA - or Progressive Web App - with a focus on efficiency and offline support in the context of Web3.

As a pure web application, it doesn't depend on remote backend to operate but connects to Polkadot nodes. Some data will be fetched to enhance the experience from github.com and polkassembly.io/, although the plan short term is to become fully decentralized.

Use

Register as a delegate

Anyone can register themselves as a delegate.

To add a new delegate, edit this file and push a pull request. Once approved, changes will be transparently picked up and made available to anyone in the application.

The following table outlines the structure of a delegate entry:

Element Key Required Notes
Delegate Name name Yes The chosen name of the delegate.
Delegate Address address Yes The chain address of the delegate.
Manifesto manifesto Yes A description of your goals as a delegate. Supports markdown.

Build

The full website can be started using yarn build. PUBLIC_URL can be set to the final root URL for the considered deplyment environment if required.

Development

A local dev environment can be started using yarn dev.

Testing

Unit tests can be run via yarn test:unit.

Run end-to-end tests via the following steps:

# Setup
yarn
npx playwright install

# Run webapp in a dedicated tab
yarn dev

cd test/

# Run chain in a dedicated tab
yarn zombienet:native

# Launch tests
URL=http://127.0.0.1:1234/?rpc=ws://127.0.0.1:9984 yarn test:e2e

Using containers

You may build a container using:

./scripts/build-container.sh

then run your container with:

podman run --d -p 8080:80 localhost/polkadot-delegation-dashboard

and access the Delegation Dashboard at http://localhost:8080/