From Makers Local 256
Jump to: navigation, search

Photo Gallery Quest

I want a photo gallery. I would prefer No Flash, and No Java. I want some features available to me internally to my own network when hosted on a LAN. I want some features for presenting the gallery over the web to friends/family. I am torn over my desired feature set and use set. That means I will have to go over all the features at some point and re-organize them at least, or split into two projects? but I want common information between them...

Desired Features

I want these features:


  • Browser Support
    • Firefox - required
    • Opera - trending required
    • Chrome - required
    • IE - required. I want remaining grandparents and parents to be able to use it... :/
    • Safari - optional. we may pander to this.
    • DLNA - I want my TV to browse this if I ever get one that supports it.
  • Thumbnails - required
    • Automatically generate on mass/single upload
    • Allow editing via selecting sub-region (single upload and go-back-edits)
    • How / where are they stored?
  • Slideshow - required
    • Launch a slideshow of images returned from a label/tag/filter/search
  • Users - trending required
    • Some stuff needs to have restricted access.
    • Some stuff can be open to Anonymous...
    • Lock out pictures/tags/descriptions/labels via user permissions
  • Search - required
    • I want lots of it.
    • Yes, I want still more of it.
    • I want to search comments, descriptions, tags, labels, picture metadata.
    • Search needs to also work like a filter.

Labels and Tags

  • Labels - required
    • Work like albums.
    • A picture can thus be in multiple "albums" - this can handle Sets into Collections too.
    • Some will be automatically generated based on when picture was taken, but thus can be "hidden".
    • hidden labels exist, but may not show up anywhere until they get used somehow. I dunno, this needs more thought.
    • Automatically generate Year, Month, 'Year and Month' at least.
    • Labels will be searchable! and combinable... '2011 AND Christmas'
    • If we have descriptions, then these can have one.
    • Tag / Label cloud
  • Tags - trending required
    • work similarly to how they do in lots of places... you tag people/pets/things
    • Would really like face recognition, and then a place to review "pending tags" that haven't been assigned yet.
    • Would really like people/pet/things recognition in tags, so if I tag you a few times, it learns who you are and automatically tags you next time.
    • When adding, store a list of previously used Tags to select from so you don't always have to write it up fresh


Reads picture metadata to get date taken, camera, anything we care to know or search by really.
  • Mass Upload - required
    • Ability to upload .zip, .tar.gz, etc...
    • Allow Users to do this?
  • LAN Upload / Monitoring - trending required
    • Can scan/host from local folder over LAN (mounted filesystems, even if non-local?)
    • Can poll the folder for updates periodically
    • Users can add network shares on local machines to the poll list?
      • Should we force them to upload it
      • or just allow them to add it for browsing now, and not save the store?
  • Single Upload - trending required
    • Allow Users to upload photos
    • Allow modifying thumbnail, description, labels, tags, etc.

Text and metadata

  • Comments - trending optional
    • Allow users to post comments
    • Allow anonymous to post comments?
    • Have some captcha system when anonymous?
  • Descriptions - trending optional
    • While not required on all pictures, if we're gonna have them, they have to be simple to add and be MASS EDITABLE.
    • Must be able to edit descriptions on all pictures uploaded/labelled at once. One save action for all.
    • Need some way of storing Descriptions for Labels.
    • While we're at it, we might can store Descriptions for Tags too... at least for Pet/Thing tags...
    • Dang it, now we need to lock descriptions down to user-level permissions too...
  • Ratings - trending optional
    • Ratings might be cool. Some way of people indicating that they "like" a picture at least.
    • If we have them, then we have to be able to view the highly ranked/liked ones.
    • Do we want "dislike" or negative rankings?

Points of Interest

  • Support selecting images to send to some online print services? Is this a thing?
  • Have a different version of site /layout for mobile/smaller screens
    • perhaps separate versions for some of the more common phone, tablet, netbook resolutions.
  • Consider tossing around the idea of a version of the site that works well in links (lose the images, but keep descriptions and as much search as possible, then just have dl links to images). academic exercise?
  • Have it support pulling images from a bigger image hosting site like picasa or flickr and this just being a new way of presenting them.
  • Keep support for handling everything from a folder for an internal Intranet/LAN photo browser.
    • keep this in mind when configuring. the photos/galleries/labels/tags are independent of where they hosted/point of access.
    • A photo can have multiple locations and change which one is displayed based on where the site is accessed from? Craziness!
    • This would probably mean we need to be able to upload images from within the gallery itself to the LAN/local store to the public/web store if they can be separated.
    • Also need to be able to specify remote store later for images that were already uploaded prior to gallery initialization. This would need to be a readily-massive/quick/friendly/don't-make-me-stab-monitor-repeatedly type interface.
    • Need some way of indicating when viewing thumbnails/single-images whether an image is local or remote.
  • Consider allowing drag-n-dropping images around to make a slideshow in a desired order, then potentially exporting the slideshow?
    • Using this beast to make slideshows to burn on DVD's/give to family would be nice.
    • Maybe save the slideshow as a link against a user so they can link it in addition to downloading it?

More stuff as I think of it or get frustrated by how something works...

Existing Software









CakePHP + Flickr