your coffee extractions will never be the same!
Yes, it starts with the click of a button. The button triggers a Lambda function that inserts into a DynamoDB table the current timestamp and some extra data regarding the button press. That table uses the DynamoDB Streams feature, which triggers two other functions: the first one to update the extractions' fabulous JSON file , and the other one that checks if the inserted registry has a picture associated with it; if not, inserts a message into one AWS ioT MQTT topic. In my kitchen I have a Raspberry Pi with a Python application running and subscribed on that very same topic, so when a message arrives it uses the Camera Module to take the picture and put into Amazon S3 , where by the way this page is also hosted. This page that you see is just a static HTML that uses Twitter Bootstrap and jQuery to build a fancy interface.
No, there's not a single server administered by me in this project. Say goodbye to headaches and give yourself good sleeping nights! This entire ecosystem runs on a new architectural approach called Serverless , where we don't need to concern with Operating Systems, packages, binaries installations, scaling, data durability, high availability and all the efforts we must have when dealing with servers: no server is easier to manage than no server!