GSoC/GCI Archive
Google Summer of Code 2012


Web Page:

Mailing List:

The Evergreen Project develops an open source ILS (integrated library system) used by approximately 900 libraries. The software, also called Evergreen, is used by libraries to provide their public catalog interface as well as to manage back-of-house operations such as circulation (checkouts and checkins), acquisition of library materials, and sharing resources among groups of libraries.

The Evergreen Project was initiated by the Georgia Public Library System in 2006 to serve their need for a scalable catalog shared by (as of now) approximately 250 public libraries in the state of Georgia. After Evergreen was released, it was adopted by a number of library consortia in the US and Canada. It has also been adopted by various individual library systems, including the second-largest circulating library in the U.S., the King County Library System in Washington, and a number of libraries outside of North America.

The Evergreen development community has about nine active committers and roughly 50 individuals who have contributed patches. In June 2011, Evergreen joined the Software Freedom Conservancy. Somewhat unusual for an open source project, the Evergreen community is also marked by a high degree of participation by the librarians who use the software and contribute documentation, bug reports, and organizational energy. As such, Evergreen is very much about both the developers *and* the users.

Because of the nature of ILSs, Evergreen has an interesting mixture of functionality, allowing for a wide mix of skills and interests by the developers who contribute.

  • Evergreen is a metadata search engine
  • Evergreen is a transaction processing engine
  • Evergreen is just another web application
  • Evergreen is based on a robust, scalable, message-passing framework - OpenSRF


  • Create a PHP client for OpenSRF and Evergreen I am a college student, doing my major in Mathematics. I love web development and coding in php. With Gsoc, I expect to learn a lot, gain knowledge, find people with similar ideas, the list is endless. My Project is to create an openSRF and Evergreen Client in php. Understanding the code for the client in C and java will help me code in php. The client will support all the functions as it currently does in perl/c/java. At the end of each step, I will document that part. This way by the end of the project I will have a clean and detailed documentation.
  • Create Android client(s) for Evergreen I will develop core Android modules like Communication and Protocol, Database Local Cache and Barcode and I will implement them in two Android applications, a client application and a staff application. My intention is finally to deliver two Android Evergreen applications that have a highly customizable and well documented code.
  • Optimize Evergreen: Convert PL/Perl-based PostgreSQL stored procedures to PL/SQL or PL/C As stated in problem, the performance of current system depends on some PL/Perl-based PostgreSQL stored procedures. Identify and reimplement these routines will bring a performance improvement to current system.
  • Upgrade Dojo to bring Evergreen to the modern web. Evergreen is stuck using an end of life version of Dojo, meaning many of the vast advances in technology and/or interfaces over the past few years aren't supported by it. This project proposes upgrading dojo to the most recent version, and building some tools able to search for, and automatically replace all deprecated elements possible.