PicaGalley will be a photo gallery application with web access.
PicaGalley will be a complete open source photo gallery application including a content repository for the images, a display piece, an access control layer, and upload capabilities. The idea is to have a rigid design for the content repository with a very flexible display piece. The images in the content repository will be protected with granular access control.
Photo gallery software provides users with the means to store, manage, and publish photographies and other digital images. A user creates one or more photo albums and puts images into them. Metadata stored with the images allows for searching. The primary means to access the photo gallery will be web interfaces, for human interaction through a browser as well as for machine retrieval. Images are published by granting read access to everybody or to a group of invites.
Initially the proposal idea for a photo gallery was brought forth due to a project that had been started at Nechtan Design. While discussing the possibility of forming a community around that project (called Caitrin) a community started to form. Others with interest in the subject and problem space started putting in their ideas and offered to donate code that could help. It was decided that the project should start from scratch with a new architecture. This proposal is based on a high level design that evolved from the subsequent discussions.
We are aware that we have significant work ahead of us, not only in the code to be written but in finding a community to support the project.
"A picture tells a thousand words..."
If a picture tells a thousand words then a gallery of pictures tells an amazing story. It could tell this story as part of a larger web site, in a blog or on its own. Unfortunately, there exists no Java open source application to assist the community to tell this story. PicaGalley will change that.
There are many photo galleries that are written in PHP. Each of these addresses a particular need and many work well for their intended purpose. However, there is not a photo gallery that is written in Java. As Web 2.0 continues to grow it only makes sense that the community provide not only PHP but also Java applications to allow everyone the ability to publish their own content. Apache started down this road with Roller and can continue with PicaGalley.
- Create a prototype by drawing pieces from existing efforts
- Recruit additional community members
- Finalize the Content Repository
- Use cases - capture ideas such as access control that might not make first drop
- Unit tests (simple drivers for loading, accessing, searching, etc.)
- ReST structure
- Use cases
- URI format
- prototype implementation
- Web service
- Use cases - want to capture ideas for process (Ode) integration
- WSDL Description
Responses to the initial proposal uncovered several existing efforts at implementing photo gallery software in Java. Instead of picking one codebase over the others, we started from scratch with a high-level design. Pieces will be taken from the existing efforts as appropriate. These efforts are:
- Caitrin: Originally developed for a fee at Nechtan Design then voluntarily updated. The code is in use on a test site and ready to be moved to production. It runs on Tomcat and uses a relational DB for storing metadata as well as the filesystem for storing images. This codebase was at the core of the initial proposal for this podling.
- Noel Bergman developed a photo gallery software he is willing to donate. The software is in production use, technical details remain to be investigated.
- Carsten Ziegeler is working on a photo gallery software based on Apache Sling (currently incubating), which uses a JCR backend for storage. This codebase is destined as a contribution to Apache Sling.
- Luciano Resende is working on a photo gallery sample for Apache Tuscany SCA, using a filesystem storage backend. This codebase is already at Apache, see https://svn.apache.org/repos/asf/tuscany/java/sca/samples/photo-gallery/
The PicaGalley project will demonstrate the best in meritocracy. Due to the fact that the project is in its infancy and only a small community exists, the community that grows to surround it as it grows within the ASF will all adhere to the fundamentals of meritocracy. Every person who is currently part of the community has given a significant contribution of either architecture expertise and/or code.
After the initial proposal for a Caitrin podling, which came with no community at all, a small community has formed within the ASF. Some people are interested in the problem domain itself, while others are interested in showcasing how particular technologies can be used to solve some aspect of the problem.
We are starting with a very small community. While several people are interested, it remains to be seen how much time they can spend here. The risk of becoming an orphaned project is high.
In light of this situation, we are putting the initial focus on delivering working prototypes based on existing efforts at Apache Tuscany SCA and possibly at Apache Sling (currently incubating). Working prototypes will enable interested parties to download and play with the code and entice them to get involved. Relying on existing efforts means that our work results can find a home at Apache even if the podling itself should fail to gain sufficient traction.
Inexperience with Open Source
The initiator of this proposal has limited experience with open source. She is committed to learning the Apache Way. The other members of the community we currently see forming are Apache PMC members or ASF members.
The current community grew out of a desire to see different pieces of technology put to use and an interest in the problem space. There is no single entity that is providing all the developers for this project.
Reliance on Salaried Developers
This project is not in the profit stream for any of the participants.
Relationships with Other Apache Products
There are several other Apache Products and Apache Incubator projects that are being evaluated for use with this project. Some members of the community are involved because of wanting to see a particular technology put to use. Likely candidates are:
- Jackrabbit for the backend
- Tuscany SCA for the WS interface
- Sanselan for metadata extraction
- Sling for the frontend
- maybe JSecurity for authorization
There were brief discussions with the Apache Roller project about implementing the photo gallery as a plugin to the Roller weblog software. The community response indicated general interest but limited enthusiasm. The intent of this proposal is to develop a standalone photo gallery application, whereas the Roller community is likely to consider it an accessory feature. We therefore prefer to start an independent effort, which can later be tied to Roller by means of a plugin.
A Excessive Fascination with the Apache Brand
The Apache community has shown themselves to be invested in the code that they are writing because they enjoy the act of developing a quality product that can be easily used by others. They rely on collective knowledge instead of the knowledge of the individual and are willing to share that knowledge with others. We feel that this application will continue to grow well under the guidance, leadership and structure of the Apache community and the ASF.
No documentation currently exists.
No initial source is currently identified. All the code bases listed above will be donated in order to prevent IP pollution.
No cryptography is currently utilized in this project.
The minimum mailing lists will be needed:
- picagalley-private (with moderated subscriptions)
Angela Cymbalak (a DOT cymbalak AT nechtan DOT org) (cla submitted)
Luciano Resende (lresende AT apache DOT org)
Please comment on the general@ list if you are interested in joining this project!
We kindly ask the Incubator to sponsor this project.