User Tools

Site Tools


zzz_archive:dev:summer_of_coding:2015:ideas

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dev:summer_of_coding_ideas [2013/04/16 06:30] – note SSH key requirement bshumzzz_archive:dev:summer_of_coding:2015:ideas [2022/02/10 13:34] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Google Summer of Code 2013welcome and ideas ======+:!::!::!: **This page is outdated** :!::!::!:
  
-**Pre-application note:** Evergreen has been accepted as a mentoring organization for [[http://www.google-melange.com/gsoc/homepage/google/gsoc2013|GSOC 2013]]. We are working on releasing more details soon.+====== Google Summer of Code 2015welcome and ideas ======
  
 +Evergreen has applied for, but has not been accepted yet as a Google Summer of Code 2015 Mentoring organizations. Updates will be posted here as they develop. 
 ===== Welcome ===== ===== Welcome =====
  
Line 8: Line 9:
  
 In solidarity with the [[http://sfconservancy.org/news/2012/mar/27/outreach/|Software Freedom Conservancy's participation in the GNOME Foundation's Outreach Program for Women]], we particularly invite and encourage eligible women to apply. In solidarity with the [[http://sfconservancy.org/news/2012/mar/27/outreach/|Software Freedom Conservancy's participation in the GNOME Foundation's Outreach Program for Women]], we particularly invite and encourage eligible women to apply.
 +
 +=====Learning About Evergreen=====
 +The Evergreen Project develops an open source ILS (integrated library system) used by more than 1000 libraries around the world. 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.
 +
 +To become more familiar with the project:
 +  * See how Evergreen works by trying it on one of our [[http://evergreen-ils.org/dokuwiki/doku.php?id=community_servers|community demo servers]].
 +  * Read through our [[http://docs.evergreen-ils.org|documentation]]
 +  * If you are planning to submit an application for a coding project, [[http://evergreen-ils.org/egdownloads/|download and install Evergreen]].
 +    * Candidates installing on Debian Wheezy may want to try the Wheezy installer at [[http://git.evergreen-ils.org/?p=working/random.git;a=shortlog;h=refs/heads/collab/phasefx/wheezy_installer]] for a script-based install for Evergreen.
 +    * [[server_installation:semi_automated|Other scripts for installing Evergreen]] are also available
 +  * Review our [[contributing:|conventions for contributing to the project]].
 +  * Subscribe to the [[http://evergreen-ils.org/communicate/mailing-lists/|mailing lists]] and drop into the [[http://evergreen-ils.org/communicate/irc/|Evergreen IRC channel.]] **Note:** The Evergreen IRC Channel is most active from 9 a.m. to 5 p.m. Eastern Mondays through Fridays. If you need to ask questions at other times, the mailing list may be a better choice.
 +
  
 ===== Expectations ===== ===== Expectations =====
  
-We expect students to communicate their progress publicly with the project, either via [[http://planet.evergreen-ils.org|blog posts]] or posts to the [[http://libmail.georgialibraries.org/mailman/listinfo/open-ils-dev|mailing list]], on a regular basis: weekly, at a minimum. Much more communication should also occur between the student and the development team on a daily basis through the normal modes of [[http://evergreen-ils.org/irc.php|IRC]], [[http://bugs.launchpad.net/evergreen|bug tracker]], and mailing list.+We expect students to communicate their progress publicly with the project, either via [[http://planet.evergreen-ils.org|blog posts]] or posts to the [[http://libmail.georgialibraries.org/mailman/listinfo/open-ils-dev|mailing list]], on a regular basis: weekly, at a minimum. We also expect the intern to meet weekly with the project mentors in the #evergreen IRC channel. Much more communication should also occur between the student and the development team on a daily basis through the normal modes of [[http://evergreen-ils.org/irc.php|IRC]], [[http://bugs.launchpad.net/evergreen|bug tracker]], and mailing list.
  
 ===== Application requirement ===== ===== Application requirement =====
  
-As part of their application for the Google Summer of Code, we expect any student applicants to submit an SSH key to the git administrators and gain working access to the Evergreen git repository.  One can follow instructions on the [[dev:git#getting_commit_access_to_working_repositories|dev:git]] page, which contains other useful information on use of git for the project.  Additionally, students are required to [[:contributing|submit a patch or point to a branch]] that addresses some problem or adds some small enhancement. [[http://goo.gl/mqNru|Bite-size bugs]] and new unit tests are good candidates to tackle.+As part of their application for the Google Summer of Code, we expect any student applicants to submit an SSH key to the git administrators and gain working access to the Evergreen git repository.  One can follow instructions on the [[dev:git#getting_commit_access_to_working_repositories|dev:git]] page, which contains other useful information on use of git for the project.  Additionally, students are required to [[:contributing|submit a patch or point to a branch]] that addresses some problem or adds some small enhancement. [[http://goo.gl/mqNru|Bite-size bugs]] and new unit tests are good candidates to tackle. We also ask that all applicants introduce themselves to the developer community through a post to the [[http://libmail.georgialibraries.org/mailman/listinfo/open-ils-dev|technical discussion mailing list]]
  
 ===== Application guidelines ===== ===== Application guidelines =====
Line 28: Line 42:
  
 Here are examples of what we would consider to be a good application: Here are examples of what we would consider to be a good application:
-  - From Evergreen's GSoC 2011: [[dev:summer_of_coding:2011:proposal_example|Joseph Lewis' "Bring Sanity to the Evergreen Configuration Interface"]]+  - From Evergreen's GSoC 2011: [[zzz_archive:dev:summer_of_coding:2011:proposal_example|Joseph Lewis' "Bring Sanity to the Evergreen Configuration Interface"]]
   - From Python's GSoC 2010: [[https://github.com/sympy/sympy/wiki/GsoC-2010-Application-Aaron-Meurer|Aaron Meurer's "SymPy: Improving the Symbolic Integrator"]]   - From Python's GSoC 2010: [[https://github.com/sympy/sympy/wiki/GsoC-2010-Application-Aaron-Meurer|Aaron Meurer's "SymPy: Improving the Symbolic Integrator"]]
  
Line 37: Line 51:
 The following project ideas are the result of brainstorming within the Evergreen development community. They are not the only project ideas that would be valuable to the Evergreen project - hopefully they serve as a starting point for your own initiative. The following project ideas are the result of brainstorming within the Evergreen development community. They are not the only project ideas that would be valuable to the Evergreen project - hopefully they serve as a starting point for your own initiative.
  
-==== Testing: units, stress, regression, UI ====+====Responsive Design Part 2====
  
-  * **Problem**: Evergreen and OpenSRF have testing problem. It isn't failing tests; it just doesn't have many tests to pass. As the functionality and configurability of Evergreen has grown significantly over time, simply setting up a clean environment with reasonable sample data in order to test a small patch requires a large investment of timeThen, testing a reasonable set of combinations strains the bounds of sanity of mere mortals. Luckily, computers don'have to worry about sanity (or mortality), and they are very good at doing repetitive tasks very quickly and looking for anomalies in the results. Your jobshould you accept it, is to harness the power of computing to build out Evergreen's fledgling test suites into something that will make bugs and brittle code tremble with fear - and make it easier for other developers to QA their own and each other's code. You can build upon the existing infrastructure Evergreen already has in place: +   * **Description:** In September 2013, group of contributors created more responsive catalog that would display better on small devicesThis project would expand upon that original effort by improving responsiveness of catalog interfaces that still have display problems on mobile devicesmaking our current fonts and CSS better suited for customization, and possibly improving responsiveness and mobile functionality in the new web-based client
-    * A [[http://goo.gl/q6k7H|Buildbot]] configuration for a continuous integration environment +   * **Required Skills:** Template ToolkitHTML, CSS, JavaScript, Perl 
-    * The [[http://goo.gl/1bd0R|constrictor]] custom stress-testing framework +   * **Level of Difficulty:** Low 
-    * Various unit tests written in Perl, Python, JavaScript, and C +   * **Mentors:** Dan Scott and Ben Shum
-  * **Required skills**: A passion for quality. Basic knowledge of testing in one or more of PerlPython, JavaScript, and C. +
-  * **Level of difficulty**Variable, depending on what you put into it! +
-  * **Category**: Infrastructure/Automation +
-  * **Bonus points**PostgreSQL testing via pgTAP, browser testing with Selenium or Windmill. +
-  * **Mentor**: TBD+
  
-==== Modernize Evergreen's Web interface ====+====Awesome Box Integration====
  
-  * **Problem**Evergreen was an early adopter of the [[http://dojotoolkit.org|Dojo Toolkit]], as its JavaScript widgets provided a powerful, approachable Web-based user interfaceHowever, we are stuck using the 1.3 branch of Dojo (released in March, 2009) due to our dependence on some deprecated features such as the original Dojo Grid. Recent versions of Dojo offer more functionality, improved usability, better browser support, and greatly enhanced accessibility. Your job is to overcome the forces of inertia and enable Evergreen to adopt Dojo 1.8. +   * **Description:** This project would provide integration between Evergreen and [[http://awesomebox.io/|Awesome Box]]. The project would allow staff to enable an "awesome" check-in modifier when checking in awesome itemsadding a title's "awesomeness" as a reportable field, and making this data available to the Awesome Box Service so that it can be used for a library's Awesome PageSee also https://bugs.launchpad.net/evergreen/+bug/1297976 
-  * **Required skills**: JavaScript +  * **Required Skills:** Perl, SQL, JavaScript 
-  * **Level of difficulty**: Medium +  * **Level of Difficulty:** Low 
-  * **Category**: Low-Hanging Fruit +  * **Mentors:** Jason Stephenson and Ben Shum
-  * **Bonus points**: Use Dojo test harnesses, or some other JavaScript testing framework, to build a test bed that ensures the quality of your own work and prevents those who follow you from desecrating your heavenly creation with regressions. +
-  * **Mentors**: TBD +
- +
- +
-==== Mobilizing the Catalog ==== +
- +
-  * **Problem**: Evergreen's web catalog is not well optimized for mobile devices.  There are still hard-coded styles lying around in the code, table layouts, and other visual elements that should be changed or updated to work better when viewed on different platforms.  While applying various concepts of responsive web designlet'improve the web catalog to be more friendly on mobile devices. +
-  * **Required skills**: Template Toolkit, HTML, JavaScript, Perl +
-  * **Level of difficulty**: Low +
-  * **Category**: Fun/Peripheral +
-  * **Mentors**: TBD +
- +
-==== Enable metadata formats other than MARC21 to be first class citizens ==== +
- +
-  * **Problem**: While Evergreen is built on an advanced platform, much of its database schema, search indexing and results display, and tooling assumes that the loved-by-libraries-but-oh-so-limited MARC21 is the sole format in which metadata will be stored and maintained. To support a broader base of knowledge-based institutions, many of which use more modern metadata formats, Evergreen needs to be taught how to ingest, index, display, and edit other metadata formats without requiring them to be converted to MARC21. +
-  * **Required skills**: SQL, XML, XSLT +
-  * **Level of difficulty**: Medium to hard +
-  * **Category**: Risky/Exploratory +
-  * **Mentors**: TBD +
- +
-==== Offer management and integration of full-text search of objects within Evergreen ==== +
- +
-  * **Problem**: Evergreen is currently limited to searching metadata, but our knowledge institutions are increasingly moving towards offering either born digital objects (ebooks, electronic journals, theses and dissertations) or digitized works. Consequently, a frequently asked question is whether there is a way to search full-text objects along with just metadata, and the current answer is "no". One way to change this answer is to tightly integrate Evergreen with an existing digital repository such as DSpace or Fedora; alternately, one could add full-text digital object support directly to Evergreen. +
-  * **Required skills**: Full-text search (Solr, Sphinx, ...) +
-  * **Level of difficulty**: High +
-  * **Category**: Risky/Exploratory +
-  * **Mentors**: TBD +
- +
-==== Overhaul internationalization support in Evergreen ==== +
- +
-  * **Problem**: Internationalization (i18n) support in the public interface and most of the staff client was added several years ago, but while an effort was made to standardize on GNU gettext as an intermediate format, the effort was somewhat rudimentary and many new interfaces have subsequently been added that lack i18n support. The adoption of Template::Toolkit for new web interfaces offers many i18n advantages over the DTD and JavaScript-based i18n used in legacy web interfaces. Given the increasing adoption of Evergreen outside of North America, the time is right to revisit some of the initial i18n approaches and deliver consistent approach to i18n throughout the application, with an eye towards the addition of right-to-left support for bidirectional languages; locale-sensitive currency, time, and date support; and use of a shared system across timezones. +
-  * **Required skills**: JavaScript, Perl, XML +
-  * **Level of difficulty**: Medium +
-  * **Category**: Core Development +
-  * **Mentors**: TBD +
- +
-==== Build easier configuration interface for indexing definitions ==== +
- +
-  * **Problem**: Currently Evergreen requires the use of XSLT and XPath to configure the mapping of metadata field to search indexes.  This is not the friendliest of interfaces for many librarians to use.  A interface that allows the expression of index definitions in terms more familiar to librarians (e.g., MARC tags, headings, and named metadata fields) would make it much easier for librarians to customize their use of Evergreen. +
-  * **Required skills**: JavaScript, XML, XSLT, Perl +
-  * **Level of difficulty**: Medium +
-  * **Category**: Core Development +
-  * **Mentors**: TBD +
- +
-==== Build customizable dashboard to show library usage and server health ==== +
- +
-  * **Problem**: Up-to-date information about the use of the library and the health of its servers is available in reports and logfiles, but few stakeholders have the access, expertise, and initiative to check those sourcesA dashboard framework with useful starter components would make this information ambiently available with just a glance. It would be useful to be able to show the current number of loaned/overdue items; current total overdues owed; average number of renewals per circ modifier; number of circulations in/out per //n// minutes. For internal use, it would also be useful to show server load, free memory and disk space, etc. as recorded by nagios, MRTG, et al. [[http://library.brown.edu/dashboard/info/]] has some great ideas. +
-  * **Required skills** +
-  * **Level of difficulty**: +
-  * **Category**: Fun/Peripheral +
-  * **Mentors**: TBD+
  
 ===== Contacting us ===== ===== Contacting us =====
Line 113: Line 71:
 If you have questions about the following project ideas or want to kick around some new ideas that you have, you can contact the project mentors as follows: If you have questions about the following project ideas or want to kick around some new ideas that you have, you can contact the project mentors as follows:
  
-==== GSoC 2013 Administrators ====+==== GSoC 2015 Administrators ==== 
 +  * Kathy Lussier - IRC nick: ''kmlussier'', email: klussier@masslnc.org
   * Benjamin Shum - IRC nick: ''bshum'', email: bshum@biblio.org   * Benjamin Shum - IRC nick: ''bshum'', email: bshum@biblio.org
-  * Galen Charlton - IRC nick: ''gmcharlt'', email: gmc@esilibrary.org 
  
-==== GSoC 2013 Available Mentors ====+==== GSoC 2015 Available Mentors ====
   * Benjamin Shum - IRC nick: ''bshum'', email: bshum@biblio.org   * Benjamin Shum - IRC nick: ''bshum'', email: bshum@biblio.org
-  * Dan Wells - IRC nick: ''dbwells'', email: dbw2@calvin.edu+  * Dan Scott - IRC nick: ''dbs'', email: dan@coffeecode.net 
 +  * Jason Stephenson - IRC nick: ''Dyrcona'', email: jstephenson@mvlc.org 
zzz_archive/dev/summer_of_coding/2015/ideas.1366108209.txt.gz · Last modified: 2022/02/10 13:34 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.