A webapp for accessing information about the FIRST Robotics Competition.
Pull request Compare This branch is 2035 commits behind the-blue-alliance:master.
Permalink
Failed to load latest commit information.
cloudstorage
common
consts show district on admin event list page Mar 17, 2014
controllers Merge pull request #1025 from the-blue-alliance/cache-busting May 15, 2014
datafeeds reduce urlfetch deadlines May 15, 2014
git_hooks add paver command for linting, split linter from pre-commit ohok Aug 4, 2013
helpers fix issue if no affected references May 16, 2014
httplib2
models
oauth2 autopep8: continuation line indentation PEP8 E128 Aug 6, 2013
pytz
renderers
static
subtrees
templates
test_data
tests
utils Youtube import scripts Dec 10, 2013
.gitignore Line up # in .gitignore Dec 15, 2013
.travis.yml
BeautifulSoup.py
LICENSE.md add license May 12, 2014
README.md Update readme with updated instructions for compiling LESS Apr 22, 2014
admin_main.py
api_main.py
app.yaml
appengine_config.py cleanup Feb 23, 2014
bulkloader.yaml
cron.yaml
cron_main.py add teams csv backup May 9, 2014
deploy.py
do_compress.py use cdn for jquery-ui. Only needed on Gameday Oct 26, 2013
index.yaml
linter.py
main.py
pavement.py
queue.yaml increase default task queue rate Feb 23, 2014
requirements.txt
run_tests.py
tba_config.py Update homepage to insights. May 10, 2014

README.md

The Blue Alliance

The Blue Alliance is a FIRST Robotics tool to help teams scout for, compete at, and relive competitions. You can see how the whole site works here, or even write code to make it better!

Contributing

  1. Join https://groups.google.com/forum/#!forum/thebluealliance-developers to stay up to date with development
  2. Fork this project!
  3. Make your changes on a branch.
  4. Make changes!
  5. Send pull request from your fork.
  6. We'll review it, and push your changes to the site!

If you're having trouble getting set up, reach out to us at our mailing list and we'll help you through it!

Setup

  1. Learn a bit about Git and Github:
  2. Install App Engine
    • Specifically use the Python SDK
    • Run installer and allow it make symbolic links (you will be asked to enter your root password)
  3. Get the latest version of The Blue Alliance
    • First make sure you have forked TBA by clicking on "Fork" in the top right of the page
    • Run git clone git://github.com/username/the-blue-alliance.git where username is your GitHub username
    • For detailed instructions see the GitHub guide on contributing
  4. Import the project into Google App Engine Launcher
    • By default TBA uses port 8088, make sure your local setup is consistent with this
  5. Run the app in App Engine
  6. Get some test data: In your terminal console, from the the-blue-alliance directory, run the following command
  7. You should now have a basic development installation!

Paver Commands

Paver is an easy way automate repetitive tasks. For The Blue Alliance, these tasks are stored in pavement.py. To install paver, use one of the methods below:

Simple Commands

  • paver clean - Deletes artifacts that the app creates that you don't need.

CSS Icon Sprites

If possible, icons are combined into single files called sprites to reduce the number of requests needed to render a page. To simplify development, we add icons normally (not to the sprite), and every so often we will combine them all into a sprite and fix all necessary CSS. Potentially useful: http://spriteme.org/

LESS

The CSS files are compiled from LESS to ease in development. Make sure you have Node Package Manager installed, and install lessc by running npm install less. Now, you can run paver less to compile the LESS into CSS.

CSS/Javascript Combination and Compression

Once the LESS files are compressed into CSS, we combine the resulting file with other precompiled CSS files. Similarly, we combine all relevant Javascript files into a single file and compress them. This means that whenever changes are made to CSS or Javascript, you must run of the following:

  • paver less
  • paver javascript
  • paver make (builds both LESS and JS)

Testing

Build Status

Testing is implemented using a combination of unittest2 and the Google App Engine testbed framework. Test coverage is a work in progress, and focuses on maintaining datafeed integrity in the face of optimizations and changes to FIRST's data formats.

To run the tests, or just the offline (fast) tests:

  • paver test
  • paver test_fast