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
- Runs scripts once a day to:
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.