No description, website, or topics provided.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Volunteer Opportunity Tracking

This repo is a web app that allows users to keep a profile of what volunteer opportunities they've participated in, and also makes it easy for users to find such opportunities via the volunteermatch publis API, and share them through facebook.

The application was built to run on cloudfoundry, and is easily deployed in either a cloud or localhost environment.

To set up the app, simply run

git clone

This app was built with node.js, so you'll need to download it from here:

Once you've downloaded it, simply open a terminal in the main folder located in the directory where you cloned the repo and type

  npm install

This will resolve the dependencies ot the application.

Afterward, you will need to set up an instance of mongodb.

If you are using cloudfoundry, find out more here:

Or go to to find out how to set up a local instance.

After the database is set up, you will need to acquire a facebook API key and secret, as well as a volunteermatch api secret.

Once you have these, simply run these commands from your terminal:

   export FACEBOOK_APP_ID=<facebook app id>
   export FACEBOOK_SECRET=<facebook app secret>
   export VOLUNTEER_MATCH_ACCOUNT=<volunteer match API account name>
   export VOLUNTEER_MATCH_KEY=<volunteer match API secret>

You could also add these lines to your .profile file so that you don't lose the environment variables everytime you close your terminal.

When you deploy to cloudfoundry, you'll need to set these variables on the cloud machine like so:

   vmc env-add <appname> FACEBOOK_APP_ID=<facebook app id>

And then you should be ready to go!  Simply point the facebook app you created to where the application is running (either localhost:3000/ or <appname> and go to town :)

Scheduled Improvements:

Cacheing of Opportunity Search:
   -Server side, save searches by city, updating once per day.
   -User searches for things in their area.  The server looks at what city
    they are searching in, and refers to a list of cities that were stored.
    If the city is new, It will add the city to the list and do a normal search,
    cacheing the result.  Every night, the server will look at the list of cities,
    and iterate through them with API requests, storing the results.
   -Solves the issue of limited weekly requests, and speeds up user experience.

Check Ins and Point System:
   -For events with a date and place, a check in feature is available to add them to
    your profile.
  -MOST events however are recurring.
  -Single events get 5 points, recurring events get 2 points per checkin. This will help you rack up
   if you've become a part of an organization with regular work.

The Ability to favorite Opportunites:
  -It'd be handy to save events, so a favoriting system should be made

Mechanism for Publishing Profile or viewing Profiles:
  -Friends list only links to facebook proile.  Clicking a friend should show you their 
  -Possible publishing to LinkedIn?
  -Need to make Profiles queryable.


If you perform 20,000 queryies in a week, volunteer match bans you :(

Tabs on Tabular menu go to next line on some screen sizes

When app is used on facebook canvas there are some scrolling issues.  All scrolling should be disbled, but facebook is a stubborn beast.