Skip to content

Latest commit

 

History

History
178 lines (130 loc) · 9.57 KB

README.md

File metadata and controls

178 lines (130 loc) · 9.57 KB

BrigadeHub

Build Status npm Slack Status OSS Manifesto Keep A Changelog JS Standard

Table of Contents

Simplify your brigade's website maintenence

BrigadeHub is an alpha work in progress of a Code for America Brigade website/portal. This is being built to consolidate the efforts of maintaining a brigade website into a single location, and to allow other non-developer brigade leadership to update content as needed.

brigadehub, while deployed for Code for San Francisco, has not yet been optimized for wide adoption yet. If you deploy this to your production brigade site, you do so at your own risk.

For a complete top-down view of the roadmap, take a look at our active Roadmap Wiki

In short, BrigadeHub is designed to meet some very specific goals:

  • Be the external face for the brigade
  • Show Leadership / Contact info / member bios
  • Brigade Blogging
  • Show upcoming events and calendars through Meetup and Google Calendar API integration
  • Give new users a place to onboard through tight integration with Github oauth and expandable API integrations
  • Display and market active projects through Github API integration
  • Allow non-developers to update website info at-will
  • Allow developers to hack and customize as desired
  • Allow brigades to launch with a single non-dev step to their own environment (most likely Heroku)

This project is originally based on sahat/hackathon-starter, and that's where most of the deploy documents come from, but the codebase has been heavily modified to meet our needs. We're striving to match feross/standard javascript styling, though the original boilerplate didn't conform to that, so it's a wip.

Inspirations

Similar projects have been conceived and implemented previously, most prominently by CodeForPhilly in the form of Laddr. The reason we're building a parallel system is for a few reasons:

  • a system that isn't based in PHP, and didn't require a custom Linux VM to run
  • to utilize the cross-discipline talents of Node.js developers, who generally can move from front-back end quickly
  • a one-click deploy system, preferably to Heroku, that would make deployment of a new hub effortless
  • a platform tightly coupled with the Github API, for oauth, handling permissioning and adminning of the github repos easily
  • a system that easily lent itself to additional onboarding steps for new members.

Another project which this is pulling inspiration from is CodeForAtlanta's Connector. Chime was also a CMS that had similar goals, but focused on local governments, rather than brigades.

Installation and usage

Prerequisites

  • Command Line Tools
  •  Mac OS X:
    • Xcode (or OS X 10.9 Mavericks: xcode-select --install)
    • HomeBrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  •  Windows: Visual Studio
  •  Ubuntu /  Linux Mint: sudo apt-get install build-essential
  •  Fedora: sudo dnf groupinstall "Development Tools"
  •  OpenSUSE: sudo zypper install --type pattern devel_basis
  • MongoDB
    •  Mac OS X: brew install mongodb
  • Node.js v4.x.x (Easiest install is via NVM)
    • Uninstall any previously installed Node versions (if you don't already have nvm installed)
    • curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash && echo 'export NVM_DIR="$HOME/.nvm"' >> $HOME/.bashrc && echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> $HOME/.bashrc && . $HOME/.bashrc && nvm install 4 && nvm alias default 4 && nvm use 4

Note: If you are new to Node or Express, I recommend to watch Node.js and Express 101 screencast by Alex Ford that teaches Node and Express from scratch. Alternatively, here is another great tutorial for complete beginners - Getting Started With Node.js, Express, MongoDB.

Install


The easiest way to get started is to clone the repo:

# Get the latest snapshot
git clone https://github.com/sfbrigade/brigadehub.git

# Change directory
cd brigadehub

# Install NPM dependencies
npm install

# If needed, start mongodb in a separate tab
mongod

Usage

To run the server in production, run:

npm start

or if starting for local development:

npm run develop

Deploy

brigadehub, while deployed for Code for San Francisco, has not yet been optimized for wide adoption yet. If you deploy this to your production brigade site, you do so at your own risk.

If you are outside Code for San Francisco and you want to get a version of brigadehub up for your brigade, fork sfbrigade/brigadehub into your own brigade's organization. Updates should be done using upstream fetches. Contributing back should be done via Pull Request back to this repository :)

These instructions will be updated as the project emerges from the Alpha-release haze :P

Troubleshooting

No troubleshooting steps yet. Want to add some?

Changelog

To see what has changed in recent versions of brigadehub, see the CHANGELOG.

Core Contributors

Resources

will be adding resources soon

Other questions

Feel free to chat with the brigadehub core team (and many other users) on sfbrigade Slack in the #brigadehub channel (join here), on IRC in the #sfbrigade channel on Freenode, or via opening a new Github Issue here in the repo.

Contributing

Refer to our CONTRIBUTING.md doc.

License

This can be found in brigadehub's wiki as well.