The current code graph page was written pretty hastily; it consists of a patchwork of JS code using web-ready libraries to plot the graph and offers no user-friendly means of navigating the graph.
I'd like to revamp the code graph page into a proper JS Web Application with a much more robust infrastructure and with a significantly higher user experience quality.
Requirements:
- A React-based JS web application, bundled along with other JS code into the zoo site using webpack (see the
jscomponents/ folder)
- I'm anticipating that the cytoscape JS library should be used to generate the code graph
- Relationships between the codes should be made visible in an intuitive fashion (e.g., arrows to parents)
- The layout should be generated automatically, and should not require additional meta-information to be input in individual EC codes.
- The input to the app is a data structure representing a collection of EC codes, with meta-information such as name, description, etc., as well as references to parents, children, and cousins.
Some ideas that might require some design decisions:
- I'd like a user-friendly experience for navigating different parts of the graph. This might include some UI controls to zoom/pan the graph, to show/hide certain types of relationships, etc.
- Perhaps at the highest zoom level, we shouldn't display individual codes, but rather, "boxes" or some other visual effect placeholder to represent a family of codes (e.g., qubit codes). Ideas are welcome for how to meaningfully represent the information in an intuitive way at different zoom levels.
- The code graph will need more information than the bare meta-information given in the input data structure. E.g., it will want to build "code families", given for instance by collecting all codes that are a descendant of a given code. I'd like for such pre-processing code to be in a separate component/library, in anticipation for possible use also in other parts of the site generation process. (For background information, I'm eyeing a move of the entire site generation code from python to javascript.)
- The app's code should be sufficiently modular and make sufficiently few hypotheses about the code structure, in that I'd like it to be possible to generate a code graphs separately on other site pages, too, with a subset of the entire EC codes database. For instance, on the page of the parent "topological code", it would be nice to be able to generate a "local graph" of all topological codes (ignoring all other codes).
Optional:
- Any further ideas to make the browsing experience better are welcome!
The current code graph page was written pretty hastily; it consists of a patchwork of JS code using web-ready libraries to plot the graph and offers no user-friendly means of navigating the graph.
I'd like to revamp the code graph page into a proper JS Web Application with a much more robust infrastructure and with a significantly higher user experience quality.
Requirements:
jscomponents/folder)Some ideas that might require some design decisions:
Optional: