- Ex-Lead G1 Dev
- Some-time G2 Dev
__MAGIC_REMOVE__10906__
Gx Feature/Requirement Proposal
These are split between pure developer/technical requirements, and user-level features
My take on Gallery
I use gallery both for purely personal, and for semi-professional reasons, and I can see the application from a lot of different angles. The plugins and features that I use on my personal site are not the same as I use on my professional. For instance, my professional site is embedded into Drupal which allows me to manage blog posts, users, etc. all in a single location. The personal site is purely a gallery of images used by both family and friends.
Features
- SEF album/image urls
- Image security
- Embedding Support
- Uncomplicated Permissions
- Blocks (Random/Newest Item/Album, etc)
- User accounts
- User Groups/Roles (think Drupal)
- Automatic user path (ala userdir module)
- Unlistable paths - Imagine a directory that's mode 0300 - execute, write, but no read. You can navigate the path, but you can't see the contents. However a deeper path may be readable. Useful for having a "/People", but not letting people browse it, for instance.
- Hidden folders - Imagine a dot-file on UNIX. Unless you know/look, you won't see it.
- Passworded albums
- Full theme (HTML) and skinning (CSS) support
- RSS/Atom (Preferably atom)
- Sitemap
- Keywords
- Search (Date, Keyword, Text, EXIF/IPTC, etc.)
- EXIF/IPTC
- Quotas
- XML-RPC/SOAP/REST API for manipulating albums, options, etc.
- Upload Methods - Direct/Web, Local, API (Desktop, Firefox extension, etc. There has been a volunteer to help build a PHP-GTK desktop app for Gallery)
- Slideshow
- Randomized Filenames?
- Comments, Comment Anti-Spam
- Migration?
- Restricted User Signup (i.e. by invitation from another user with an account/permission)
- Theoretically, this could be a secondary account structure. Accounts created by another user for viewing their albums are not global, but are local to only that user's albums. Might be complicated, but I think this is an interesting idea.
Technical
- Plugable memcache/eAccelerator/APC/xcache support for caching and performance
- Use PHP 5.x features: Exceptions, SPL, Interfaces, ...
- No error messages during normal operation with E_STRICT enabled. Even with error messages turned off, triggering errors is a performance hit.
- Utilize existing framework (Bharat mentioned Django, I'm evaluating Zend, etc.)
DO NOT WANT
(Just imagine your favorite LOLcat)
- Support for every platform under the sun
- Support for every DB under the sun
- Support for non-image/non-movie formats (MP3, Flash, text, etc.)
- Open User Signups
- Multiroot
- Link Items
- Rating
- DAV
- Nokia Image Upload
- Windows Publishing
- Cart
- Zip Download
- eCard
- HTTP Auth
- Rearrange
- ANY blog capabilities. This is Gallery - if you want Wordpress, install Wordpress.