2011 Google Summer Of Code Ideas
Google Summer of Code (GSoC) is a global program that offers student developers stipends to write code for various open source software projects. This year, Liferay is applying to the program as a Mentoring Organization. This page has helpful information for both potential students and potential mentors. In addition, it also outlines Liferay's development ideas and process for submitting proposals. It lists several possible projects for participants in this year's program.
Liferay has enjoyed tremendous support from its community for small- and large-scale projects as part of our open source mission. This year, we hope that the GSoC program encourages even more thoughtful and innovative ideas for Liferay!
Students can use this page to see a potential list of coding ideas, but you are always encouraged to submit your own ideas. See below for the template to use for your applications.
If you are a member of the Liferay Community in good standing, what better way to enhance your leadership skills and learn a lot at the same time! Volunteer to be a Liferay Mentor for this summer's program. Ideal mentors are upstanding citizens of the Liferay community, have a decent amount of experience coding for Liferay, and are familiar with the internal workings of the software. More importantly, mentors should be willing to donate their time over the summer for their students and their projects, and have a passion for teaching, including a desire for success, and the ability to effectively communicate thoughts, ideas, and general project-related discussions with students and Liferay. If you're interested in becoming a mentor, leave a comment below, or contact firstname.lastname@example.org.
Application Process #
If you are a student who wishes to participate in the 2011 Google Summer of Code with Liferay, congratulations! This is your first step toward higher learning and wonderful enlightenment. The next step is to tell us what you want to do! Ideal applicants will have some experience in the Java programming language (though not all of Liferay is written in Java). You are encouraged to review Liferay's technical development guide to get a sense of the technologies and architecture of Liferay's open source projects.
Your application MUST have the following items:
- Project Title: One-liner for referencing the project byname.
- Your Name. We have to call you something!
- Personal Goals: Why you are interested in this project's topic. Why you are the best individual to take on this task.
- Abstract: Free-form description of the project you wish to implement. This should include a description of the problem, the overall solution, and your rough implementation approach (for example, a list of needed modules).
- Deliverables: A list of concrete deliverables before considering the project complete. This should include test cases and documentation!
- Timeline: Rough estimate of the number of tasks in the project, each with a date range. This should include ramp-up time to get to know your way around.
- History: Details of any academic, industry, or open source development experience.
- Contact Information: Email, Skype/IM, telephone, IRC nick.
Depending on you and your mentor's preferred communication style, you will end up using one or more of the following collaboration channels:
- Direct Email
- Online chat via AIM, skype, IRC (#liferay or #gsoc on FreeNode) or liferay.com
- Liferay Community Forums
- Liferay Community Wiki
- Twitter (@liferay)
- Facebook (facebook.com/liferay)
- Google Docs
- POTS (Plain Ole Telephone System)
- In-person meetings if feasible
- Google Summer of Code mailing lists
Liferay generally does not use email lists, and does not have established lists for developers. Rather, we generally use forums and chat extensively. Check out the participation page for details on how these channels work.
The ideas list was generated from looking at several sources of ideas that Liferay has succcessfully used in the past:
- Proposals previously submitted by the community
- Issues filed and slotted into our Community Backlog in JIRA
- Project ideas submitted by Liferay staff and community for GSoC specifically
Click on each of the projects to get more information on the project.
If you have ideas for this list, please add them!
Portal Core #
|Digital Certificate Login||Out-of-the-box digital certificate access to the portal||Easy||Juan Fernandez|
|Personal Quick Links||A personal "Quick Links" stash in the Dock menu. How many times have you had to repeat a process in the portal, but had to navigate 4-5 clicks between 2 different UIs. With quick links all you need to do is click a new dock button on any view you are in, and it saves it temporarily to your Session (or SessionClicks) with some name you give so that it appears one of the Dock menus.||Medium||Ray Auge|
|Reverting Control Panel Configuration||This is an improvement for reverting control panel settings that are overriding defaults from portal-ext.properties. For example, if modifying user authentication and changing user's email notification settings in Control Panel, the Control Panel overrides what is in the portal-ext.properties (that has customized settings). See LPS-15311.||Easy||James Falkner|
|Portlet Undeploy||Currently in plugins installation of control panel, it is nice that it plugins can be deployed at runtime, but they cannot be un-deployed except through shutdown of portal, manual undeployment, and restart. Implement a mechanism to undeploy portlets||Hard||James Falkner|
|IP-Based Roles||Imagine an intranet accesible from inside and outside the LAN. This feature would be very convenient to show some "public" content to the unauthenticated users inside the LAN. If you set the intranet as the homepage, it's much better to show something instead the login form.||Medium||James Falkner|
|Look-ahead search results||Look-ahead is a tool in algorithms for looking ahead a few more input items before making a cost effective decision at one stage of the algorithm.||Medium||James Falkner|
|Video Support||Implement a new asset type in the Liferay Asset Framework representing video, including local storage in Liferay's local repository, integration with web video services (YouTube, or other streaming services)||Hard||Mike Han|
|Liferay Installer||Create a cross-platform installer for Liferay. With only a few mouse clicks, this will allow you to configure a MySQL or PostgreSQL database (determining user and password) and choose what sample data or additional portlets you want to see in your portal.||Medium||Juan Fernandez|
|RPM and DEB Package Distros||Now that we have long term confirmation that Liferay works perfectly fine under OpenJDK, it would be great to have easy-to-consume packages for RPM and Debian-based Linux distros.||Easy||Ray Auge|
|Drupal2Liferay||Create a Liferay plugin that can deploy Drupal plugins into the Liferay environment. One of the most valuable features of Drupal is the amazing amount of community plugins they have. It would be great if we could import drupal php plugins into Liferay.||Difficult||Juan Fernandez|
Social Coding and Networking #
|Facebook Event Integration||Modify Liferay's built-in calendar tool to support Facebook Events, allowing Facebook users to expose their events in Liferay||Medium||Julio Camarero|
|Social Coding Improvements||Refactor existing Social Coding portlets for JIRA, SVN to support any project (currently it is hard-coded for Liferay). Add support for Git||Medium||Julio Camarero|
|ActivityStreams||Implement an activitystrea.ms - compliant feed for Liferay's activity stream.||Medium||James Falkner|
|Smart Suggestions||When viewing content in Liferay's collaboration tools (forums, wikis, blogs), show additional "you may like" or "related content" links to other content.||Medium||Julio Camarero|
|Image Editing||Online editor that allows you to do basic operations on your images (resize, crop, change color scale, appy effects... see an example here: http://mugtug.com/sketchpad/ ). It may be possible to integrate with existing open source solution||Medium||Julio Camarero|
|Inline Image Preview||When viewing forum posts with attached images, implement a simple image gallery inline (or in a lightbox) so that I don't have to download individual images, view them, then delete them||Medium||James Falkner|
|Category Cloud||Similar to the existing Tag Cloud portlet, implement a Category Cloud portlet to show a heatmap-style list of categories||Easy||James Falkner|
|Print Blog Post||Add the ability to print individual blog posts (Similiar to the print option for wikis).||Easy||James Falkner|
|Expire Documents||Implement ability to expire documents in the Document Library (similar to how it is done for Web Content articles). SeeLPS-4500||Medium||James Falkner|
|XMPP Support||Implement XMPP/Jabber support for Liferay Chat, including the ability to see presence based on group membership rather than friend list||Medium||James Falkner|
|Wiki Templates||When creating a new wiki page, allow the user to select from a set of templates to pre-construct a lot of the new wiki page||Medium||James Falkner|
Enterprise Integrations #
|Liferay LMS||Create a set of portlets that allow to create courses and exams||Difficult||Juan Fernandez|
|Pentaho Integration||One of the main lacks in Liferay is a BI set of portlets. an OOTB Open Source BI integration would be amazing. Some steps have been taken towards integrating with Pentaho in many projects and there already are a set of Pentaho portlets. A tighter integration with the portal services and a set of dashboards for C-levels would be nice.||Medium||Juan Fernandez|
|CRP+ERP Integration||We have already implemented SalesForce integration, so SugarCRM would be similar and it's a quite extended plataform. OpenERP or OpenBravo integration would be important steps towards becoming the central core integration technology in the medium/big-size enterprise.||Difficult||Juan Fernandez|