Skip to content
This repository was archived by the owner on May 20, 2024. It is now read-only.

Hackathon Dev Track

Jack Singleton edited this page Apr 18, 2015 · 4 revisions

Development Guide

Welcome to the Dev Track!

This track will focus on delivering new features, but remember to keep security in mind as well! Before submitting a pull request, let us know and we'll link you up with someone in the security track.

Getting Started

First up, let's clone the repo:

git clone https://github.com/EFForg/OpenWireless.git

The OpenWireless development environment is set up to run in a virtual machine, so the only dependencies on your dev box are Vagrant 1.5+ and VirtualBox 4.3.12+.

If you are in the project directory, and have the above dependencies, run:

vagrant up && vagrant ssh

This should result in a bash shell with the user 'vagrant'. You are now logged in to the virtual machine.

Vagrant mounts the project directory at '/vagrant' in the VM. So the first thing you'll want to do is switch to the project directory:

cd /vagrant

And take a look around:

ls

Hopefully, all the tests will pass :)

./run-tests.sh

And finally, you can start the web server:

./local-lighttpd/run-local-lighttpd.sh

You can now navigate to http://localhost:8000 on your host machine.

Picking up work

Issues that are good to start on during the hackathon are tagged with up-for-grabs

Take a look through this list and see if anything catches your interest.

Try not to pick up something that is already being worked on though! We'll be leaving GitHub comments on issues that are in progress, so check the comments before starting work. If someone's already on it and you really wanted to work on that issue we encourage you to work together. We will have plenty of extra keyboards and mice to set up pairing stations.

And of course, when you do start working on something, please leave a comment on the GitHub issue.

Developer Workflow

All development is done off the master branch, so please branch off and submit pull requests directly from and to master.

As for code style: two spaces for JavaScript, four for Python, no tabs. Spaces between function arguments, before braces, and around operators. In Python, imports are one per line, and only modules, not methods or classes. Generally we follow the Google Python Style Guide and Google JavaScript style guide. Try to write tests and document code well.

Some security guidelines: Strongly avoid jQuery's .html(data) and Handlebars' triple-stache {{{data}}}}. They make it easy to create an XSS vulnerability by accident. Similarly, in Python, never set shell=True when calling binaries.

While working on your task, feel free to reach out to the facilitators or other participants. Remember, the reason we are gathered here together is so we can help and collaborate with each other.

On that topic, we're also excited to get some collaboration between the two tracks. So before submitting a pull request, please grab someone from the security track and have them take a look at what you've done. You don't have to wait until the end either – feel free to get some advice from a security analyst before you even start working. If you can't find anyone, grab a facilitator and we'll help connect you with someone.

Happy hacking!

Clone this wiki locally