This repository is a template project for the graduation phase of the DAO Adventure. To check out the complete DAO Adventure repository, click here.
The goal of this project is to build a DAO that controls a webpage.
In it's most simple version, the project should have the following features:
- Users can login with their Internet Identity.
- Users can create a proposal to change the text displayed on the webpage.
- Users can consult and vote on proposals.
- If a proposal is accepted, the text on the webpage is automatically changed.
You are free to add more features to the project (token, improved voting system, DAO-controlled treasury), but the ones listed above are the minimum features to be eligible for graduation.
In addition, you also need to make sure that your project follows these requirements:
- Your project is written in Motoko (backend) and deployed on the Internet Computer.
- Your code is open source and available on GitHub.
Make sure that Node.js >= 16.x
and dfx
>= 0.15.x
are installed on your system.
Run the following commands in a new, empty project directory:
dfx start --clean --background # Run dfx in the background
npm run setup # Install packages, deploy canisters, and generate type bindings
npm start # Start the development server
- Vite: high-performance tooling for front-end web development.
- Svelte: a radical and innovative JavaScript framework for building user interfaces.
- Motoko: A high-level language for smart contracts on the Internet Computer.
- Sass: an extended syntax for CSS stylesheets.
- Prettier: code formatting for a wide range of supported languages.
- MOPS : a package manager for Motoko with fully on-chain package registry.
- Vite developer docs
- Learn Svelte
- Internet Computer docs
- Motoko Book
- Motoko Bootcamp
- MOPS
dfx.json
reference schema
- Customize your project's code style by editing the
.prettierrc
file and then runningnpm run format
. - Reduce the latency of update calls by passing the
--emulator
flag todfx start
. - Split your frontend and backend console output by running
npm run frontend
andnpm run backend
in separate terminals.