Boulder Python Meetup Website
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Boulder Python Website

Build Status Coverage Status Docs

Our website grew out of @iandouglas's Flask + Google App Engine template. What kind of Python community would we be if our site wasn't also developed using Python?? :)

Official Documentation:

A Community in Progress

We are a group of python developers, scientists, automators, and enthusiasts that gather once a month in Boulder, Colorado to discuss all things python. We usually meet on the 2nd Tuesday of each month. You can find and engage with us on Meetup, Twitter, and Slack (#meetup-python) and (#help-python).

Speak at a Meetup

We're always looking for speakers at our meetups. Whether you have a short talk, long talk, or just an idea for a talk, we'd love to have you. Submit your talk directly on


Scott Vitale,, @svvitale on Twitter, Github

Zoë Farmer,, @TheDataLeek on Twitter, Github

Frank Valcarcel,, @fmdfrank on Twitter, @frankV on Github


Galvanize Boulder hosts our meetups and provides tasty food, beer, and refreshments (along with full stack and data science bootcamp programs). Contact xxx to learn more.

Spigot Labs - Add RFID to your beer, wine, and food festivals to track tastes and interactions between patrons and vendors.

Cuttlesoft - Cuttlesoft is a custom software agency. They craft beautifully designed and highly scalable solutions for web, mobile, IoT, and the cloud.

Code of Conduct

Our community has implemented the PyCon "Code of Conduct" for ensuring all members attending our sessions, meetups, and events feel included and heard. Thanks for your mutual respect to one another.

Website Contributions

We welcome contributions, changes, and corrections to our website. Please submit a pull request.


As of 2018, the Flask application features a few new integrations. Notably, they're the Meetup API, Trello, and MailChimp integrations. We want to keep this project public, so we have to be careful with our API keys. To get around this, we use a simple config file, here's how we set it up:

  1. Copy the local-example.cfg and fill it with your API Keys and settings.
  2. Be careful NOT to commit this file into your fork/repo

To run the application now, use:

$ FLASK_CONFIG=local.cfg flask runserver


You can easily run the tests suite from the command line:

py.test test

pytest has a set of optional arguments that can enable many options and plugins.

Here are some we recommend:

- `-v/--verbose` increases verbosity on py.test output
- `-x` exit after first failure
- `-rs` enables skipped test report
- `--cov` enables code coverage
- `--flake8` enables pep8 and pyflakes testing via [flake8](

For example, our test run uses:

$ py.test tests --verbose --cov --cov-report term-missing --flake8 application

Check out pytest's usage docs.

Building Static Assets

With the new redesign, our static asset files (js and css) have changed. We're still using SASS, but now the project relies on gulp and npm to build and minify both scss files, but also JavaScript.

With npm and gulp installed, simply run:

$ gulp

The default gulp command builds scss and concatenates scripts into app.css, and app.js, respectively. It will also begin the gulp watch command so if you save any changes in your scss and js files, gulp rebuilds them automatically.


We now use Celery to handle Trello webhooks and send out emails to speakers.

Celery requires a task broker. Either RabbitMQ or Redis are good choices.

To run Celery, use the following command:

$ FLASK_CONFIG=local.cfg flask celeryd