/openbrewerydb

🍻 An open-source dataset of breweries, cideries, brewpubs, and bottleshops.

Primary LanguageJupyter NotebookMIT LicenseMIT

🍻 Open Brewery DB Dataset

All Contributors

Open Brewery DB Logo

This is the open-source dataset for the Open Brewery DB API which is served by a REST API built with Ruby on Rails

🎯 Purpose

Provide an approval-based pipeline to update the dataset and API.

🗄 Data Formats

API

Access the dataset programmatically via the Open Brewery DB API. Use the following tools to get started without any code:

databar.ai

If you don't know how to use APIs, you can use Brewery DB without code through the databar.ai platform.

Run without code

Postman

A shared Postman collection containing all the API requests to fetch breweries information from the open-source dataset.

Run in Postman

🚀 Getting Started

  1. git clone git@github.com:openbrewerydb/openbrewerydb.git
  2. cd openbrewerydb && npm install

🤝 Contributing

For information on contributing to this project, please see the contributing guide and our code of conduct.

  1. Fork the repository
  2. Add or update breweries in the CSV (Excel, Google Sheets)
  3. Submit a Pull Request

Tips

First and foremost, don't worry about messing up! 🙂 Thank you so much for contributing! 🙌

  • CSVs are organized by data/[country]/[state_province]
  • Required fields/columns: name, brewery_type, city, state_province, postal_code, and country
  • When adding a brewery, do not include an id. This will be created after review.
  • Please either add to breweries.csv (preferred if adding breweries for a new country) or the individual state/province CSV file. Adding to both at the same time may introduce duplicates/errors.

⚙️ Scripts

These are the npm scripts used to maintain this dataset.

  • npm run csv:combine - Combine CSVs from country/state-region folders into breweries.csv
  • npm run csv:split - Split breweries.csv into country/state-region/city CSVs
  • npm run contributors:add - Add contributor (interactive CLI)
  • npm run contributors:check - Check if there are any missing contributors
  • npm run contributors:generate - Generate contributors into README.md
  • npm run generate:ids - Generate unique OBDB IDs based on the brewery name and city and overwrite breweries.csv
  • npm run generate:json - Generate JSON from breweries.csv output to breweries.json
  • npm run generate:sql - Generate PostgreSQL SQL from breweries.csv output to breweries.sql
  • npm run validate - Validate CSVs based on JSON Schema
  • npm run workflow:maintain - Combine, generate, split (used when updating individual CSVs)

👾 Community

📫 Feedback

Any feedback, please email me.

Cheers! 🍻

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Mike Putnam
Mike Putnam

🔣
Andrew A. Barber
Andrew A. Barber

🔣
Jason Allen
Jason Allen

🔣
Juicob
Juicob

🔣
Will Karnasiewicz
Will Karnasiewicz

🔣
Dylan T. Vavra
Dylan T. Vavra

🔣
Madison Martinez
Madison Martinez

🔣
Daniel Eremchuk
Daniel Eremchuk

🔣
Alex Chong
Alex Chong

🔣
Matt S
Matt S

🔣
Samuel Rusher
Samuel Rusher

🔣
Evan Caraway
Evan Caraway

🔣
Tyler K Kuromiya Parker
Tyler K Kuromiya Parker

🔣
kendellmendoza
kendellmendoza

🔣
Johnnyk737
Johnnyk737

🔣
James Schuler
James Schuler

🔣
Creighton Leif
Creighton Leif

🔣
Vitaly Tomilov
Vitaly Tomilov

💻
Kyle Scudder
Kyle Scudder

🔣
Chris Mears
Chris Mears

💬 💻 🔣 🚧 📆 🔧
donkeyslaps
donkeyslaps

🔣
Pranav Davar
Pranav Davar

🔧
Alexandre Hernandes Barrozo
Alexandre Hernandes Barrozo

🔣
Resten
Resten

🔣
Matt Higgins
Matt Higgins

🔣
Alex Justesen
Alex Justesen

🔣
Craig Kelly
Craig Kelly

🔣
Krzysztof Rewak
Krzysztof Rewak

🔣
John Baumert
John Baumert

🔣
Charlie Cox
Charlie Cox

🔣
Miles Kane
Miles Kane

🔣
Anthony Laflamme
Anthony Laflamme

💻
Georg Engelsmann
Georg Engelsmann

🔣
Clinton Williams
Clinton Williams

🔣
Brent Busby
Brent Busby

🔣

This project follows the all-contributors specification. Contributions of any kind welcome!