Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Idea]: stdlib API dependency explorer #14

Open
kgryte opened this issue Jan 11, 2023 · 1 comment
Open

[Idea]: stdlib API dependency explorer #14

kgryte opened this issue Jan 11, 2023 · 1 comment
Labels
difficulty: 2 Suitable for someone with some JavaScript experience. idea Potential GSoC project idea. priority: low Low priority. tech: html/css Involves using HTML and CSS. tech: javascript Involves programming in JavaScript. tech: jsx/react Involves programming with React JSX. tech: nodejs Requires developing with Node.js.

Comments

@kgryte
Copy link
Member

kgryte commented Jan 11, 2023

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 kgryte added idea Potential GSoC project idea. priority: low Low priority. tech: javascript Involves programming in JavaScript. tech: nodejs Requires developing with Node.js. tech: html/css Involves using HTML and CSS. tech: jsx/react Involves programming with React JSX. difficulty: 2 Suitable for someone with some JavaScript experience. labels Jan 11, 2023
@stdlib-js stdlib-js locked and limited conversation to collaborators Jan 11, 2023
@kgryte
Copy link
Member Author

kgryte commented Mar 17, 2024

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?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
difficulty: 2 Suitable for someone with some JavaScript experience. idea Potential GSoC project idea. priority: low Low priority. tech: html/css Involves using HTML and CSS. tech: javascript Involves programming in JavaScript. tech: jsx/react Involves programming with React JSX. tech: nodejs Requires developing with Node.js.
Projects
None yet
Development

No branches or pull requests

1 participant