Description
Full name
Gaurav Jadhav
University status
Yes
University name
Vishwakarma Institute of Information Technology
University program
Bachelor of Technology in Computer science Engineering ( Cyber security )
Expected graduation
2027
Short biography
I am currently in the 2nd year of Undergraduate in Vishwakarma Institute of Information Technology. I started my coding with c/c++ to learn all the basics of coding, then continuing to Data Structure Algorithms, Database Management Systems. I started to get interest in web development, for which I got experience in JavaScript, typescript, react, handling data in mongodb, express etc. I have also some knowledge of some machine learning.
Timezone
Indian Standard Time ( IST ), UTC+5:30
Contact details
EMAIL: gaurav70380@gmail.com
Platform
Windows
Editor
I use vs code as my preferred code editor as it was also my first editor used. I tried different IDE's (eclipse, vim, nvim etc) but I keep going back to vs code for vs code being very easy to work with any kind of coding I would like to do with its vast collection of extensions for almost everything making the experience very smooth.
Programming experience
I have got a lot of experience in programming in c/c++, java as part of my college projects, assignments and exams.
On top of that I have worked on some projects -
Web Scrapper -
Register and log in to access the application features
Create and manage scrapers with custom extraction rules
View scraped data and export it in different formats (CSV, JSON)
Configure webhooks to send data to other applications
Schedule scraping jobs to run automatically
finance tracker (College project) -
The app includes features like easy income and expense tracking
Category-wise breakdowns (such as food, travel, and study materials)
Dashboard to view daily and monthly spending summaries
Budget-setting options to help users stay within limits
blood donation database frontend (College project) -
The frontend includes features responsive UI for browsing donor information
Search and filter options based on blood group, location, or availability
Simple form for adding new donors
Sections like donor lists, registration, and contact details
JavaScript experience
I have worked in JavaScript mainly while learning web development and while working on the projects for them. I was enrolled in an cohort where I also got some tasks and assignment that help me get the much-needed experience in JavaScript.
While learning JavaScript the first uphill is when learning about the async callbacks, awaits, promises etc, it was became one of the interesting things in js
Node.js experience
For all the projects I have made I have used node.js as backend. I used things like express for http server, jwt for authentication, axios, fs and many more.
C/Fortran experience
I had experience of c in college while starting to learn programming. I don't have much experience in that. I don't have any experience in fortran but always ready to take a deep dive in it
Interest in stdlib
Version control
Yes
Contributions to stdlib
Implementation of stdlib-js/stdlib#6047 (comment) --
it was help me understand how to does an method on array actually work and the basic, small yet important things that should be known.
Implementation of stdlib-js/stdlib#6517 (comment) --
It was a jump from simple to-sorted implementation that introduced the complexity and how to write full implementations of methods
Implementation of stdlib-js/stdlib#6516 (comment) --
This filled the gap of experience of working with typed-arrays and the opportunity that comes with them to squeeze more efficiency from them
stdlib showcase
Goals
The goal of this project is to continue the process of making an GOOOGLE SHEETS extension where we can use STDLIB functions.
Most of the basic infrastructure is already in place, and this project's goal is to create more APIs to be used in GOOGLE SHEETS using the STDLIB functions.
DOCUMENTATION -
Each of the implementation will have a readme.md file for details about the function.
The JSDoc would be there for each implementation.
TUTORIAL -
Each category of functions could get another markdown file give tutorial for using it in google sheets like an template. For example Random Number Generation function could have similar template of tutorials.
Example - Getting Started with the STDLIB Sheets Add-on -- Installing the add-on, using your first function
Statistics in Sheets -- Mean, standard deviation, and normalization etc
TESTS -
Each function implementation would have test.js file
BENCHMARKING -
Each function implementation would have benchmark.js file
BASICALLY all implementations would be consistent with stdlib implementation with robust documentation, testing and benchmarking
For implementation that will be DONE -
Mainly the Todo.md file would be an reference. Still some more functions that will be implemented would be --
1. Statistical Functions
| Function | stdlib Package |
|----------------------|------------------------------------|
| STDLIB_MEAN | @stdlib/stats/base/mean |
| STDLIB_MEDIAN | @stdlib/stats/base/median |
| STDLIB_MODE | @stdlib/stats/base/mode |
| STDLIB_STDEV | @stdlib/stats/base/stdev |
| STDLIB_VARIANCE | @stdlib/stats/base/variance |
| STDLIB_MIN | @stdlib/stats/base/min |
| STDLIB_MAX | @stdlib/stats/base/max |
| STDLIB_RANGE | @stdlib/stats/base/range |
| STDLIB_QUANTILE | @stdlib/stats/base/quantile |
| STDLIB_IQR | @stdlib/stats/base/iqr |
| STDLIB_SKEWNESS | @stdlib/stats/base/skewness |
| STDLIB_KURTOSIS | @stdlib/stats/base/kurtosis |
| STDLIB_CORRELATION | @stdlib/stats/base/corr |
| STDLIB_COVARIANCE | @stdlib/stats/base/cov |
2. Probability Distributions
| Function | stdlib Package |
|------------------------|-----------------------------------------------|
| STDLIB_NORMAL_PDF | @stdlib/stats/base/dists/normal/pdf |
| STDLIB_NORMAL_CDF | @stdlib/stats/base/dists/normal/cdf |
| STDLIB_BINOMIAL_PMF | @stdlib/stats/base/dists/binomial/pmf |
| STDLIB_BINOMIAL_CDF | @stdlib/stats/base/dists/binomial/cdf |
| STDLIB_POISSON_PMF | @stdlib/stats/base/dists/poisson/pmf |
| STDLIB_POISSON_CDF | @stdlib/stats/base/dists/poisson/cdf |
| STDLIB_TTEST_CRITICAL | @stdlib/stats/base/dists/t/quantile |
| STDLIB_CONFIDENCE_INTERVAL | Custom implementation using distribution quantiles |
3. Date and Time Utilities
| Function | stdlib Package |
|----------------------|----------------------------------|
| STDLIB_ISO_TIMESTAMP | @stdlib/time/iso-timestamp |
| STDLIB_CURRENT_YEAR | @stdlib/time/current-year |
| STDLIB_CURRENT_MONTH | @stdlib/time/current-month |
| STDLIB_CURRENT_DAY | @stdlib/time/current-day |
| STDLIB_CURRENT_HOUR | @stdlib/time/current-hour |
| STDLIB_IS_LEAP_YEAR | @stdlib/assert/is-leap-year |
| STDLIB_DAYS_IN_MONTH | @stdlib/time/days-in-month |
| STDLIB_DAY_OF_YEAR | @stdlib/time/day-of-year |
Additional implementations (BLAS: ddot
, dswap
, sdot
, gdot
, gswap
; ML: sgd-regression
, binary-classification
, kmeans
) and more from math
, assert
, stats
are noted in Todo.md
.
There are some blas(ddot
, dswap
, sdot
, gdot
, gswap
) and ml(sgd-regression
, binary-classification
, kmeans
) function that can me implemented. Moreover there are more math
, assert
and stats
function but they are covered in the Todo.md
How current infrastructure work --
Project Structure
├──src/ - Source JavaScript files
|├── index.js - Main entry point
| ├── database.js - Database operations
|├── debug.js - Debugging utilities
| └── node_modules/ - Local stdlib modules
| └── @stdlib/
| └── gsheets/
| └── api/ - API functions exposed to Sheets
| ├── math/ - Mathematical functions
| ├── array/ - Array operations
| ├── stats/ - Statistical functions
| └── ... - Other function categories
├── lib/ # Compiled code
│ ├── Code.gs # Google Apps Script
│ └── appsscript.json # App configuration
└── scripts/ # Build utilities
├── scaffold/ # Code templates
└── math_pkgs.json # Math package config
|____ install_pkgs.sh
BASICALLY
src/
contains the core function implementationslib/
contains Google Apps Script filesscripts/
contains the build and scaffolding logic
Scaffold System (scripts/scaffold)
-
data/
Folder- Contains templates:
main__js.txt
: Function codeREADME__md.txt
: Documentationtest__js.txt
: Unit test
- Contains templates:
-
lib/
Folder- Engine logic for the scaffolding system
-
bin/
Folder- Command-line interface for developers
-
docs/
Folder- Instructions on using the scaffold tool
🚀 Deployment Workflow
npm install # Install dependencies
npm run build # Build project to generate Code.gs
clasp push # Deploy to Google Apps Script for use in Google Sheets
Why this project?
Knowing that STDLIB also working on a GOOGLE SHEETS extension idea, it was exciting opportunity to work on, which help me dive deeper in this domain as I have some experience in it.
Qualifications
I have some experience in working and creating a very basic GOOGLE SHEETS extension as a hobby project, and already had basic idea of how things work.
Project: "Quick Note Saver" Add-on
Added a custom menu to Google Sheets that opens a dialog box where you can type a quick note, and it saves that note into the next empty row of the sheet.
Prior art
Google Sheets Add-ons with Mathematical Functions:
Sheets API by Google: Google's official Sheets API provides similar functionality but at a lower leve
Commitment
I am ready to invest 30 hr/week or more for 12-week schedule as I don't have any other commitment, and I also have months long holidays allowing me to focus completely on this project. I will not have any exam or not going on any vacation during the program
Schedule
Assuming a 12 week schedule,
- Community Bonding Period:
In first half, Statistical Functions, Probability Distributions, Date and Time Utilities, math, assert, stats Functions would be done
- (midterm)
in second half, the rest of the function in Todo.md would be focused and much needed time would be give to making tutorials
- Final Week:
Related issues
No response
Checklist
- I have read and understood the Code of Conduct.
- I have read and understood the application materials found in this repository.
- I understand that plagiarism will not be tolerated, and I have authored this application in my own words.
- I have read and understood the patch requirement which is necessary for my application to be considered for acceptance.
- I have read and understood the stdlib showcase requirement which is necessary for my application to be considered for acceptance.
- The issue name begins with
[RFC]:
and succinctly describes your proposal. - I understand that, in order to apply to be a GSoC contributor, I must submit my final application to https://summerofcode.withgoogle.com/ before the submission deadline.