Chapter 1 - What is your dream?

In this Chapter, we are setting the foundation for your DAO. We will define its name, its objectives, and we will also craft a manifesto describing its guiding principles and vision.

Introduction

DAOs represent an entirely new way to fuel your dreams. Consider this: anyone can collaborate with the entire world without the need to travel, learn multiple languages, or sign any contract. Everything can happen through the blockchain.

Whether you are passionate about Web3, AI, music, economy, open source, 3D printing, or even politics - DAOs have something for you. You need to figure out what and how you to leverage this new technology. Let your imagination go wild. We are at the beginning of a new era. Now is the time to dream big and experiement crazy ideas.

Today, we're going to outline a vision, choose a name, and set goals for our DAO. If you have an existing project, think about adding a community aspect to it to form our DAO. If you don't have a project, think about any club you've liked or ever wanted to join. We'll use these to create our DAO.

Resources

To complete this Chapter, we suggest browsing the following resources:

Tasks

To complete this project - you need to make use of the Buffer library in Motoko. Make sure that you've read the corresponding documentation.

  1. Define an immutable variable name of type Text that represents the name of your DAO.
  2. Define a mutable variable manifesto of type Text that represents the manifesto of your DAO.

A manifesto is a public declaration of the intentions, motives, or views of an individual or group. It is often political in nature, but may present an individual's life stance.

  1. Implement the getName query function, this function takes no parameters and returns the name of your DAO.
  2. Implement the getManifesto query function, this function takes no parameters and returns the manifesto of your DAO.
  3. Implement the setManifesto function, this function takes a newManifesto of type Text as a parameter, updates the value of manifesto and returns nothing.
  4. Define a mutable variable goals of type Buffer<Text> will store the goals of your DAO.
  5. Implement the addGoal function, this function takes a goal of type Text as a parameter, adds a new goal to the goals buffer and returns nothing.
  6. Implement the getGoals query function, this function takes no parameters and returns all the goals of your DAO in an Array.
  7. Complete Chapter 1 by deploying your canister and submitting your ID on motokobootcamp.com.

To deploy your application dfx deploy --playground chapter_1 (remember to paste this command in a new terminal).

Video

⚠️ Please be aware: the repository displayed in the video may not match the one you're working with, due to recent updates we've made to the repository which have not been reflected in the video. However, the core code should remain similar.