Code Monkey home page Code Monkey logo

865a71adfedb80515b3d74b141585be735cd6f0dfc39f56512a47d8ba148e69f's Introduction

ThunderHug

A call for proposals app that uses Google Spreadsheets to store sessions and keep out of your way.

Setup

Install

Grab yourself a copy of ThunderHug, best bet is to grab the master branch as this is being kept for working builds ;)

	$ npm install
	$ cp config.dist.json config.json

Configure

ThudnerHug allows for multiple types of config, however for local development its easiest to use config.json (created during install).

	{
		// the key for the spreadsheet the data lives in
		"GOOGLE_KEY": "",

		// google account user name so ThunderHug can access protected sheets
	  "GOOGLE_USER": "",

	  // password for google account
	  "GOOGLE_USER_PASS": "",

	  // how often to run checks for new sessions (set to 1hr by default)
	  "POLL_INTERVAL": 3600000,

	  // what column name contains flags indicating public data
	  "PUBLIC_FLAG": "reviewed",

	  // a prefix for redis keys
	  "REDIS_PREFIX": "thunderhug",

		// default port to run on
	  "PORT": 4000
	}

All settings are required for ThunderHug to run. Make sure these are set before attempting to run the server.

Run

In a production environment use node server.js however for development you can launch the server (and relaunch when changes occur) automagically using grunt

Public API

/api/all

Returns all session proposals that have been reviewed along with metadata about what possible tracks there are, possible session formats, and how many proposals have been made so far (inc. unreviewed).

{
	meta: {
		slug: 'all',
		description: 'A full listing of all proposals submitted',
		totalProposals: 324
	},
	sessions: [
		{
			title: 'Redesigning FireHug for the future.',
			theme: 'Web in your pocket',
			themeSlug: 'mobile',
			facilitators: [
				{
					name: 'William Duyck',
					twitter: '@FuzzyFox0'
				},
				{ ... }
			],
			organization: 'Mozilla Foundation',
			goals: 'Lorem ipsum dolor sit amet...',
			agenda: 'Lorem ipsum dolor sit amet...',
			scale: 'Lorem ipsum dolor sit amet...',
			outcomes: 'Lorem ipsum dolor sit amet...',
			timestamp: '2014-06-12T13:01:42.391Z'
		},
		{ ... }
	],
	themes: [
		{
			name: 'Web in your pocket',
			slug: 'mobile',
			description: 'Lorem ipsum dolor sit amet...',
			totalProposals: 29
		},
		{ ... }
	]
}

/api/:track_slug

Returns all session proposals for the given track, along with metadata about the requested track, all possible session formats, and how many proposals have been made for this track (inc. unreviewed).

{
	meta: {
		slug: 'mobile',
		description: 'A full listing of all proposals submitted',
		totalProposals: 29
	},
	sessions: [
		{
			title: 'Redesigning FireHug for the future.',
			theme: 'Web in your pocket',
			themeSlug: 'mobile',
			facilitators: [
				{
					name: 'William Duyck',
					twitter: '@FuzzyFox0'
				},
				{ ... }
			],
			organization: 'Mozilla Foundation',
			goals: 'Lorem ipsum dolor sit amet...',
			agenda: 'Lorem ipsum dolor sit amet...',
			scale: 'Lorem ipsum dolor sit amet...',
			outcomes: 'Lorem ipsum dolor sit amet...',
			timestamp: '2014-06-12T13:01:42.391Z'
		},
		{ ... }
	]
}

Deploy (heroku)

	git push heroku master
	heroku config:set GOOGLE_KEY=''
  heroku config:set GOOGLE_USER=''
  heroku config:set GOOGLE_USER_PASS=''
  heroku config:set POLL_INTERVAL=360000
  heroku config:set PUBLIC_FLAG='reviewed'
  heroku config:set REDIS_PREFIX='thunderhug'

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

865a71adfedb80515b3d74b141585be735cd6f0dfc39f56512a47d8ba148e69f's People

Contributors

fuzzyfox avatar mozilla-github-standards avatar pomax avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.