Project Handoff

As the end of the course approaches, we want to give you some options on what to do with your app.

You should receive an email from our staff by the end of the project cycle to indicate your preference:
  1. AgileVentures, a 501(c)(3) nonprofit that helps mentor new developers to work on open source projects, has made special arrangements with us to provide basic maintenance of your app either a month-at-a-time (e.g. until the next CS169 offering begins) or on a long-term basis. AgileVentures was founded by Professor Sam Joseph of Hawai'i Pacific University, who is also the lead facilitator for the online course on edX based on this Berkeley course and the editor of the textbook we created for this course. We have been working with Sam since 2012 and our organizations support each other.  You can keep your app in this state indefinitely, or even have future teams of students from our course or professional developers from AgileVentures work on your app in the future.  Learn more about AgileVentures support for nonprofits.

  2. You want to take over administration of the app yourself, possibly hiring students or others to do this work. Instructions for doing this, targeted at a technical user (e.g. your IT manager or system administrator), are below.
If you choose option 2, the information below is for the IT person who will handle the transfer.

Take Over Management of the App Yourself (for technical readers)

The apps we develop, as a general rule, can be described as follows:
  • Open source repository hosted on GitHub, including badges for Travis CI (test coverage/status), CodeClimate (code quality), and Pivotal Tracker (project management of app features)
  • Rails 4 + Ruby 2 server side, HTML5 + CSS + JavaScript/jQuery client side
  • Bundler used for library management
  • Hosted on Heroku, usually on the free tier, which provides a platform-as-a-service for Rails and other apps
I'd like to "own" the source code base

Please contact us with your GitHub username, and we can transfer ownership of the repo to you. Note that if you want our students to continue working on the app in the future, you will need to ensure that the future student teams have the appropriate access to your repo.

I'd like to keep the app running on our own Heroku account

Set up an account on, and once done, let us know your account username and email and we can transfer ownership of the app to your Heroku account. This can be done with no interruption in service.

I'd like to migrate the running app off of Heroku and onto my own VPS or shared server.

Note: we recommend that for low-volume/low-usage apps, Heroku is actually more economical. Even if your app cannot use Heroku's free tier (and many can), the slightly higher monthly cost of hosting is more than offset by the fact that you don't need to hire a sysadmin or dev/ops person to look after the app in steady state.

To deploy to a VPS or shared server, you'll have to configure a database. Heroku uses PostgreSQL, but most of the apps we develop will work with any SQL database. You'll need to install (or make sure you shared server supports) Ruby 2 and Rails 4; you may want to install other support packages—you can use our C9 configuration guide as a starting point.

Also, if the app integrates any Heroku add-ons, you may have to modify the app to use the non-Heroku/standalone versions of those add-ons.  

Whom can I contact for help developing/taking over/enhancing my app? How do I know if they're qualified?
  • You could try Cal BluePrint, the UC Berkeley student organization that pairs motivated student teams with nonprofits to work on apps as extracurricular projects 
  • AgileVentures works with us and other groups to provide volunteer-led 
  • There are many Rails Meetups around the world, where you can "advertise" (30-second pitch) your desire to hire Rails-savvy developers

My developer needs to edit the text or visual styling (not the functionality) of the app.

All the CSS files should be in the app/assets/stylesheets directory of the app.  Regarding HTML: in Rails apps, the HTML is generated from templates that can be found in the subdirectories app/views/** in the repo. You can usually, but not always, determine the name of the template file from the URL of a particular page in the app. The markup in those files  is either eRB or HAML, both commonly used in Web apps and documented online.  If you want to add/remove CSS classes or IDs in the HTML code, that is where it will have to be edited.

More questions? Email your suggestions and we'll enhance the FAQ.