Client-Centered Software Development: The CO-FOSS Approach introduces a method to creating a customized software product for a single client, either from scratch or by reusing open source components. The clients are typically non-profit humanitarian, educational, or public service organizations. This approach has been used in undergraduate courses where students learn the principles of software development while implementing a real-world software product. This book provides instructors, students, clients, and professional software developers with detailed guidance for developing a new CO-FOSS product from conceptualization to completion.


  • Provides instructors, students, clients, and professional software developers with a roadmap for the development of a new CO-FOSS product from conceptualization to completion
  • Motivates students with real-world projects and community service experiences
  • Teaches all elements of the software process, including requirements gathering, design, collaboration, coding, testing, client communication, refactoring, and writing developer and user documentation
  • Uses source code that can be reused and refitted to suit the needs of future projects, since each CO-FOSS product is free and open source software
  • Provides links to a rich variety of resources for instructors and students to freely use in their own courses that develop new CO-FOSS products for other non-profits.

chapter Chapter 1|34 pages

The Journey

section I|1 pages

Organization Stage

chapter Chapter 2|34 pages

Finding a Client and a Project

chapter Chapter 3|28 pages

Defining the Course

section II|1 pages

Development Stage

chapter Chapter 4|32 pages

Project Launch

chapter Chapter 5|33 pages

Domain Class Development

chapter Chapter 6|39 pages

Database Development

chapter Chapter 7|53 pages

User Interface Development

chapter Chapter 8|23 pages

Preparing to Deploy

section III|1 pages

Deployment Stage

chapter Chapter 9|36 pages

Continuing the Journey