Let us build software for you

In general, we work with nonprofits, NGOs, and campus units.

Please read the FAQs below to know what to expect before you apply. While we work free of charge, we do need a commitment from customers to be able to meet with the student teams. And we want to set expectations about what happens after the course projects are turned in.

At the end of the FAQ is a link to apply as a customer to have our students work on your project.  Please do read the FAQ to make sure your project and constraints are a good fit.

How do students work on projects?

The team of 4-6 students works for four two-week iterations.  Each iteration begins with a meeting between the customer and the team (which can be online or in person). These meetings are structured to elicit the customer's feedback on desired new features and desired changes/improvements to existing features. The idea is that each iteration makes the app a little better.

What time commitment is expected from the customer?
  • 30-60 minute meeting during third or fourth week of class with your project group, to help them understand your business and the desired app.  Team will capture a 2-minute casual video interview at end of meeting summarizing the business problem and app. This meeting can be in person at Berkeley, at your site (if it's reasonable for students to get there), or via free online videoconferencing.
  • Four more 30-60 minute meetings (once every 2 weeks over 8 week period) to provide feedback to the team
  • Optional but highly recommended: attend the final demonstration/poster session on UC Berkeley campus, during the final week of the semester (exact date will be announced by email by the end of the first week of the course)
  • Customers are not expected to have any technical background.
What kinds of projects are a good match for this course?

Software that can be delivered as a service (i.e web applications). Past project examples have included: tracking equipment and inventory for a mountain-rescue outfit; matching rescued animals with people who want to adopt them; managing the scheduling of vacations and work shifts that have complex staffing rules; managing chore assignments in shared housing co-ops. See some examples of past projects.

We particularly welcome the opportunity to enhance or extend projects we have worked on previously; we have a mechanism for "handing off" the existing project to a new team of students if you've worked with us before.

What kinds of projects are not a good fit?
  • Design or redesign of a mostly static-content website, or a site that could be managed with an off-the-shelf Content Management System such as WordPress or Drupal
  • iOS or Android apps. We can prototype a working mobile app in HTML5/JavaScript if the app requires a cloud-based part (most do). However, we can point you to other Berkeley courses and student groups that do develop iOS/Android apps, so that the HTML5/JS/CSS prototype from this course could be converted into a native app later.
  • We cannot in general extend existing systems built on commercial frameworks such as Salesforce.
  • Whether we can extend existing open-source systems using frameworks other than Rails is on case-by-case basis; give some details in your submission and we'll contact you to figure it out.
  • If your project is an app that would normally handle sensitive data (e.g. HIPAA-protected patient data or FERPA-protected student data), you may need to help the students create some "fake" data for testing, since our projects run on a cloud infrastructure that is not HIPAA or FERPA certified. However, you will be free to move the app to a compliant infrastructure later. 
  • Be aware that if your project involves giving students proprietary information, students will be required to share substantial details of the project with instructional staff, and neither students nor staff can bind the university to an NDA.
  • We ask student teams to make their code open source under BSD license or similar, so the customer can continue to use it royalty-free after the class ends.
Who owns the IP (intellectual property) associated with the project?

Berkeley's official policy is that undergraduate students (who are the usual project teams in this course) own their own coursework. We encourage the students to make their projects available under a liberal open-source license, specifically a license that both allows the customer to use and further develop the software on their own without paying any fee, and allows future students or other developers to further enhance the project. While we cannot force the students to do this, historically there has never been resistance to making project code open source.

What if my organization's intellectual property or confidential data is part of the project?

The students would have to keep all of the project data in private repositories, which we would ask you to pay for since for open source projects there would be no charge. Also, the instructional staff and their supporting staff would need access to the project data throughout the course, and we cannot bind the university to an NDA for this purpose, so you'll have to trust us. 

If the only sensitive aspect is the data that the app will handle (for example, you have data about patients or clients), we can work with you to create realistic but fake data to use during development, and you can populate it with your own data later.

What happens after the course is over?

This handoff guide summarizes your options. We make every effort to ensure you end up with usable software, even if it does not have all the features you want. 

As part of our overall project ecosystem, after the class ends you can engage our nonprofit partner AgileVentures for basic maintenance (i.e. keep your software running) at extremely low cost, and/or you can request that another team of developers (either at UC Berkeley, or at other universities where this course is taught in the same project-oriented format, or with AgileVentures) continue to further enhance your software.

Of course, you can also take over the software yourself, to host and/or enhance it in-house.

How do I submit a project?

Email Prof. Armando Fox and he or one of his course staff will be in touch with you to help "vet" your project proposal.