This application takes advantage of recent developments in web technology, but there are some limitations.
Education tools that require grade data have historically been limited to the user's desktop computer. Due to FERPA requirements, uploading grade data to third-party website was simply out of the question. This application is much different. While the application is delivered over the web, all of the processing and estimation procedures occurs locally on your computer. The data you provide to the application is read locally and is never uploaded to a server. In fact, once the application is initially downloaded by your browser it will fully run even without an internet connection. To make this possible, this application takes advantage of very recent developments in web technologies. The application is only tested in browsers using the latest version of the Chrome and Safari browser engines (Blink and WebKit, respectively). Thus, the application works in browsers such as Chrome, Safari, Microsoft Edge, Opera, Arc, Brave, and all browsers running on iOS. The application can encounter issues when running on Firefox. This includes not being able to estimate the model and failing to return bootstrap results when running on Firefox.
This web application is made possible by WebAssembly, Pyodide, and PyScript. Collectively, these technologies allow this website to run an estimation procedure within your browser. The general user does not need to understand the details of these technologies, but they come with some limitations:
The application is heavy in both download size and performance. A modern computer with up-to-date software and a fast internet connection is required.
The bootstrapping procedure is an order of magnitude slower than if you ran the python package on your local computer.
During the bootstrapping procedure the interface can be slow or temporarily become unresponsive. However, this is now rare because the bootstrapping procedure runs in a separate thread.
Fundamentally, the web app is constrained to a single virtualized processor core (regardless of how many processor cores are in your computer). This causes the second and third issue above. For most normal class sizes, the application is fast enough for most uses. However, large datasets should be used with caution. Also, limiting the number of other applications (or browser tabs) open on your computer can have some impact on performance. (As this process is limited to a single core, closing other applications or tabs would only positively impact the performance of the application if the user was running so many that it was constraining the resources of the web application. On a modern multicore system, running a reasonable number of tabs or other heavy applications would not typically negatively impact the performance of the website.)
Beware of automatically pausing tabs! Some modern browsers automatically pause the computation of tabs that are not visible to the user. Therefore, the user should keep the ProjectAssessment.App visible during the bootstrap procedure.
The performance gap between the estimator running in a non-web environment and this web application will narrow with improvements in WebAssembly, Pyodide, and PyScript. However, there will always be a substantive difference in performance.