Giter Club home page Giter Club logo

bostonrb's Introduction

BostonRB travis-ci status

This is the source code for the Boston Ruby Group's community website:

http://bostonrb.org

It's a Rails app running Ruby 1.9 and uses:

  • Postgres as a SQL database (SQLite for development)
  • jQuery for client-side behavior
  • Compass for stylesheets
  • SimpleForm for forms
  • Hoptoad for error notification
  • High Voltage for static pages
  • Capybara, RSpec, and VCR for integration testing
  • RSpec ad VCR for isolation testing
  • ValidAttribute for model validation testing
  • Factory Girl for test data

Setup

If you want to make changes locally, follow these steps:

Install Ruby 1.9.3 (if necessary). RVM is optional, but highly recommended

rvm install 1.9.3
rvm use 1.9.3 --default

Install bundler

gem install bundler

Create your own fork of the bostonrb repository on github

Clone your new fork

git clone [email protected]:your-github-username/bostonrb.git
cd bostonrb

For local development, install the required gems, minus the production and staging gemspecs

bundle install --without production staging

Setup the development database (uses sqlite)

cp config/database.example.yml config/database.yml
rake db:create && rake db:migrate && rake db:seed

Run the tests

rake

Compile all the assets

rake assets:precompile

Run the server

rails server

Deploy

The site is deployed to Heroku and takes advantage of their Varnish layer by setting far future expires HTTP headers.

DataEntry

Presentations can handle videos from Vimeo, Youtube, and Blip.tv

Just use the set the video_url attribute on the presentation to the video's actual URL and everything is parsed.

The one exception is Blip.tv. You must use the src value from the video's embed code instead of the video's URL.

Contributors

This app is built and maintained by members of the BostonRB community

bostonrb's People

Contributors

alexrothenberg avatar audiodude avatar bcardarella avatar davejachimiak avatar djpowers avatar dpickett avatar gsterndale avatar hgmnz avatar jboursiquot avatar jferris avatar jmoon90 avatar justuseapen avatar kbrock avatar lorrocha avatar markbates avatar mdenomy avatar mxie avatar npverni avatar patricksrobertson avatar paulstefanort avatar philipp avatar qrush avatar rfrankel avatar rufo avatar ryanlecompte avatar shrav avatar techiferous avatar technicalpickles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bostonrb's Issues

global navigation

Global navigation is hidden on some pages (sessions/new, users/new, pages/sponsors, etc).

It should be visible on most pages (unless there is a compelling reason to hide it) so users can easily navigate the site.

JavaScript hover bug

In Firefox 3, the link blinks & I can't click it when:

  • I hover on the 'new event' link
  • I hover on the 'new job' link
  • I hover on the 'new event' link again

Protect users#edit & users#update from everyone except current_user

Use Clearance convention of Forbidden. For example, from PasswordsController:

def forbid_non_existent_user
unless ::User.find_by_id_and_token(params[:user_id], params[:token])
raise ActionController::Forbidden, "non-existent user"
end
end

Except the conditional in this case will compare params[:id] with current_user.id.

research better ways to manage cron jobs

It's a real pain right now. Usually it involves:

  • Making some class method to call
  • Adding a rake task to call it
  • ssh'ing to production
  • running crontab -e, and adding a new entry

Ideally, we'd be able to manage this inside the app, and have deploying handle the rest.

There are some tools out there, but may not be a full solution: crondle and cronedit

Correct/Validate events.rss

I went through the w3c feed validator and corrected all the issues. Let's discuss though:

  1. It expects RFC822 for pub date (see http://validator.w3.org/feed/docs/rss2.html)
  2. It did not like the rel and format attributes on the links.
  3. It suggested adding the xmlns:atom namespace and atom:link node you can see below.

The code below makes the W3C validator happy.

I also changed description to output html (markdown).

xml.instruct! :xml, :version => "1.0" 
xml.rss (:version => "2.0",
  "xmlns:atom" => "http://www.w3.org/2005/Atom") do
  xml.channel do
    xml.title "Boston.rb upcoming Events"
    xml.description "Events coming up for Boston Rubyists"
    xml.link events_url
    xml.atom(:link, :href => events_url(:format => :rss), :rel => 'self')
    
    @events.each do |event|
      xml.item do
        xml.title event.title
        xml.description event.description_html
        xml.pubDate event.updated_at.to_s(:rfc822)
        xml.link event_url(event)
        xml.guid event_url(event)
      end
    end
  end
end

Get cron running correctly in production

crontab -e is currently:

5,10,15,20,25,30,35,40,45,50,55 * * * * cd /data/bostonrb/current && /usr/local/bin/rake RAILS_ENV=production get_tweet

That's not getting the "job" done. Haha.

I want to see a list of Apps

As a Boston Rubyist, I want to see a list of Apps linked to their websites so that I can quickly check out what has been locally built & released using Ruby.

Location model?

We have location now in events & presentations & jobs.

I think it makes sense to extract this out into a Location model.

The only effect on the interface will be a nice autocomplete of "location" fields. Those forms will now submit using a Presenter (potentially creating two records: jobs & locations).

I want to see a list of Companies

As a Boston Rubyist, I want to see a list of Companies linked to their websites so that I can quickly check out who is locally using Ruby.

Engine Yard logo

They're giving us a free slice. We should have their logo on the site somewhere. Header, footer, whatever. Maybe the same one that's in the footer of this github thing.

Users & Companies have many Blogs

As a Boston Rubyist, I want to see a list of recent blog posts by other Boston Rubyists so that I hear about their work, and they don't have to promote in emails to the group; I go to them if I'm interested.

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.