Skip to content

HQ20/create-hq20-dapp

Welcome to HQ20 create-hq20-dapp. With a couple of different templates from a basic setup for smart contracts development, a react webui and an api with cache server. This is great for every new project. Contains examples of tests, coverage, documentation generators, linters, etc.

Quick Overview

npx create-hq20-dapp my-app
cd my-app
npm start

The following templates are available:

  • smart-contracts an example of a solidity smart contracts project
  • react-webui using a create-react-app boilerplate with typescript and ethers.js connecting to a local network
  • api an api with a cache server built with express.js and postgresql database, listening and caching events.

Usage

You’ll need to have Node 8.16.0 or Node 10.16.0 or later version on your local development machine (but it’s not required on the server). You can use nvm (macOS/Linux) or nvm-windows to switch Node versions between different projects.

To create a new app:

Yarn

yarn create hq20-dapp my-app

yarn create <starter-kit-package> is available in Yarn 0.25+

It will create a directory called my-app inside the current folder.
Inside that directory, it will generate the initial project structure and install the transitive dependencies:

my-app
├── README.md
├── node_modules
├── package.json
├── .gitignore
├── react-webui
│   ├── (to complete)
│   └── (to complete)
├── smart-contracts
│   └── (to complete)
└── api
    └── (to complete)

No configuration or complicated folder structures, only the files you need to build your app.
Once the installation is done, you can open your project folder:

cd my-app

Inside the newly created project, you can run some built-in commands:

This is a step-by-step on how to get all the workspaces working, but of course, you might not want to run the android app, so, no need to install the dependencies on that workspace. Or, you might not want to start the cache server, so you can ignore steps 3, 5 and 6. That's up to you what to run. But whatever that is, it must be it the order shown above.

Repository updates

This repository has automatic updates, thanks to dependabot, with an exception to react-webui template. We choose to only allow to update react-scripts and security issues, with no automatic merges because that template highly relies on CRA.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

Apache-2.0

Credits