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

f1foo

v0.2.0

Published

An integration between Wufoo's WebHooks and Fellowship One's REST API.

Downloads

11

Readme

Build Status Docker Image Build Status Code Coverage Code Climate Dependency Status Current Version

Docker Stars Docker Pulls

Stories in Ready Stories In Progress

JS Standard Style

f1foo

An integration between Wufoo's WebHooks and Fellowship One's REST API.

It allows Wufoo to be used for event registration (and other) forms, while being able to track registrations within Fellowship One.

Installation

This application is best used on a PaaS cloud provider like Heroku, Cloud Foundry, IBM BlueMix, and others. It's also available as a Docker image. It's (mostly) pre-configured for Heroku and IBM BlueMix, and it can of course also be used on a self-hosted environment.

Start by writing your configuration into a JSON file and saving it where you're going to install f1foo.

Then, follow the instructions relevant to your environment...

Docker

See the docker website to get started with Docker.

$ docker run \
  --detach \
  --publish 3000:3000 \
  --env F1_CONFIG='{ "apiURL": "...", ... }' \
  hairyhenderson/f1foo

Heroku

Assuming you already have a Heroku account and the Heroku Toolbelt installed, all you should need to do is:

$ npm install f1foo
$ cd node_modules/f1foo
$ git init
$ heroku apps:create APP_NAME
$ heroku git:remote -a APP_NAME
$ heroku config:set F1_CONFIG="`cat ../../f1config.json`"
$ git add .
$ git commit -am "Initial commit"
$ git push heroku master

At this point, the URL to your new app will be printed out - something like https://APP_NAME.herokuapp.com

Self-hosted

$ npm install f1foo
$ cd node_modules/f1foo
$ npm start

The app is now running at http://localhost:3000/.

Configuration

All configuration is done through environment variables.

F1_CONFIG

Required.

An environment variable F1_CONFIG must be set with your Fellowship One credentials. It's a JSON string like this:

{
  "apiURL": "https://churchcode.staging.fellowshiponeapi.com/v1",
  "username": "Me",
  "password": "reallysecurepassword",
  "oauth_credentials": {
    "consumer_key": "111",
    "consumer_secret": "12345678-9abc-defe-dcba-987654321012"
  }
}

Note: For testing you probably should use the staging API URL, but make sure to use your production API URL for production.

WUFOO_HANDSHAKE_KEY

Optional.

When WUFOO_HANDSHAKE_KEY is set, f1foo will reject incoming posts that don't have a matching handshake key.

DEBUG

Optional.

Controls the debug logs to aid with troubleshooting. Try DEBUG=f1foo to see f1foo's debug logs, or DEBUG=* to see all debug logs.

NEW_STATUS

Optional.

Defaults to New from Website.

When creating a Person record as a result of a form submission, the Person must be assigned a Status. This variable is used to look up the Status by name. To create new People with different Statuses, set this variable, e.g. NEW_STATUS='New from Wufoo'.

Usage

Once f1foo is configured and running, add WebHook notifications to your forms. See these instructions. The path on the URL should be /hooks, so if the app is running on Heroku, the URL should be something like https://f1foo.herokuapp.com/hooks, and the handshakeKey should be set (or not) to your WUFOO_HANDSHAKE_KEY value.

Important: Wufoo must send the form metadata along with each POST. In the Wufoo UI, this is

  • [x] Include Field and Form Structures with Entry Data

Contributions

Pull Requests are more than welcome!

Tests

To run the unit tests:

$ npm install --dev
$ make test

License

The MIT License

Copyright (c) 2014-2015 Dave Henderson