google-summer-of-code icon indicating copy to clipboard operation
google-summer-of-code copied to clipboard

[Idea]: stdlib API dependency explorer

Open kgryte opened this issue 3 years ago • 1 comments

Idea

stdlib is a large (and growing!) project, which can make project navigation challenging. The goal of this idea is to provide a visual representation of an API's dependency graph directly in the stdlib API documentation. Initial thinking is that would be an interactive network diagram in which nodes present package dependencies and allow for navigation; however, other visual representations may be possible.

By providing such a means for navigating the project, users could more readily deepen their understanding of the stdlib code base, identify potential issues, and better understand how underlying APIs are used.

Expected Outcomes

A user will be able to navigate to a package's documentation page, click to display a network graph, and then click on nodes within that graph to explore the documentation of package dependencies.

Involved Software

No other software is necessary.

Prerequisite Knowledge

JavaScript, Node.js, HTML/CSS, JSX.

Difficulty

Beginner/Intermediate.

Project Length

175 hours.

Potential Mentors

@kgryte @Planeshifter @steff456

kgryte avatar Jan 11 '23 10:01 kgryte

Some questions I'd like to see answered for any proposal addressing this idea:

  • how will the dependency explorer be integrated into the existing API docs?
  • what will be the challenges based on one's understanding of the stdlib-js/www repo and the site's architecture?
  • what will need to change in the existing application to support the proposal?
  • how much refactoring will be involved?
  • how will the diagram support navigation to packages displayed in the diagram?
  • as some of the dependency trees will be very deep and extensive, how will the proposal ensure that the explorer shows the dependency tree in a concise fashion such that, in a tree with many nodes, package names are still readable?
  • how will the proposal ensure adherence to web accessibility principles?
  • how will the proposal handle SSR for purposes of SEO?
  • will the proposal require the introduction of any new application dependencies? If so, what are the alternatives? Are there any trade-offs? How will the dependencies affect application bundle size?

kgryte avatar Mar 17 '24 01:03 kgryte