Skip to main content

Brewbat - tech stack and functionality

Published: 2023-07-19
Updated: 2023-07-19

Tech Stack

  • Flask (backend)
    • Blueprint project organisation
    • SQLAlchemy (ORM)
    • Flask Login, BCrypt (user session management)
    • Flask Mail (user email confirmation)
    • Flask Flatpages (md documentation)
    • Jinja templating language
    • Pandas (data processing)
    • WTForms
    • Flask-Migrate (database migration)
  • Deployment
    • Hetzner VPS
    • Docker
    • SWAG (reverse proxy)
  • NPM/JS
    • Vanilla JS for most of the frontend and calculations
    • Bootstrap
    • Chart.js
    • Flatpickr
    • Leaflet
    • Quill (notes)
    • Sweet Alert (pop ups)
    • Tabulator (tables)
    • Snowpack (build tool)

Functionality

  • User account
    • Login
    • Email confirmation
    • Reset password
    • Limit to 10 recipes in trial mode
  • Brewing calculators
    • Most done in Svelte
    • Some still vanilla JS: event listeners etc. Old School!
  • User area
    • Import Beersmith XML recipe files and add to profile
    • Update equipment profile for user usage
    • Save water profile from database of 3000+ water profiles into user water
  • Brewsheet
    • Move from a recipe to a brew sheet to get an overview of what you’re doing on brewday with
      • timers
      • data entry
      • ingredients lists
  • Recipe
    • Operations
      • Create
      • Delete
      • Auto save
      • Duplicate
    • Charts
    • Tables
    • Base ingredients