Skip to content

Latest commit

 

History

History
80 lines (66 loc) · 4.45 KB

README.md

File metadata and controls

80 lines (66 loc) · 4.45 KB

component.io

This is search tool for modular JavaScript component framework. The component framework was invented by TJ Holowaychuk

I have created the search tool because I was not able to find anything useful with the official http://component.github.io search tool

My version of the search tool is available online at http://component.xmojmr.cz/ under WTFPL license

You can use

  1. multi-column sorting by author, component, number of stars GitHub users assigned to it, age in days, number of open issues, freshness in days, version number, number of forks
  2. full-text search in description, tags, author name, component name
  3. tag = cloud filter, multiple selected tags allow for narrowing down the search
  4. author = cloud filter, authors are up-weighted by number of projects, number of stars and down-weighted by number of open issues. Multiple selected authors allow for filtering a group of popular vendors
  5. Each query is represented by bookmarkable url

Screenshot 1

Original design was inspired by Nipster, modified to work with Component Crawler as data source.

Current Status (2014-11-04)

  • Maturity
  • (+) no serious known bugs on modern desktop browsers
  • (+) stable bookmarkable url API
  • (+) usable (full text search, tag search, author search..)
  • (-) slow and not reliable on low-end mobile devices
  • (-) slow when responding to screen or element resize events
  • Details (+)
  • Display of crawler.js database using searchable sortable jQuery DataTables works.
  • Columns author, component and issues are clickable.
  • Tag cloud is calculated correctly (shown on button click)
  • Author cloud filter (with gravatar images) is available on button click. Projects with many open issues are given less weight
  • Clicking on tags (anywhere on the screen) swithes their include/exclude filtering status
  • Search and sort and tag and author query generates stateful hash fragments (bookmarkable urls)
  • Search filter is sticked to the top of the screen
  • 1st version of REST API available
  • user interface pixel-aligned, colorized and split into 2 different responsive layouts
  • server configured to use gzip compression where possible
  • crawler.js dataset contains only subset really used by the application
  • Details (-)
  • all data processing is done in the client's browser. This causes significant delay on mobile devices
  • default 100 rows page length is too heavy to layout and render on low-end mobile processors
  • calculation of screen dimensions does not work reliably in portrait layout on mobile devices
  • some functions (e.g. cloud display) does not work as designed in Opera Mobile browser, Android 2.3 browser

3rd party credits (A→Z)

Internal API

GET /api/v1/crawler.json

Returns component crawler.js JSON dataset as described in https://github.com/component/crawler.js#get-json

POST /api/v1/crawler/updates

Payload ignored. Triggers cache update of the crawler.json dataset from the http://component-crawler.herokuapp.com/ server

Changelog

  • Release 1.0.3
  • bugfixes
  • Release 1.0.2
  • code moved from vanilla JavaScript to TypeScript
  • Release 1.0.1
  • bugfixes and small usability improvements
  • Release 1.0.0
  • original raw look was colorized. There are two different table layouts at the breakpoint of horizontal screen size 1150 pixels
  • moved to xmojmr's site build system
  • Release 0.3.0
  • not as slow as used to be, Opera Mobile CORS problems solved by hosting on a server with PHP backend