Giter Site home page Giter Site logo

bartender's Introduction

Bartender

This project is a bartender machine.

The idea behind is that you will be able to select a drink from several different recipes and then it will mix it togheter and pour it into a glass.

This repo contains all related code that will run on the actual machine.

It contains an app for selecting recipes, configuring pumps and starting the pouring process. It will also contain the backend to control all pumps and such.

This project is also depended on my other project Recipe Maker. I wanted to keep Recipe Maker as a seperate project due to Recipe Maker is more a general project which I have other plans for. So this project will only contain code/information regarding the actual machine. Management of recipes will be done through Recipe Maker.

TODO

  • Clean up code, remove old components, proper naming, there is probably some bad code too
  • Documentation of both the code and the machine/process
  • Find a better name, probably better to seperate this from recipe-maker project.
  • Add details to hardware
  • Hide/Show only recipes that the machine can produce (based on ingredients from pumps)

Hardware

Needs updating

  • LCD screen with touch functionality
  • Raspberry Pi/Alternatives
  • 10x Pumps
  • Case

Roadmap

The roadmap below will contain a list of features that I have planned for different version. It will also list features that I want to do in the future but isn't planned for specific versions.

As version 1 isn't completed, some of the features might be moved between version 1 and 2.

Version 1 will be more of a prototype, it will contain the basics to mix a drink. The basics will be that it will contain a few pumps that can pump liquid from A to B. Meaning it can pump liquid from a bottle to a glass. So there wont be any sort of "mixing" or "shaking" and such. The idea is to keep it simple from the start and then add features when needed.

For version 1 there will also be a simple GUI to select drinks and do some simple configuration.

Version 2 will most likely be a bunch of bug fixes and possibly a new feature or two. It probably wont be a huge update in terms of the actual machine, but more updates related to coding.

After Version 2 is completed and I feel happy with the base, I will add new features such as shaking, mixing, cooling, etc.

Version 1

  • GUI

    • Recipes is filtered based on what liquid we can pump
    • Select a recipe
    • Select the volume of your glass/drink
    • Start pouring
    • Change what liquid/ingredient is in each pump
    • Caching of recipes. Mainly it should use graphql but in case of no internet or mobile data there should be cache.
  • Machine

    • Pump liquid from A to B

Version 2

  • GUI

    • Custom volume selection
    • More settings
      • Control how many pumps we have
      • Control what pump is what GPIO
  • Machine

Future

  • GUI

    • Filter/Search pumps
    • Stats
      • Usage per recipe/ingredient/total
      • Volume poured per recipe/ingredient/total
      • Total bandwidth - Cache/Non cache
      • Viewed per recipe/ingredient/total
      • How many times each pump has changed ingredient
      • Pump usage volume and times
  • Machine

    • RGB Everywhere
    • Process a recipe step by step (pour different liquid at different times)
    • Shake the drink
    • Stir the drink
    • Ice/Cooler for liquid
    • Lime/Lemon, add a holder for lime/lemon. Maybe in the future it can cut them too.
    • Sugar/Salt around the glass
    • Make it possible to add spices
    • Auto detection/prevention
      • Detect if there is an actual glass to pour into or not
      • Detect if a pump has an actual liquid
      • Detect glass size, so we don't pour too much by accident
      • Detect volume of the liquid, so we can show a percentage for each pump and warn when it's low
      • Detect different liquid, scan bottles with QR or similar. Maybe RFID tag
  • Updater

bartender's People

Contributors

tryy3 avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar

bartender's Issues

Similar projects

This issue will keep track of similar projects or projects that I have taken inspiration from for certain solutions/features.

Cache

The machine should work without internet.
Currently we use graphql so that we don't need to care about what database it's stored in.

But it would also be nice with some sort of caching system.

I am not sure if you might be able to do it directly with graphql/apollo, if so that would be quite nice.

Otherwise we might need some middleware or internal API for retrieving instead of directly with apollo.

For V1 it will be fine with downloading everything and saving it as cache. But in the future it would be nice to filter out, maybe go based on stats, liquid in pump etc.

Tauri or alternative library?

This issue is more of a discussion with myself.

Tauri is relatively new and while I made it work locally on my pc it didn't work on raspberry pi.

I also tried to compile to ARM with macos but didn't get it to work.

I tested the pumps using rust so I know that rust will work but right now Tauri might be a gamble...

Currently I am waiting RocksPi which is more powerful than my raspberry pi 2. Hopefully I can compile Tauri on that one. Otherwise I will need to try and compile ARM on linux/PC and see if I can make that work.

If I can't compile the project on raspberry pi/rocks pi, then I might need to rethink.

Other alternatives would be using a GUI library.
I could also just hack away some simple HTML/JS/CSS page that communicate with a backend, for example through restful API or similar.

The problem could also be that I need to bundle the frontend even more. It was complaining that it ran out of memory, so minimizing the amount of libraries and such that I use could help.

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.