https://github.com/capjamesg/hypertext-coffee-pot
A Python implementation of the HyperText Coffee Pot Control Protocol.
https://github.com/capjamesg/hypertext-coffee-pot
Last synced: over 1 year ago
JSON representation
A Python implementation of the HyperText Coffee Pot Control Protocol.
- Host: GitHub
- URL: https://github.com/capjamesg/hypertext-coffee-pot
- Owner: capjamesg
- License: mit
- Created: 2021-11-16T15:50:37.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-11-22T16:03:14.000Z (over 4 years ago)
- Last Synced: 2025-03-28T19:16:39.468Z (over 1 year ago)
- Language: Python
- Size: 246 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# James' Coffee Pot
James' Coffee Pot (also referred to as CoffeePot) is a server for coffee pot control.
The coffee pot server complies with the Hyper Text Coffee Pot Control Protocol (HTCPCP), a protocol defined in an IETF RFC memo.
This project contains two programs:
- A coffee pot server, accessible using the coffee:// URI scheme.
- A web interface that allows you to easily interact with the server.
The coffee pot has the ability to track coffees so that a coffee cannot be ordered when one is already brewing.
A live version of the coffee pot is available at [coffeepot.jamesg.blog](https://coffeepot.jamesg.blog).
## Screenshot

## Installation
To use this project, first install the required dependencies. You can do so with this command:
pip install -r requirements.txt
Next, start the coffee pot server:
python3 coffee.py
In a separate terminal, start the web interface for the coffee pot server:
python3 app.py
After running the commands above, you are ready to start using the project.
Milk is poured in the coffee after five minutes of brewing. You can use the web application to send a WHEN request to stop pouring milk on demand.
## Alternative Milk Support
The coffee server can accept requests for almond, oat, soya, and coconut milk. While not defined in the original specification, these values have grown enough support among coffee drinkers to merit inclusion.
## HTTP 418 Status Code Support
The coffee pot does not support the HTTP 418 status code. This is because the application only allows you to define a coffee pot as a brewing device.
## Technologies
This project makes use of the following technologies:
- Python
- socket
- Flask
## License
This project is licensed under an [MIT license](LICENSE).
## Contributors
- capjamesg