stdlib-js / google-summer-of-code

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

[RFC]: Migrate web API documentation to use matomo and instrument for better understanding user navigation behavior #78

Closed nishant-s7 closed 5 months ago

nishant-s7 commented 6 months ago

Full name

Nishant Shinde

University status

Yes

University name

Indian Institute of Information Technology, Sri City

University program

Computer Science and Engineering

Expected graduation

May 2025

Short biography

Hi there! I'm Nishant , a third-year student pursuing B.Tech in Computer Science and Engineering at IIIT Sri City, Chittoor. My hometown is Sambhaji Nagar, Maharashtra. My current CGPA is 8.96.

I am mainly a Full Stack Developer. I am proficient in front-end technologies like React, Next.js and EJS and back-end technologies like Node.js, Laravel and Symfony. I have experience with MongoDB and MySQL. I also know Mobile App Development with React Native. I'm also proficient in AR VR Application Development using Unity and Blender.

I really like trying out new technologies and learn about them to make interesting applications.

Timezone

IST ( UTC +5:30 )

Contact details

email:nishantshindelp@gmail.com,github:nishant-s7

Platform

Linux

Editor

My preferred code editor is Visual Studio Code (VSCode) as it is beginner-friendly as it is a feature rich IDE while also being comparatively lightweight.

Programming experience

I started coding when I entered my first year of college in C. After enough practice in C, I moved to C++ and it became my go-to language for problem solving (DSA). I also studied Object Oriented Programming in Java. Through Full Stack Development, I practiced Javascript in great detail after learning it from multiple platforms for front-end and back-end. The full list is as follows:

Programming Languages: JavaScript, TypeScript, C/C++, php, C#, Solidity Databases: MongoDB, MySQL Libraries and Frameworks: React, Nextjs, TailwindCSS, GSAP, Express.js,, Mongoose, Laravel, Symfony, Ether.js Tools and Platforms: Git, Github,, Postman, Vercel

JavaScript experience

At the beginning of our full stack development course, I learnt all the fundamental concepts of Javascript and ES6 through YouTube. Further, I learnt React for developing interactive user-friendly UI web pages. Some of my projects are as follows:

I have also worked at a startup named Career Milaap: Learning and Hiring Platform where I used React to make several pages in their admin website. I also used Next.js for their consumer website.

Node.js experience

At the end of 2nd year, I finished learning Node.js from Maximillian sir's Udemy course. He taught it so well and I followed along while coding in parallel, giving me confidence in developing back-end applications. Some of the projects where I did backend are as follows:

C/Fortran experience

My first programming language was C, also present as a subject in my college course. I also did Codeforces in C language for a while. I have a strong foundation in programming principles, data structures, and algorithms with C. I have no experience with Fortran, but I believe I will be able to learn it pretty quick if required.

Interest in stdlib

Javascript is my favorite language for any kind of development. So having a library like stdlib which provides extensive functionality for numerical calculations so easily is brilliant.

Version control

Yes

Contributions to stdlib

As of right now, I have 2 merged contributions in stdlib.

Goals

Currently, the stdlib web-based API docs use GA for analytics and have only minimal integration. E.g., the API docs application is an SPA that uses React and the app does not record changes in page views; we only record first hits.

The goal of this idea is to migrate to using matomo and take advantage of its privacy features. The work will involve instrumenting the API documentation application and integrating it with matomo. A potential stretch goal would be to set up dashboards for reporting so that we can better understand user behavior and continue to improve project documentation.

Why this project?

I have been doing web development for almost 2 years now, yet, I still keep coming across various new technologies. And I love learning new things. This project will be fun to do as it lies between comfortable and something very new. I look forward to giving my best for this project.

Qualifications

I have good experience with all the required technologies for this project, which are, Javascript, Node.js, HTML/CSS and JSX/React. I have learned all these technologies from the fundamental level up to the required advanced level in my college journey. As mentioned above, I have done multiple projects in React and Node.js. I have also done an internship under a startup for over 6 months which included these technologies.

Prior art

The task of recording change in page views in an SPA has been achieved previously using Matomo. This process can be greatly simplified using the Matomo Tag Manager using the built in History Change trigger. The detailed steps are given here. Further, the choice has to be made on usage of Matomo's on-premise solution or cloud solution, both of them have steps listed on how to work:

Commitment

My semester will be completed in early May (5 May precisely), leaving me enough time to get ready to work on my GSoC project. If I am selected, I shall be able to work around 40 hours a week on the project, though I am open to putting in more effort if the work requires. I will be at home during the summer (until August), so I will be having enough time for the project. However, I plan on going on a vacation for not more than 10 days with my family. Apart from that, there would be no breaks.

Schedule

Notes:

Related issues

22

Checklist