Giter VIP home page Giter VIP logo

aragon-market's Introduction

Market App

0x relayer interface for Aragon DAOs

Screenshot of Market UI components

Background

This app is a PoC experimenting with 0x relayer integration for Aragon DAOs and is in a very early alpha stage: do NOT use in production unless you know what you're doing.

Install

git clone https://github.com/proofoftom/aragon-market.git
cd aragon-market
npm install

Run the template

npx aragon run --template Template --template-init @ARAGON_ENS

Running your app

Using HTTP

Running your app using HTTP will allow for a faster development process of your app's front-end, as it can be hot-reloaded without the need to execute aragon run every time a change is made.

  • First start your app's development server running npm run start:app, and keep that process running. By default it will rebuild the app and reload the server when changes to the source are made.

  • After that, you can run npm run start:http or npm run start:http:template which will compile your app's contracts, publish the app locally and create a DAO. You will need to stop it and run it again after making changes to your smart contracts.

Changes to the app's background script (app/script.js) cannot be hot-reloaded, after making changes to the script, you will need to either restart the development server (npm run start:app) or rebuild the script npm run build:script.

Using IPFS

Running your app using IPFS will mimic the production environment that will be used for running your app. npm run start:ipfs will run your app using IPFS. Whenever a change is made to any file in your front-end, a new version of the app needs to be published, so the command needs to be restarted.

What's in this boilerplate?

Structure

This boilerplate has the following structure:

root
├── app
├ ├── src
├ └── package.json
├── contracts
├ ├── CounterApp.sol
├ └── Template.sol
├── migration
├── test
├── arapp.json
├── manifest.json
├── truffle.js
└── package.json
  • app: Frontend folder. Completely encapsulated, has its own package.json and dependencies.
    • src: Source files.
    • package.json: Frontend npm configuration file.
  • contracts: Smart Constracts folder.
    • CounterApp.sol: Aragon app contract example.
    • Template.sol: Aragon Template to deploy a fully functional DAO.
  • migrations: Migrations folder.
  • test: Tests folder.
  • arapp.json: Aragon configuration file. Includes Aragon-specific metadata for your app.
  • manifest.json: Aragon configuration file. Includes web-specific configurations.
  • truffle.js: Truffle configuration file.
  • package.json: Main npm configuration file.

npm Scripts

  • start or start:ipfs: Runs your app inside a DAO served from IPFS
  • start:http: Runs your app inside a DAO served with HTTP (hot reloading)
  • start:ipfs:template: Creates a DAO with the Template and serves the app from IPFS
  • start:http:template: Creates a DAO with the Template and serves the app with HTTP (hot reloading)
  • prepare: Installs dependencies of the front-end
  • start:app: Starts a development server for your app
  • compile: Compiles the smart contracts
  • build: Builds the front-end and background script
  • test: Runs tests for the contracts
  • publish:patch: Releases a patch version to aragonPM (only frontend/content changes allowed)
  • publish:minor: Releases a minor version to aragonPM (only frontend/content changes allowed)
  • publish:major: Releases a major version to aragonPM (frontend and contract changes)
  • versions: Checks the currently installed versions of the app
  • lint: Checks the app and the contracts for linting errors
  • lint:fix: Fixes the lint errors that can be resolved automatically
  • coverage: Runs the tests for the contracts and creates a report

Libraries

What you can do with this boilerplate?

Publish

You can publish you app on aragonPM. See how in our publish guide.

Note
The Template will not be published.

Using a different Ethereum account

You can use a different account to interact with you app. Check the documentation.

Propagate content

You can propagate the content of your app on IPFS. Learn more in our troubleshooting guide or use the aragon ipfs propagate command:

npx aragon ipfs propagate <cid>

Where cid is your content id hash (this will be displayed after publishing).

aragon-market's People

Contributors

proofoftom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

cit1u calsaviour

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.