Roast Profile Generator

Hey everyone!

I recently built a Roast Profile Generator that transforms your coffee roasting data from RoastTime into a customer-friendly web page.

What It Does:

  • Automatically Detects New Roasts:
    • The program monitors your RoastTime roast folder and automatically picks up any new roasts when they’re completed.
  • Creates Customer-Friendly Web Pages:
    • It converts your roast data into a web page that includes key information about the roast and the coffee beans.
  • Publishes to the Web:
    • The web page is uploaded to the internet, making it accessible to your customers.
  • Generates QR Codes:
    • It also creates a QR code that links directly to the web page, so you can easily share it.

Features of the Web Page:

  • Key Roast Details:
    • Displays important information like roast length, roast level, bean weights, and more.
  • Bean Information:
    • Includes details about the coffee beans, such as their origin, altitude, varietal, etc.
  • Interactive Roast Chart:
    • Shows a chart of the roasting process, similar to what you see in RoastTime, so customers can see how their coffee was roasted.
  • Helpful Explanations:
    • Provides information on how to read the chart and understand the roasting process.

Getting Started:

  • RoastTime Software:
    • Ensure you’re using RoastTime to record your coffee roasts.
  • Bean Information Spreadsheet:
    • Since the roast data only includes the ID of the bean, you’ll need to create a simple spreadsheet that matches the bean IDs to their names and other details.
    • For a template, take a look at the beans.csv file provided here. The bean ID can be found on Roast World.

Steps to Set It Up:

  1. Prepare Your Bean Data:
  • Create a spreadsheet (beans.csv) that lists your beans, including their IDs, names, and any other information you’d like to share.
  • Use the provided template as a starting point.
  1. Install the Roast Profile Generator:
git clone https://github.com/AntSan813/roastime-collector.git
  • Navigate to the project directory:
cd roastime-collector
  • Install Python dependencies:
pip install boto3 watchdog qrcode[pil] python-dotenv matplotlib Pillow
  1. Customize It to Your Preferences:
  • HTML Templates: Modify template/index.html to change the structure or content of the web page.
  • CSS Styles: Update template/assets/styles.css to adjust styling to match your brand.
  • JavaScript: Modify template/assets/chart.js for custom chart behavior if needed.
  1. Configure AWS:
  • This step is only necessary if you want to publish your roast profiles to Amazon’s S3 service. If you’d rather publish to another web service, or if you don’t want to publish anywhere, then you will need to remove those steps in main.py.
  • Install AWS CLI:
    • Download and install the AWS CLI by following the AWS CLI Quickstart Guide.
  • Configure AWS Credentials:
    • Run aws configure and enter your AWS Access Key ID, Secret Access Key, and default region.
aws configure
  • Update S3 Configuration:
    • In the scripts/s3.py file, ensure it points to the correct AWS profile and S3 bucket name.
  1. Run the Program:
  • To run the entire program:
python main.py
  • For test runs:
python main.py --test sample_roast_data.json
  • Output Locations:
    • Generated web pages are stored in the roasts/ directory.
    • If publishing to S3, the links to the deployed web pages are stored in qr_codes/.
  1. Roast Your Coffee:
  • Roast as you normally would using RoastTime.
  • After each roast is completed, the program will generate a web page and a QR code for that roast.
  1. Share with Your Customers:
  • Print or share the QR code so customers can scan it.
  • They’ll be taken to the web page with all the roast details and bean information.

This was a passion project of mine, so the software isn’t that easy to set up for non-technical folks. With that being said, I’m more than happy to help anyone setting this up for themselves. Also, if anyone has suggestions to improve this, feel free to mention it here or make a pull request on GitHub!

7 Likes

Nice work! Thanks for sharing.

So are you using it for a business of yours now?

@themcclure might have worked on something similar once

Thanks, I just hope others find use out of it.

I started using for my business just the other day. Although my customers probably aren’t the type to care about the roast details, many who have seen it think its cool how all that information is available to them.

Thanks for sharing, I’ll have to check out his work!

This is amazing! I need to figure out how to integrate this to my website.

1 Like

Cool app @sanant813.yHY3 !

Just wanted to mention that you can actually generate QR codes on RW and share them with customers. We recently fixed a bug where that required login, but it should be fixed now.

image

1 Like

@mcaillio Is there anyway to remove the Heat/Drum/Fan Speed details for the QR code?

Very cool, thanks for sharing!

I noticed that RW also offers an embedding for roast profiles. I would love to incorporate that in my roast profile generator. However, manually adding that after each roast can be time consuming.

Does RW provide any APIs that allow developers to access roast profile embeddings and bean information programmatically? In my app, I map roasts to beans based on the beanId generated by RW. Having API access to this data would greatly streamline the process.

Glad you find it useful! I’d be happy to help integrate this into your website.

Also, I’ve been working on adding a graphical interface to the app to make it easier to use for everyone. Should have that update pushed soon!

Hey everyone, I wanted to announce that a new version of the Roast Profiler has been released! It still works the same as before, but now its much easier to use and get started with. In this new version, I added a user interface so that you can manage and configure roast profiles directly from the browser.

Getting Started

To get started with the Roast Profiler, there are two requirements:

  1. Same Computer as RoastTime : Install the Roast Profiler on the same computer where you use RoastTime, as it relies on RoastTime’s cached data.
  2. AWS S3 Bucket : You’ll need a valid AWS account with an S3 bucket configured. All roast profiles will be deployed to this bucket. After setting it up in AWS, enter your access key and secret key in the Roast Profiler. You will not be able to create roast profiles without configuring S3 first.

For Mac uers, simply download the zip file here

To download the app on Linux or Windows

To download the app on Linux or Windows:

python3 run.py

Once the app is running, open your web browser and navigate to:

http://127.0.0.1:5077/

Usage

All your roasts are automatically retrieved from RoastTime’s cache. To view any new roasts, simply refresh the home screen.

Note: You can only create roast profiles for roasts that are linked to a valid bean.

Your beans are also automatically imported from RoastTime’s cache. However, RoastTime’s bean data is limited. To provide more detailed information, you’ll need to manually add additional details for each bean.

  • To add new beans, first add them in RoastTime.
  • Then, reload the Roast Profiler page to see them listed.

Roast Profiles are Static. Once a roast profile is created, it won’t automatically update if you change the bean information or roast settings later on. If you’ve made changes and want them reflected in the roast profile, you’ll need to regenerate it. This can be done anytime after the profile has been generated.
You can download a QR code for each roast profile after it’s created. The QR code URL is unique and doesn’t change, even if you regenerate the roast profile. This means you won’t need to download a new QR code if you make updates.