Giter Site home page Giter Site logo

beer-machine's Introduction

The Great Ethereum Beer Machine

For the next few sessions of our Toronto Ethereum Developers Meetup Group we are going to build an Ethereum-enabled Beer Machine. Why? Because Beer! And fun. And coding practice. Yay! Each step will be well-documented and will serve as an instructional resource for building an application and all of its components from conception to completion.

On 14 October 2016 we had a group meeting to outline a high-level breakdown of the project's development needs. The sections are as follows:

  1. Front-end (UI/UX).
  • Team leads: Chelsea
  • Main features: link to eth.contract, display price, display QR code and payment info, display number of beers remaining, and perhaps info about whether beer is currently being displensed; error handling; UI design.
  1. Ethereum contract
  • Team Leads: Richard Moore and Nick Dodson. The coding for this section will be done in the main group session every 2nd Friday.
  • Main desired features: Set dynamic price, payment events, send funds upon payment to keg and delivery costs account, pay devs automatic percentage, manage frequent beer drinking points / subscription plan
  1. Python code interfaced with Hardware.
  • Team Leads: Anastasia and Michael
  • Main features: payment watching loop, send signal to machine to start/stop pouring, display "beer remaining" info on LED.
  1. Hardware
  • Team Leads: Nelia and Spiro
  • Hardware, at minimum, a Raspberry Pi and Beer Machine (including a valve attachment that can be controlled by the RPi).
  • Desired: LED displaying beer remaining; an overfill sensor, a sensor for determining if cup is properly placed (and not pour if cup either not present or improperly placed)
  • Will need to work closely with Python team

Group communication and management/organization will occur primarily on the Blockchain Canada slack group, and the #dev-ethereum and #dev-beer-machine channels in that group. Here is the slack invite if you aren't a member already. See you there!

BackGround Resources

I'll start adding educational and background resources as we progress.

Ethereum Basics

Background information that one should read.

Learning Solidity

Ether Wallets (some have solidity compiler integration)

  • Mist -- Ethereum Wallet: Use this if you want to create an ether wallet and start using Ether, trade tokens, watch tokens, or watch contracts. It's build by the Ethereum Foundation, and is in a constant state of improvement and development.
  • MyEtherWallet: An in-browser wallet generator
  • Ethers.io: An in-browser wallet with a solidity code compiler; it's also adding support for applications (dApps)
  • Metamask.io: A chrome extension ethereum wallet with a good user interface. Useful in conjunction with Browser Solidity to inject contracts into the blockchain.

Learning to Code

Courses

  • Harvard CS50: Awesome course; so many great lectures, quizzes, and reading material.

JavaScript

Python

Raspberry Pi

Raspberry Pi: Main Site

Git -- Helpful guides for managing and posting your code

Literature Resources

Books

Must Read books on programming and design in general, according to Jeff Atwood (Stack Exchange)

  1. Code Complete (Steve McConnell)
  2. Don't Make me Think (Steve Krug)
  3. Peopleware
  4. The Pragmattic Programmer
  5. Facts and Fallacies of Software Engineering

Misc Coding Links and Info and Philosophies

Advice

Jeff Atwood(Creator of Stack Exchange), from an ITworld article. See his Reddit AMA as well:

  1. Learn by Doing real projects. "Build stuff. In the process of building something, if you need a new tool, learn it then"
  2. Aim to be dumbest person in the room
  3. Have a coding buddy

Adding to that, we should include:

  1. Start as soon as you can. Start yesterday. This reminds of another good article on the important habit of just starting

Blogs

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.