Instead of using state variables that are lost on refresh, we should use query parameters for managing the `branch` and `semester` filter options.