Speedup initial UI load-time
Currently, all courses are loaded at once from the backend, before the UI can be responsive. This is both the courses in the user's current plan and every other course offered. These should be broken up into two separate data structures.
The courses in the user's plan should be loaded before the UI is responsive and the rest of the courses can be loaded asynchronously to not slow down the initial load time.