|
Thank you for your interest in Joomla! Joomla! is a great
place to spend a summer learning, coding, participating and
contributing. We are an exciting open source project with a vibrant
community, and we look forward to your application and your project
ideas.
This year, the focus lies on the implementation and
use of the new Joomla! 1.5 framework, soon to be released as beta 2. We want to give students the
oppurtunity to learn to develop on a cutting edge web application framework. We also want to reach out to
the Joomla! community by developing extensions for 1.5 that can
be used by other communities and developers. We are also closely working together with external projects, like
mootools, eclipse and the SFLC . This means the SOC 2007 is not strictly for PHP students only. Students that want to develop in
different langauges (JAVA, javascript, ...) can also find their way into
our Summer of Code. We have a group of very motivated mentors ligned up
to welcome the students and give them the experience of a lifetime.
Below you will find many resources when choosing a Summer of Code
organization, writing your application, and choosing a project to work
on. If you have questions at any point along the way, please post your question on the special Summer of Code forum .
Student requirementsHere is a short list of requirements (as specified by the Joomla
project) that you must be able to meet in order to get accepted as a
student participant in Google's Summer of Code program.
- Working on your Joomla! project should be your main activity for the entire summer.
- You must be willing to provide weekly status reports.
- You will be expected to learn how to use SVN and maintain a SVN account on joomlacode.org.
- You need to have decent PHP coding skills and basic knowledge of the Joomla! 1.5 framework and API.
The most important item is #1. You'll have a lot to learn before you
will get to the point where you can begin coding your project, and the
projects are all non-trivial. We will provide you with amazing support
from the mentors and community, but it is up to you to make sure that
you can focus on your Joomla! project. Writing a Summer of Code applicationDuring Summer of Code of 2005 and 2006, a total of over 200 applications were received, of
which a total of 15 were chosen. This year we are likely to receive even
more. Competition will be fierce, so what can you do to help make sure
your application gets serious consideration? Here are some tips,
straight from last year's mentors themselves.
Sell your idea. Describe your idea in detail. What
is its ultimate goal? What components will it have? What benefits does
it have for Joomla! itself and its community? How do you plan to achieve
completion of your project? If a specification already exists, what
will you do that will go above and beyond expectations?
Sell yourself. Get across your enthusiasm for the project. Tell us what makes you
stand out from the rest of the crowd. Talk about your past experiences,
what makes you tick. Why are you interested in open source software,
and Joomla! in particular? What interests do you have, and how do these
interests relate to the project for which you're applying? There is a
basic assumption that people applying for Summer of Code will have at
least some programming skills already. So rather than spend a lot of
time elaborating on these (though by all means, do tell us what you
know), spend time talking about you.
Show enthusiasm. Summer of Code is a very exciting
opportunity, and Joomla! is an extremely exciting project to work on.
We're not just looking for people who want a summer job to pass the
time, we're looking for devoted people who have an intrinsic passion
for open source, and are (or will become) Joomla! experts in particular.
;)
Tailor your application to the project. It was
painfully obvious last year that certain people copied/pasted parts (or
even the entirety) of their applications to multiple projects. This can
be seen from a mile away, and it is a sure-fire way for your
application to not be taken seriously. Each application you send should
be targeted and tailored for the specific mentoring organization and
project to which you are applying.
Get feedback on your idea from the community. Discussing your idea with some established Joomla! folks is vital.
If your idea duplicates existing efforts or code (and does not provide
a very convincing reason for doing so), it will be rejected. Try to
have your application reviewed by someone before you submit it, whether
that be the mentor for a particular project itself (in the case of
already generated ideas below), or a person with
expertise in a certain area (such as the file system, or AJAX). Don't
be afraid to ask the community for help; we want you to succeed just as
much as you do. :)
Don't be afraid to go out on a limb. Have a
brilliant idea that's not covered by the proposals on the following
pages? Great! Don't be scared to try and think "outside the box" and
come up with a fantastic idea of your own. Note : 'Writing a Summer of Code Application ' is copyright by Angie Byron and Karoly Negyesi and available under a CC Attribution Share-Alike 2.0' 2007 Mentors- Wilco Jansen (Development working group coordinator, core team member)
- Rob Schley (Quality and Testing working group coordinator, core team member)
- Johan Janssens (Lead Developer, core team member)
- Louis Landry (Lead Developer, core team member)
- Mateusz Krzeszowiec (Developer, core team member)
-
Sam Moffatt (Developer, core team member)
- Andrew Eddie (developmen working group member)
- Rastin Mehr (development working group member)
- Laurens Vandeput (development working group member)
- Jason Kendall (development working group member)
- Valerio Prioetti (mootools.net, community member)
-
Philippe Ombredanne (easyeclipse.org, community member)
Project IdeasDevelopment of a 'digg' like component for Joomla! 1.5 To improve the user experience on our news site we are looking to create a 'digg like' extension for Joomla! 1.5 (component, modules, ...). The idea would be to give user a much more interactive exprience when using the news site, poeple should be able to rate news items, comments on them, etc. Basically it
would be a digg like extension for 1.5 tailored to the Joomla!
community. Of course we would offer it under a GPL license so other
communities can benefit from it too. Resources : digg.com Development of a 'my joomla' like component for Joomla! 1.5 First to be used on
our news sites, but of course available as extensions to the community.
The goal of this extension would be to offer people a
'My Joomla! account they can use to communicate, have an overview of
their activity, etc ... Ideally the system would use OpenID to give
them a unique login that can be used across all sites. Basically it
would be a social networking extensions for 1.5 tailored to the Joomla!
community. Of course we would offer it under a GPL license so other
communities can benefit from it too. Combined with a calendar, mail and
file storage solution you can have a websphere alike solution (but then
easier and more powerfull). Resources : openid.net Refactoring of the Clearance project to a Joomla! 1.5 application or component
Note : for this project we are closely working together with the people from the Software Free Law Center in NY.
Clearance is a web application that assists developers in keeping track of copyright ownership and permissions. Projects with large numbers of contributors over long periods of time sometimes need to establish code provenance in more detail than SVN logs provide. This tool allows devs to submit data relevant to copyrights, patents and ownership, which should make it easier for code maintainers to judge current copyright status and also to decide from whom to accept patches.
The goal would be to refactor it to become a Joomla! 1.5 component or even a application built ontop of the Joomla! 1.5 framework.
Resources : http://joomlacode.org/gf/project/clearance/ Implementation of SITEMan into J!Code
Note : for this project we are closely working together with the people from easyeclipse.org
SITEman is a desktop application written in Java that allows users to administer their Joomla! 1.5 website from a desktop environment. J!Code on the other is a special distribution for Joomla! of easyeclipse. The goal of this project is to integrate SITEMan into J!Code to give a full features development experience to Joomla! extension developers. Resources : http://joomlacode.org/gf/project/siteman/ Implementation of mootools in Joomla! 1.5 framework Note : for this project we are closely working together with the people from mootools
Javascript
and AJAX technologies have become an important part of todays web
applications. In order to be able to bring these technologies to third
party developers they need to be integrated into the Joomla! Framework.
For Joomla! 1.5 we have choosen mootools as the default javascript framework. For future versions of the 1.x series we want to offer third party developers should a simple PHP API for
adding Mootols behaviors to their extensions. In a perfect world it should
even be possible to include AJAX behavior on the template level. Note : this project is a continuation of the Summer of Code 2006 JAJAX project. Goals - Create Javascript PHP framework to load and manage the mootools framework
- Implement a simple template helper class to easily integrate mootools behavior in templates
Resources : Ajax; Templating; and the Separation of Layout and Logic
Cross-Database SupportJoomla! 1.5
provides the plumbing to easily drop in a replacement driver for the
database engine of your choice. However, that doesn’t solve the problem
of all this MySQL-specific SQL code littering the core. This is
extensive, and we need to find a way to replace the hardcoded SQL
statements with a more general object-to-relational mapping system that
can generate the SQL based on the driver selected. To achieve cross
database support, a database abstraction library needs to be
implemented. Core scripting also needs to be improved to prepare for
compatibility with other database systems platforms. Note : this project is a continuation of the Summer of Code 2006 JNBS project .
Goals - Create a database abstraction library
- Create a PostgreSQL driver
Resources : Object relationship mapping and SQL Comparison and MSSQL driver for 1.5 Improved SEO and metadata supportHaving a website means needing to be
noticed. The best way to get noticed is to be well indexed in search
engines. While Joomla! sites built with search engine optimisation in
mind are often well indexed, we are always looking for areas for
improvement. An idea for a project would be to bolster search engine
optimisation by integrating dublin core tags, etc. Resources : Dublin Core
Docbook framework
Over the last 15 years the Docbook markup language has emerged as a
standard for documentation both technical and non-technical. Providing
users with the ability to import and export in Docbook will provide a
major advance in Joomla!'s content management abilities. Ideally this
project would firstly create a Docbook framework for that could be
utilised by both Joomla!'s core extensions and 3rd party developed
extensions. Secondly it would provide an inteface for the direct import
and export of Docbook content into and out of Joomla!.
Resources : docbook.org and docbookxsl
WEBDAV Client and/or Server librariesDevelop a PHP native webDAV server capable of serving content from the database as files. Resources : webdav.org Building Mashups in JoomlaA mashup is a website or application that combines content from more than one source into an integrated experience. (Wikipedia.org )
Joomla is a wonderful modular framework for building Web Applications and our goals is to be able to utilize the power of other web based services such as Google Maps , Google Calendar , Flickr or YouTube within Joomla for building Mashup components.
In this project you are going to develop a proof of concept and a working example of a Joomla core library class that enables Joomla to query a web based API such as Google Maps or Flickr. We also want to study the possibilities of applying the same principals to access other types of web APIs, such as the ones listed on Programmable Web website.
Resources: Flickr API , Google Maps API , Programmable Web
|