This is a react/redux single page application showing BigchainDB transactions as a dynamic timeline view using the valid transaction broadcast from the BigchainDB websocket. This application can be used to visualize the transactions and blocks on any BigchainDB deployment.
More details about the concept and implementation are in the /specs directory.
UX/UI assets and artifacts are in the /ux directory
The application code is in the /app directory
A demo version of this app connected to a local BigchainDB node is deployed here. The transaction data is being posted by an automated job at regular time intervals.
The BigchainDB Dashboard app is also deployed for BigchainDB Testnet, here. For a quick demo, go to the BigchainDB Getting Started page and post a transaction. Come back to the dashboard to see this transaction in real time.
The app is structured as a react app created using create-react-app with added redux support.
src/actionsdirectory contains the react actionssrc/componentsdirectory contains the react componentssrc/configsdirectory has 2 json-config files to configure UI and BigchainDB connectionsrc/containersdirectory has the container componentssrc/reducersdirectory has the redux reducerssrc/servicesdirectory has the services and utils to connect and listen to BigchainDBsrc/App.jsThis is the react application the wraps and combines all the components togethersrc/index.jsThis mounts the react app from App.jstest/integrationTest.jsIntegration test file that produces different creates/transfer transactions on BigchainDBtest/testScript.sha bash script to runintegrationTest.jsevery 2 secondspublic/contains static files i.e. html, css, images
The project can be configured using 2 JSON configuration files located at src/configs.
bigchaindb.config.jsonThis file can be used to configure the connection parameters for connecting to the BigchainDB network.ui-mapper.config.jsonThis file can be used to configure to modify what user sees in the description for transfer & create transaction card, application context name and the maximum number of blocks a user can see on the UI.
The fields create.description & transfer.description are used to parse the data from the raw transaction of create and transfer types respectively.
- Clone this repository
- Navigate to app folder with:
cd dashboard/app/ - Install node modules:
npm install - Modify the
bigchaindb.config.json&ui-mapper.config.jsonas per the requirement - Run the dev server using
npm startand open the browser onlocalhost:3000 - To create a production build you can use
npm run build
Big thanks to @mariusgoebel for help with UX design and mockups.