UniversalDot / universal-dot-front-end

An API + React based template for building Substrate Front Ends
The Unlicense
1 stars 0 forks source link
blockchain css frontend html javascript react substrate user user-interface

Universaldot WEB APP: The Front-End of the digital economy

UPDATE: This repository has been archived. The front-end application has been moved to https://github.com/UniversalDot/front-end.

CircleCI

Logo

In the past, people have created organizations and corporations by obtaining legal status from a government or a state. In the future, organizations and corporations will be created digitally and will have global instead of local reach. UNIVERSALDOT Foundation provides the needed infrastructure for people to organize themselves by creating digital identities and tasks. We enable the creation of a new digital future.

This repository represents the front-end of the application. It is built with Substrate-frontend-template, Create React App and Polkadot js API. Familiarity with these tools will be helpful, but not mandatory.

Using The Web Application

Installation

The codebase is installed using git and yarn. This tutorial assumes you have installed yarn globally prior to installing it within the subdirectories. For the most recent version and how to install yarn, please refer to yarn documentation and installation guides.

# Clone the repository
git clone https://github.com/UniversalDot/universal-dot-front-end.git
cd universal-dot-front-end
yarn install

Usage

You can start the template in development mode to connect to a locally running node

yarn start

You can also build the app in production mode,

yarn build

and open build/index.html in your favorite browser.

Configuration

The template's configuration is stored in the src/config directory, with common.json being loaded first, then the environment-specific json file, and finally environment variables, with precedence.

Some environment variables are read and integrated in the template config object, including:

More on React environment variables.

When writing and deploying your own front end, you should configure:

Testing

This project uses Cypress for testing.

Cypress is a next generation front end testing tool built for the modern web. Cypress is most often compared to Selenium; however Cypress is both fundamentally and architecturally different. Cypress is not constrained by the same restrictions as Selenium.This enables you to write faster, easier and more reliable tests. Cypress can test anything that runs in a browser.

Cypress enables you to write all types of tests:

Before running your Cypress Tests, make sure that your front end application is running locally. All tests are configured to run on localhost:8000

yarn start

Once your application is running locally, to launch the Cypress Test Runner run this command:

yarn run cypress open

You can then proceed to the Cypress UI where you can select to run individual tests or run all tests.

Specifying Connecting Node

There are two ways to specify it:

Reusable Components

useSubstrate Custom Hook

The custom hook useSubstrate provides access to the Polkadot js API and thus the keyring and the blockchain itself. Specifically it exposes this API.

{
  socket,
  types,
  keyring,
  keyringState,
  api,
  apiState,
}

TxButton Component

The TxButton handles basic query and transaction requests to the connected node. You can reuse this component for a wide variety of queries and transactions. See src/Transfer.js for a transaction example and src/ChainState.js for a query example.

Account Selector

The Account Selector provides the user with a unified way to select their account from a keyring. If the Balances module is installed in the runtime, it also displays the user's token balance. It is included in the template already.

Supported by Web3 Foundation

Logo

UniversalDot is recipient of the technical grant from Web3 Foundation.