stdlib-js / google-summer-of-code

Google Summer of Code resources.
https://github.com/stdlib-js/stdlib
23 stars 5 forks source link

[RFC]: stdlib API dependency explorer #79

Closed Akshat-Kob closed 2 months ago

Akshat-Kob commented 3 months ago

Full name

Akshat Shah

University status

Yes

University name

Indian Institute of Technology B.H.U. (Varanasi)

University program

Integrated Dual Degree

Expected graduation

30 June,2025

Short biography

My name is Akshat Shah, and I'm a pre-final year student at IIT BHU, majoring in Mathematics and Computing. With a strong foundation in C++, data structures, and algorithms, I've honed my skills through various projects. I'm proficient in web development technologies like HTML, CSS, JavaScript, and React, having completed projects in frontend and backend development. My diverse skill set, coupled with a keen interest in software engineering, makes me well-suited for implementing the proposed dependency explorer project.

Timezone

Indian Standard Time (UTC+5:30)

Contact details

akshat.shah.mat20@itbhu.ac.in, akshat.2k02@gmail.com, https://github.com/Akshat-Kob, https://www.linkedin.com/in/akshat-shah-420913206/

Platform

Windows

Editor

I prefer VS Code for its user-friendly interface, extensive plugin ecosystem, and seamless integration with Git and debugging tools, which enhance my productivity and streamline my development workflow.

Programming experience

In my programming journey, I've utilized HTML, CSS, JavaScript, and the MERN stack to create a variety of projects, ranging from a personal portfolio and weather app to a dynamic newspaper app and interactive games. Leveraging React, I've crafted intuitive user interfaces, while employing MongoDB for data storage in backend development. These projects showcase my ability to apply modern web technologies to solve real-world problems and my proficiency in creating engaging and functional applications across different domains. A few of them have been put up on github.

JavaScript experience

My experience with JavaScript spans across various projects, including portfolio websites, weather apps, and games. One of my favorite features of JavaScript is its flexibility in handling asynchronous operations through promises and async/await syntax, which simplifies complex asynchronous code structures. However, my least favorite feature is the loose typing system, which can sometimes lead to unexpected behavior and debugging challenges.

Node.js experience

I have intermediate experience with Node.js, having utilized it in backend development for projects like the newspaper app and note-taking app. I've leveraged Node.js for server-side logic, routing, and database interactions using frameworks like Express.js. Additionally, I've implemented authentication, data validation in Node.js applications.

C/Fortran experience

No Experience

Interest in stdlib

What interests me about stdlib is its comprehensive collection of standardized JavaScript libraries, offering a wealth of functionalities for various domains. One of my favorite features is its mathematical functions, providing robust tools for numerical computation and statistical analysis. As someone with a background in mathematics and computing, I find these functions particularly valuable for implementing algorithms and solving mathematical problems efficiently. Additionally, the ease of integration and consistency across the stdlib ecosystem make it a reliable resource for developing JavaScript applications.

Version control

Yes

Contributions to stdlib

No contributions till now

Goals

To achieve this, we'll develop a web application using JavaScript, Node.js, HTML/CSS, and JSX. The application will feature React components for the dependency explorer, fetching and rendering package dependency data dynamically. We'll integrate interactive functionalities for users to navigate through the graph and explore package documentation seamlessly. To ensure accessibility, we'll adhere to web accessibility principles and implement SSR for SEO purposes. Additionally, we'll carefully manage application dependencies to minimize bundle size impact and optimize performance. Through iterative development, testing, and documentation, we'll deliver a robust and user-friendly tool for enhancing stdlib API documentation.

Why this project?

This project excites me because it addresses a fundamental challenge in software development: navigating complex codebases efficiently. By visualizing package dependencies in the stdlib documentation, we can gain deeper insights into API relationships, improving their understanding and productivity. I'm enthusiastic about leveraging modern web technologies like Javascript, Node.js, ReactJS to create an intuitive and interactive tool that empowers developers to explore the stdlib codebase with ease, fostering collaboration and innovation in the open-source community.

Qualifications

As someone proficient in HTML and CSS with experience in JavaScript and Node.js through various projects, I possess a strong foundation in web development. While I'm currently unfamiliar with JSX, I'm eager to learn and apply it to this project. My hands-on experience with web technologies, coupled with a proactive attitude towards learning, equips me to effectively contribute to the implementation of the proposed visual dependency explorer for stdlib documentation.

Prior art

Other projects have addressed similar goals by visualizing package dependencies in software projects. Additionally, libraries such as D3.js and Vis.js provide visualization capabilities. Numerous blog posts and research papers explore techniques for visualizing software dependencies, offering valuable insights and methodologies for implementing similar projects.

Commitment

I'm fully committed to investing approximately 15-20 hours per week into the project throughout the Google Summer of Code program. I don't anticipate any significant commitments, vacations, or exams that would interfere with my availability during this period. I'm dedicated to delivering high-quality work and actively participating in the project's development, both during and beyond the GSoC program.

Schedule

Community Bonding Period:

Week 1:

Week 2:

Week 3:

Week 4:

Week 5:

Week 6 (Midterm):

Week 7:

Week 8:

Week 9:

Week 10:

Week 11:

Week 12 (Final Week):

Related issues

No response

Checklist