Skip to content

arcus/module_discovery

Repository files navigation

Module Discovery App

Overview

The purpose of this app is to allow for easier discovery of the educational modules created as part of the DART program. Ultimately this will replace the current public-facing list of all modules on the DART website.

This app will allow users to learn more about each module, investigate how the modules are connected, and search for particular topics or key words.

The module discovery app.

NOTE: This is a prototype that is in a phase of rapid development. All effort will be made to keep this README up to date, but some changes might slip by. If something isn't working as expected, please let us know by creating an issue.

Development

File structure

There are three main folders,

  • assets for stylesheets and other visual settings,
  • components which contains each of the panels/components of the app. Any callbacks that are internal to a component, e.g. expanding and hiding the component or something within the component, is in the component's directory. For example components/module_details_panel/ contains module_details_panel.py as well as module_details_panelcallbacks.py, but also smaller sub-components of that panel like the title_link, tags, and pre_reqs.
  • callbacks for any callbacks that transmit information between different components. Note that these callbacks will filter through the hidden components of hidden_active_module and hidden_filtered_modules. In the future there may be a third hidden component (possibly visible) for my_modules.

Module data

The module_data.py file is created from the education_modules repo.

Mini dataset for debugging

There is also a module_data_mini.py file that consists of only 5 modules. When developing new features it can be extremely helpful to work out bugs and callbacks on this smaller set of data.

Testing

Clone or download this repository to run the app yourself!

Dockerization

The Dockerfile, requirements.txt are set up to allow this to run in a Docker container on a local computer. To run it, open Docker and a command line interface.

From the top level directory of this repository run:

docker build -t module_discovery_app .

This may take some a minute the first time you run it. Once it is completed, run:

docker run -d -p 8050:8050 module_discovery_app

Open a web browser to http://0.0.0.0:8050 to see and interact with the app.

Running the app locally

If all of the requirements (see requirements.txt) are correct on your machine, you can run the app locally without using docker at all with the command:

python app.py

This will open a port where you can see the app locally. To see error messages, callbacks, and for the app to live update as you develop, set debug=True in the last line of app.py.

NOTE: There will be one error on loading. You can ignore it completely.

Accessibility

Features

All information and relationships represented in the network graphs are also communicated via buttons in the Module Details panel.

Unknowns

This is a Dash/Plotly app which has not been tested with any accessibilty technologies.

Suggest improvements

If you have needs that are not being met, or ideas for how to test or improve the accessibility of this app, please create an accessibility issue so we can work to address it!

About

The module discovery app for Arcus Ed lives here.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published