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!

2 Likes