Skip to content

Architecture

Start here for an overview of the applications we use to support BILLinois.

Backend architecture

  • Data source: OpenStates API
    • OpenStates is a standardized data model for legislation from all 50 states.
  • Database: PostgreSQL
    • Postgres can be less expensive than alternatives like AWS for our use case.
  • Backend: Django
    • Django uses the model-view-controller paradigm, which helps for moderately complicated variable views.
  • Authentication: Django
    • Django has built-in flows for authentication
  • Frontend: Bulma
    • We use a CSS framework to simplify and standardize design.
  • Scheduling: cron (a builtin Linux feature)
    • Runs scripts once a day to:
      • Ingest updates to legislation from the API
      • Notify users of any updates to their saved bills

Architecture diagram

User flow

Overview of the user experience supported by the application architecture, for reference.

Users can search and filter bills as either an authenticated user or a guest, but users must be logged in to get notifications for bills.

User flow diagram