Skip to content

publicdisplay/ridepilot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

782 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RidePilot is a paratransit trip scheduling application. 

RidePilot is a project of Ride Connection, a Portland-area community
transportation provider.  It is primarily written by hackers at
OpenPlans.

-----------------------

To set up postgres for use with RidePilot, you will need the
fuzzystrmatch library (included in postgresql-contrib-8.4 in Ubuntu),
and postgis.  This adds support for dmetaphone, which is how we
phonetically match names.  Run psql and then the following commands:

-- Create a new database
CREATE DATABASE template_postgis;

-- Make it a template database
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template_postgis';

-- Connect to new database and install the pl/pgsql language
\c template_postgis

CREATE LANGUAGE plpgsql;

-- Install PostGIS (your file paths may vary)
\i /opt/local/share/postgresql84/contrib/postgis-1.5/postgis.sql 
\i /opt/local/share/postgresql84/contrib/postgis-1.5/spatial_ref_sys.sql
GRANT ALL ON geometry_columns TO PUBLIC;
GRANT ALL ON geography_columns TO PUBLIC;
GRANT ALL ON spatial_ref_sys TO PUBLIC;

-- vacuum freeze: it will guarantee that all rows in the database are
-- "frozen" and will not be subject to transaction ID wraparound
-- problems.
VACUUM FREEZE;


-- You'll also want to set up the fuzzy string matching functions

\i /opt/local/share/postgresql84/contrib/fuzzystrmatch.sql 

-----------------------

make sure your database.yml contains the line:

  template: template_postgis

in the section named common: &common

Then do rake db:create

-----------------------

You will also need ImageMagick (for no good reason, but Paperclip,
which we use for attachments, requires it)

Deployment
==========

This application uses capistrano for deployment.  Check out config/deploy.rb 
and config/deploy/ for basic deployment recipes and configuration.

Deployment uses key-based authentication. To deploy, you'll need to add your 
public key on the staging/production servers so you can run commands as the 
"deployer" user.

To set this up, talk to another developer to get your public key on the 
machines. If you need to do system administration on the servers, you'll need 
your own user accout set up as well.

Once you have SSH access as deployer, you can deploy:

 run: `cap [staging|production] deploy`

Remember to push your changes to the main repository first, since the deploy
process pulls from there.  Database migrations are currently performed by hand
after deploying.

Deployment gotchas: 

Ridepilot staging is on the production server. That means when you go into 
rails/ridepilot-staging, you actually have to set RAILS_ENV=production if 
you're going to run any commands. It will not affect the real production 
app if you're in the right directory.

About

A dispatching and ride coordination tool created originally for RideConnection.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 50.7%
  • Ruby 41.8%
  • CSS 7.5%