Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Grenoble, le 23/10/2012
WebAlbums is programming project for programmers. The codebase is now quite mature, and it offers a large playground where you can improve your different skillsets.
The core part is developed with Java 6 Entreprise Edition (JEE) and powered by Glassfish Application Server. Data are stored on a MySQL database, accessed with Hibernate and JPA (Java Persistance API).
The main front-end relies on HTML+CSS+JS. Java serves the differents pages with XML documents, processed with XSL transformation. The web page is based on a custom one-page interface built with JQuery and its extension plugins. Geographics information (tags and GPX tracks) are plotted with OpenLayers/OpenStreeMaps.
A plugin interface allows the java core to use OS-specific tools for the few system-dependent tasks (namely photo and video minuatures).
Finally, the new filesystem interface exports the tag and filter features to standard filesystem directories, for a perfectly transparent browsing. This involves system programming with the FUSE interface, a C-Java binding, and directory architecturisation on the Java side.
And lastly, this filesystem bindings allows building more rapidly independent application powered by WebAlbum capabilities. For instance, I built a photowall application which takes random pictures (by theme, tag, star, right, ... -- although only Theme is already implemented :) and assemble them in a wall (ImageMagick features). This is written in Python, but benefits for free of (everything) already built.
- Java 6, JEE, Glassfish, JPA, MySQL
- HTML 5, JS/JQuery, OpenLayers/OpenStreeMaps
- FUSE, VFS, C, C-Java interface
Why do I say that's it's for programmers?
I'm neither a web designer, nor a good marketer, that's why :) I won't be able to make a perfect website design and user interface. Although I did a significant step forward with the integration of a neat free template, I'm not keen on HTML/CSS layouting, I don't enjoy it. And I think that's a key aspect to sell such a tool to non-tech people ... As I said, I'm also nothing like a marketer; I guess I'm not the kind of guy who can promote the project and support people complaining about insignificant details! ;)
- see the Install page if you want to give it a try
- see Contribute if you want to help, and the TODO page for the current plans
- [Developer](wiki/Internal documentation) and User documentation will be writen one day, if there's a need!
- currently, only a map of the software stack used in the project
- and the code is currently licenced under GPL v3.
- and finally some premiminary screenshot are available.
WebAlbums is a web-application for managing collections for pictures. It's my weekend project since more than four years, and currently holds some 4000 photos, 300 tags, 500 albums and 9 themes.
Photographs are naturally organised into daily albums grouped into themes (ie, collections). Then pictures' content is described with tags. Tags allows to group, and search for, pictures sharing common aspects. Gpx files can also be attached to albums.
Themes, Albums and Tags Organization
Albums and themes are the main organisational entites. They refer directly to the filesystem folder structure.
A theme corresponds to a collection of albums, photos and tags. It can be used for instance to distinguish different living places, or different people groups (photos with family vs photos with friends).
Album are design to hold the photos from a given day. They are have at least a date and a title, and they are described by the tags of the photos they contain.
Tags allow to group pictures according to common interesting aspects. They are currently separated into three categories, WHO, WHERE and WHAT.
- WHO tags point to persons, and can include a birthdate to indicate the person age at shooting time.
- WHERE tags point to geographic locations and can be displayed on a map.
- WHAT tags should more or less describe everything else!
Carnets are text-oriented pages for talking about the pictures. It allows you to write some 'carnets de voyage' and easily integrate some pictures.
As the photo collection can be opened to the Internet, its access is password protected. Accounts should be created for each individual user, however picture access right is based on hierchical roles. The default configuration includes four roles, all, familly, friends and public. The administrator privilege can be granted to thrusted users, which will allow them to edit the informations. The application manager account should have access to all pictures, and the admin right !
By default, Albums are created with the all user visibility, but it can be changed at anytime.
Photos are created with with no right set. This means that they will be visible only if their album is visible. If the visibility right is lowered, the picture will not appear in the album or in the tag lists. On the other side, a visible photo in an album supposed to be hidden will make the album visible, but not the other photos.
- complete photo management environment (but no file modification)
- way more powerful than directory structure
- possibility to export a standalone static version the pages of a Theme, a Carnet or a set of Tags, which can easily be transmitted or published on a website.
- geo tags and gpx traces plotted on OpenStreetMaps (open layers)
- easy (for devs) to extend and adapt to your needs