Skip to content

Commit

Permalink
feat(cbdc-bridging): add frontend code for the CBDC example
Browse files Browse the repository at this point in the history
* UI to interact with the backend app

Peter's changes:
1. Fixed the build (linter errors were blocking it from finishing)
2. Had to upgrade the react dependencies to the latest (18) so that
they are not crashing at runtime
3. Updated the package.json file so that monorepo integration is in
place, e.g. yarn workspaces.

[skip ci]

Co-authored-by: Peter Somogyvari <[email protected]>

Signed-off-by: André Augusto <[email protected]>
Signed-off-by: Peter Somogyvari <[email protected]>
  • Loading branch information
AndreAugusto11 authored and petermetz committed Oct 16, 2023
1 parent ee9cb1c commit 5ad0ebf
Show file tree
Hide file tree
Showing 36 changed files with 8,131 additions and 115 deletions.
1 change: 1 addition & 0 deletions examples/cactus-example-cbdc-bridging-frontend/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PORT=2000
23 changes: 23 additions & 0 deletions examples/cactus-example-cbdc-bridging-frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
Empty file.
14 changes: 14 additions & 0 deletions examples/cactus-example-cbdc-bridging-frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

FROM node:16-alpine

WORKDIR /usr/src/app

COPY ./examples/cbdc-bridging-fabric-evm-frontend/package.json ./

RUN npm install

COPY ./examples/cbdc-bridging-fabric-evm-frontend/ .

EXPOSE 2000

CMD [ "npm", "start" ]
26 changes: 26 additions & 0 deletions examples/cactus-example-cbdc-bridging-frontend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Available Scripts

In the project directory, you can run:

## `npm start`

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.

The page will reload when you make changes.\
You may also see any lint errors in the console.

## `npm test`

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

## `npm run build`

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
71 changes: 71 additions & 0 deletions examples/cactus-example-cbdc-bridging-frontend/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
{
"name": "@hyperledger/cacti-example-cbdc-bridging-frontend",
"version": "0.1.0",
"description": "An example UI showing how to use Cacti when implementing a CBDC bridging application between Hyperledger Fabric and Hyperledger Besu.",
"keywords": [
"Hyperledger",
"Cacti",
"ODAP",
"Fabric",
"Besu",
"Blockchain",
"CBDC"
],
"bugs": {
"url": "https://github.com/hyperledger/cacti/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/hyperledger/cacti.git"
},
"license": "Apache-2.0",
"contributors": [
{
"name": "Please add yourself to the list of contributors",
"email": "[email protected]",
"url": "https://example.com"
},
{
"name": "Peter Somogyvari",
"email": "[email protected]",
"url": "https://accenture.com"
},
{
"name": "André Augusto",
"email": "[email protected]"
}
],
"dependencies": {
"@emotion/react": "11.11.1",
"@emotion/styled": "11.11.0",
"@mui/material": "5.14.13",
"@mui/styles": "5.14.13",
"axios": "1.5.1",
"react": "18.2.0",
"react-dom": "18.2.0",
"uuid": "9.0.1"
},
"devDependencies": {
"eslint-config-react-app": "7.0.1",
"react-scripts": "5.0.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
43 changes: 43 additions & 0 deletions examples/cactus-example-cbdc-bridging-frontend/public/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
38 changes: 38 additions & 0 deletions examples/cactus-example-cbdc-bridging-frontend/src/App.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
.App {
text-align: center;
}

.App-logo {
height: 40vmin;
pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}

.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}

.App-link {
color: #61dafb;
}

@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
18 changes: 18 additions & 0 deletions examples/cactus-example-cbdc-bridging-frontend/src/App.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import HomePage from "./pages/HomePage";
import "./App.css";
import { ThemeProvider } from "@mui/styles";
import { createTheme } from "@mui/material";
import CssBaseline from "@mui/material/CssBaseline";

const theme = createTheme();

function App() {
return (
<ThemeProvider theme={theme}>
<CssBaseline />
<HomePage />
</ThemeProvider>
);
}

export default App;
Loading

0 comments on commit 5ad0ebf

Please sign in to comment.