/flatland

Collaborative pixel art on the Ethereum blockchain.

Primary LanguageJavaScriptBSD Zero Clause License0BSD

Flatland🎨

A dapp (distributed application) built on the Ethereum blockchain. Collaborative pixel art using the ERC721 Non-Fungible Token standard. You can find more information in the explainer.

Demo

Here is a working live demo.

For testing purposes, earlier versions of Flatland will be deployed to the Ropsten Test Network. To use the app, you'll need a Metamask wallet and some test Ether from a faucet. Yay, free money!

File structure

.
|–– README.md
|–– truffle-config.js
|–– package.json
|–– app
    |–– gatsby-config.js
    |–– package.json
    |–– static
    |–– src
        |–– components
        |–– content
        |–– images
        |–– pages
        |–– utils
        |–– static
|–– build
    |–– contracts
      |–– Flatland.json
|–– contracts
    |–– Flatland.sol
|–– migrations
|–– test
    |–– Flatland.test.js

Contributing

If you want to run a local version of this app on your computer, follow the steps below.

First, clone the repo

git clone https://github.com/emilioziniades/flatland

Change to the flatland directory and install the dependencies in /flatland/ and /flatland/app

cd flatland && npm install

cd app && npm install

Remain in the app directory, and start the local development server

gatsby develop

Now, you should be able to visit https://localhost:8000 in your browser and see a local instance of Flatland. Gatsby features hot reloading, so you can just make changes in the flatland/app/ directory and view the changes live.

Go ahead and have a look at the open issues and assign one to yourself. Now that you have cloned the repo, try to fix the bug / implement the functionality.

NB The app should succesfully build. Run gatsby build. If there are no errors, commit your changes. Create a pull request and link it to the issue that your pull request addresses.

Built with

  • Gatsby - Static site generator written in JavaScript, and built using the React framework.

  • React - Component based javascript framework. Includes support for state management. This project makes use of ES6 syntax, function components, and hooks

  • React Bootstrap - A combination of React and Bootstrap, both front-end frameworks.

  • Ethers - Javascript library used to interact with Ethereum blockchain.

  • Truffle Suite - Smart contract test, build and deploy suite.

  • Ganache-CLI - Local blockchain for testing purposes.

  • Solidity - Smart contract programming language, compiles to the Ethereum Virtual Machine (EVM). Crypto Zombies is a good starting point for learning solidity.

Bug / Feature Request

If you find a bug, kindly open an issue here by including your search query and the expected result.

If you'd like to request a new feature, feel free to do so by opening an issue here.