Skip to content

Data visu (d3.js, javascript...) and responsive design (bootstrap etc.)

Notifications You must be signed in to change notification settings

samnet/libraryPopularity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Library due diligence 👍

Deployed here. Drop me a msg if need help navigating this repo (it follows this structure). Feedback & suggestions very welcome.


Project Des

The goal is to assist the user in choosing among libraries (aka. packages, modules ...) when several options exist.

For instance, different JS libraries for drawing an interactive line chart exist and it might not be obvious – if you are inexperienced – which one you should go for.

To do so, the idea is to aggregate and synthesize information on libraries. For example, a developer hesitating between two libraries can input their names and get a summary of their respective level of popularity in terms of downloads, forum activity etc. This can avoid wasting time using a package that is deprecated, for instance.

The tool also suggests alternatives to the user’s input library(/ies). E.g., if the name of a deprecated library (that might have happened to have loads of followers on GitHub and an otherwise very sleek website) is entered, it suggests better libraries for doing similar tasks.


Project Org

The project is open source. I think that having one screen is enough. The simpler, the better.

Albeit being modest in its scope, I think it can be interesting due to, besides the value it creates for the user, the questions raised by the building of a ranking & recommendation system. E.g., 1. How do you come up with alternatives propositions when the user enters a specific library? 2. Where do you find data on download volume for specific libraries? 3. How do you transform the data on search popularity found on Google Trend into something meaningful? Loads of issues to be tackled creatively.

I made a prototype of the platform, using R as an example (since I happen to use that language at work). If familiar with the Python/JS/C++ (or any language really) infrastructure, why not build this site together?


Project Spec

One screen with two select inputs (a list of libraries organized by language, and a list of possible tasks) and some visualizations made with d3.js (or is there a better library?).

The first input is simply the list of libraries the user is initially interested in. The second input is a list of “task classifiers” the user wants to achieve. E.g., [“Scientific Computing”, “Simulation”]. That second input enables us to come up with alternative suggestions.

The radar graph summarizes how popular a (some) package(s) are, using various metrics (the axes of the radar) as of the time of the request, e.g., number of times a package has been downloaded, popularity of its associated SO tag, etc. The time series shows how (an aggregate measure of) the package’s popularity has evolved.


Running Local

git clone https://github.com/samnet/libraryPopularity.git
virtualenv -p python3 .env3
source .env3/bin/activate
pip install -r requirements.txt  
python run.py

You might have guessed: we use Python 3, and the dependencies are listed in requirements.txt.


Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

Data visu (d3.js, javascript...) and responsive design (bootstrap etc.)

Resources

Stars

Watchers

Forks

Packages

No packages published