Analyzing the composition of beer recipes and visualize results, built with Django, Pandas and Plotly.
Live website: https://www.beer-analytics.com/
The goal is to expand the knowledge how different beer styles are typically brewed and potentially uncover trends in craft/home brewing.
The project has two components:
- a recipe database with reliable data (clean and normalized, reduce outliers and bad data)
- a user interface to execute data analysis (filtering, slicing and dicing) and present results in a visually appealing way
- Python 3.8
- pip
- virtualenv (ideally)
- yarn (JS package manager)
yarn install
- Initialize
virtualenv
and enable it - Install Python dependencies:
pip -r requirements.txt
- Configure the application (see below)
- Apply database migrations
python makemigrations
+python manage.py migrate
- Load initial data
python manage.py load_initial_data
Provide a .env
file in the beer_analytics
folder. An example can be found in beer_analytics/.env.example
.
Per default the application starts with "dev" settings. Use DJANGO_SETTINGS_MODULE
to use different settings according
to the environment:
# Production settings
DJANGO_SETTINGS_MODULE=beer_analytics.settings_prod
# Dev settings
DJANGO_SETTINGS_MODULE=beer_analytics.settings_dev
After setting up the application, recipes can be imported via CLI in various formats. Each recipe must have a unique id assigned, which can be an arbitrary string.
python manage.py load_beerxml_recipe recipe.xml unique_id
python manage.py load_mmum_recipe recipe.json unique_id
python manage.py load_beersmith_recipe recipe.bsmx unique_id
For information about the security policy and know security issues, see SECURITY.md.
Want to contribute to this project? See CONTRIBUTING.md.
This software is available under the Beerware License.