Code Monkey home page Code Monkey logo

hack's Introduction

Documentation portal for Aragon Apps

Running a local instance

Prerequisites

solc-select is your best friend when it comes to installing solc!

Note: solidity-docgen does not work on Windows.

git clone https://github.com/aragon/hack.git
cd hack/website
yarn install
yarn start

This should open your local instance of these docs in your browser at http://localhost:3000/.

Publishing

The documentation is published via gh-pages. Automatic deployments are handled through an deployment Github Action on pushes to the master branch.

If you'd like to publish it locally though, you can run:

cd website
yarn install
yarn run build
yarn run publish-gh-pages

Note: the aragonOS files must be generated on publish, see issue.

Contributing

Thanks for your interest in contributing to these docs! Get started here.

hack's People

Contributors

0xgabi avatar bingen avatar bpierre avatar cjyabraham avatar cslarson avatar delfipolito avatar dependabot[bot] avatar e18r avatar ewingrj avatar izqui avatar john-light avatar jtremback avatar kernelwhisperer avatar lkngtn avatar luisivan avatar macor161 avatar marsrobertson avatar nottakis avatar pcowgill avatar proofoftom avatar sachushaji avatar scottrepreneur avatar smokyish avatar sohkai avatar stellarmagnet avatar unixpi avatar vitaljeevanjot avatar wissenistnacht avatar xuhcc avatar yeqbfgxjiq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hack's Issues

Add Aragon One's recommended development flow

It'd help new developers getting started to have a recommended workflow for their own apps.

At Aragon One, we typically develop apps following this flow:

  1. Define requirements for the app:
    • Contract: storage, getters, and events
    • Frontend: mock ups
  2. Build contract
  3. Build frontend
    1. Build self-contained UI components
    2. Unify components into an implementation of the design that uses mock data (usually just a JSON file)
    3. Connect UI to real chain data
    4. Allowing users to "write" data by creating transactions

Duplicate docs of @aragon/wrapper

Currently we have the wrapper documented in both:
image
https://hack.aragon.org/docs/aragonjs-ref.html#wrapper
https://hack.aragon.org/docs/aragonjs-ref-clients.html

Solution A:

  • remove the "Reference documentation for client/wrappers" (although it seems to be the one that's more styled/mantained)

Solution B:

  • remove the Wrapper section from "Reference documentation"
  • rename this section to "Reference documentation for wrappers" as calling this a client is very confusing

improve diagrams on hack.aragon

Most of the diagrams used on hack.aragon could be improved by doing the following:

  • increasing the font size; in a lot diagrams some of the text is hardly legible
  • use some color

@izqui made this diagrams originally and may have the source files.

Error in "Your first Aragon app" tutorial

I tried following this "Your first Aragon app" tutorial. When I run aragon run command, got an error bellow:

 ❯ Start a local Ethereum network
   ⠴ Setting up a new chain from latest Aragon snapshot
     Starting a local chain from snapshot
   Check IPFS
   Publish app to APM
   Create DAO
   Open DAO

/Users/yutaro/.nodebrew/node/v9.5.0/lib/node_modules/@aragon/cli/node_modules/ganache-core/node_modules/level-codec/index.js:44
  return this._valueEncoding(opts).decode(value)
                                   ^
SyntaxError: Unexpected token o in JSON at position 1
    at Object.parse [as decode] (<anonymous>)
    at Codec.decodeValue (/Users/yutaro/.nodebrew/node/v9.5.0/lib/node_modules/@aragon/cli/node_modules/ganache-core/node_modules/level-codec/index.js:44:36)
    at /Users/yutaro/.nodebrew/node/v9.5.0/lib/node_modules/@aragon/cli/node_modules/ganache-core/node_modules/level-sublevel/nut.js:122:34
    at /Users/yutaro/.nodebrew/node/v9.5.0/lib/node_modules/@aragon/cli/node_modules/ganache-core/node_modules/encoding-down/index.js:57:5
    at /Users/yutaro/.nodebrew/node/v9.5.0/lib/node_modules/@aragon/cli/node_modules/ganache-core/node_modules/cachedown/index.js:61:5
    at /Users/yutaro/.nodebrew/node/v9.5.0/lib/node_modules/@aragon/cli/node_modules/ganache-core/lib/database/filedown.js:28:5
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:528:3)

Remove Metamask from docs

It’s Luis’ wish to remove Metamask as a must-have in the docs when Frame is ready for prime time. Could we make the docs agnostic?

Update aragonCLI documentation

Reasons discussed in aragon/aragon-cli#364

New Features:

  • create-aragon-app #74

  • dao act

  • dao token

  • apm grant

  • --environment usage #53

Guides

FAQ

  • Initialization of global variables in apps #76

  • Windows specific considerations #77
    Issue sending tx

  • Errors related to delete the ./ipfs directory

  • ipfs not running

  • How to verify contracts onchain

  • Explain when use the parameter wsRPC in arrap.json. Connect to custom endpoint

  • Set a private key to sign tx (https://aragon.chat/channel/dev-help?msg=KmDvP8YP27FjhfhWf)

  • Propagating content hash

  • ./aragon directory

Update

  • Existing tutorial #15

  • init

  • run

  • devchain

  • dao new

  • dao upgrade

  • dao install

  • dao exec

  • apm publish

  • Remove metamask #70

Note: For a more in depth review check this file

Guide: How to use Frame

Document how to use Frame to interact with the DAO created in your first aragon app tutorial

Highlight potentially insecure contract functions

As pointed out in both the WHG and CD audits, we should make sure to document and highlight the contract functions that are insecure or incredibly powerful.

Examples:

  • Kernel.setApp()
  • EVMScriptRunner.runScript()
  • ACL permission functions

Add guidance for usage of relative paths for assets when building apps

An interesting tidbit from That Planning Suite (https://github.com/spacedecentral/planning-suite/blob/dev/docs/DEVELOPMENT_NOTES.md#wrong-fonts-colors-or-browser-console-errors):

Aragon provides the command copy-aragon-ui-assets and we use npm run sync-assets to call it. The problem is that is easy to have errors configuring the path in AragonApp component (from @aragon/ui), because is not documented where the slashes go or things like that, even some original Aragon apps have or had this error.

Without relative paths, most things will fail on IPFS, and we should point that out in tutorials and documentation.

Glossary for developer terminology

As someone who's starting out getting to know the aragon ecosystem, I often ran into cases where some terminology used throughout the project threw me off as they had a different meaning than what I've expected.

This can be simple cases like

What is an APM Repository?

Is it a Git repository? Is it just an implementation of a different kind of repository?

Or

What is a package in APM? What does package even mean in this context?

As many people here know, APM takes care of a lot of things (distributing content via IPFS, deploying app contracts, managing versions via APM Repositories and so on.

I think it'd be good to introduce a glossary in the developer portal that gives short and concise explanations of the terminology that's being used, especially for the ambiguous ones.

If the team and community agrees that this is something that should be added, we could start collecting all the terms here that should be covered by the glossary.

Here are a few:

  • Aragon CLI
  • APM (Aragon Package Manager)
  • APM Repository
  • Aragon Apps / Sandboxed Apps
  • Aragon UI
  • Wrapper (I wish there was a less general term for this thing 😅)
  • Aragon DAC
  • aragon.js
  • aragonOS
  • DAO Kits
  • Aragen
  • aragon-id
  • DAO (sure, Decentralized Autonomous Organisation, but in the context of Aragon it could also mean the organisation represented in the app, or the app itself even?)

And there's prolly a lot more (feel free to add them here). Again, as someone who's new to this universe will be very overwhelmed by all the different components and how they fit in the big picture.

I also hope that, before a 1.0 there's opportunity to maybe even rename some things and streamline the terminology as much as possible.

Guide: The Agent app

This issue was funded with 150 DAI, see more issues on our dao projects app.

  1. In depth guide on how to install the Agent app with aragonCLI. We assume we start with a democracy-dao created with the on-boarding page.
  2. Show a good use case of using the Agent app.

Note: Opening a Maker CDP would be great, open to suggestions 🙌

TODO:

  • Introduction to the Agent app and how it work

  • How to interact between two DAOs

  • Deploy a DAO using the agent app

  • Interacting with Compound

  • Creating an Aragon Trust

  • Opening a Maker CDP

List dependencies and instructions for installing them

I notice on the CLI page for example, the npm and git commands are entered, which assumes that the user has these installed already. It would be worth noting at the beginning of the documentation what dependencies are required to go through the documentation (including the minimum version required) and how to install the dependency.

How to prepare assets for the app center

In order to showcase Aragon apps on the upcoming app center, we need to explain how to prepare:

  • Small icon
  • Bigger icon
  • Description
  • Screenshots

That should be documented and added to the dev portal.

Merge aragonOS ref docs and API docs

  • Remove API from the top navbar
  • Have the aragonOS ref documentation as one item inside the API sidebar
  • The aragonOS link from the top navbar should go to the reference documentation, but as that page will have the API sidebar, the dev will be able to nagivate there too

CLI documentation

Topics to talk about:

  • Document usage. Needs to be updated because now most commands are under aragon dao and aragon apm (or just dao and apm)
  • Document how to import keys from aragon devchain and local chain URL into MetaMask/others.

Sanity check Your First Aragon App

There's a few things that are confusing, e.g. are we using the bare or react boilerplate? Or are we getting them to make the contracts themselves?

Include create-aragon-app documentation

  • Update aragon init <app-name> [template] command documentation (Getting started, kits-intro and cli-usage sections)

  • Create new documentation for create-aragon-app <app-name> [template] generator

Generate aragonOS docs

Currently we are doing this here, but would it make more sense to have the docs generation in aragonOS repo and pull them from there?

Needs quick 'hello world' to get app running.

I usually like to have apps running while i read the documentation. But in the tutorial, the process for getting the app running starts with

Let's first set up our project.

npm i -g @aragon/cli

Next, we bootstrap our project:

aragon init foo.aragonpm.eth

and then goes into many pages of documentation. Towards the bottom of the page, we see aragon run. It also doesn't mention npm install at all, which I forgot to do at first.

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.