npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

penny-collector

v0.0.1

Published

Collects research file information and archives them & submits meta to COINS

Downloads

3

Readme

penny-collector

Codeship Status for MRN-Code/penny-collector

alpha warning

penny-collector is not ready for public consumption. it is published in order to facilitate a basic demo

install

  • npm i -g penny-collector. Don't forget to update often via npm update -g penny-collector.
  • penny-collector --save-config your-config-file.json
    • a custom config file can be tailored for your needs by the friendly folks at COINS
      • feel free to take a peek at the source in config/default.json if you'd like to make your own!
  • @note: penny-collector require nodejs 4.x+

about

penny-collector is a data logging, submitting, and archiving utility.

penny-collector is designed to be run a system daemon. Contact your IT department for help on how to set this up. The COINS team can assist in this process. We can provide Ubuntu upstart script or help using a nodejs process monitor in setting up the daemon.

data submission

penny-collector can submit data in two modes, metadata mode and full-file mode.

metadata submissions

penny-collector can connect to COINS and submit information about research data. For example, study staff wish to submit records of "scan" images to COINS. They may also wish to submit "behavioral" data about their research participants. In this regard, staff may be able to associate and aggregate comprehensive data together. COINS can help study managers assess which participants have received which types of scans (where, when, how, etc), and query metadata about those events. Although in this mode the "raw" data is not available, the metadata is very often all that is required for research management.

full file submissions

penny-collector can transfer and archive data on the COINS system. This strategy is for users who want to use COINS as a storage service.

archiver

If you are not using penny-collector to submit files for storage at COINS, you may use penny-collector's archive functionality to move your files to archive storage based on rules. Provide a target.basePath and fields to compose your file paths from in target.fields. The fields will derive from your file meta-data, which we call a penny-model.

API Docs

Head over to the official docs to check out the API documentation.

ToDo

  • [ ] add in real halfpenny validations!
  • [ ] how to handle network failure (400 HTTP)
    • retry logic // e.g.: halfpenny.validateFileMeta([ ... array, of, file, meta ], { retry: true, retry: 3, retry: { attempts: 3, backoff: function() {} } })
    • lost and found
    • report (report API error response)
  • how to handle api down (500s), same as 400s
  • 403 Forbidden
    • what happens if validation loop is successful, same as others, but invalid
  • 401 unauthorized,
    • process crash (via rethrow)

development

We recommend that, you, Ms. or Mr. Developer:

  • add a local.json to config/
{
    "watchPath": ".test-watch",
    "target": {
        "basePath": ".test-target",
        "fields": ["ursi"]
    },
    "logFile": ".penny-collector.log"
}

appendix

#!upstart
description "COINS penny-collector"
author      "MRN-Code"

start on startup
stop on shutdown

script
    exec sudo -E -u your_user penny-collector
end script

credits

logo: margdking