{"id":549,"date":"2008-06-10T13:33:02","date_gmt":"2008-06-10T03:33:02","guid":{"rendered":"http:\/\/www.somethinkodd.com\/oddthinking\/?p=549"},"modified":"2008-12-03T00:43:29","modified_gmt":"2008-12-02T13:43:29","slug":"requirements-for-an-online-photo-site","status":"publish","type":"post","link":"https:\/\/www.somethinkodd.com\/oddthinking\/2008\/06\/10\/requirements-for-an-online-photo-site\/","title":{"rendered":"Online Photo DB: Stage 1 &#8211; Problem Statement, Loose Requirements"},"content":{"rendered":"<div class=\"aside\">This post is part of the <a href=\"http:\/\/www.somethinkodd.com\/oddthinking\/tag\/online-photo-database\/\">Online Photo Database project documentation<\/a>. Learn more about the project&#8217;s <a href=\"http:\/\/www.somethinkodd.com\/oddthinking\/2008\/12\/03\/online-photo-database-project-status\/\">current status<\/a>.<\/div>\n<p>As a long-term project, I wish to re-host my photographs. I believe you do too, but perhaps you haven&#8217;t realised it yet. Therefore, I am sharing my thoughts.<\/p>\n<p>The underlying problem is that I want to be make the photographs I take easily available to the people who are in the photographs.<\/p>\n<p>I currently use four techniques:<\/p>\n<ul>\n<li><strong>Old-School<\/strong>: Photo albums and boxes of stray photographs and slides.<\/li>\n<li><strong>Limbo<\/strong>: Files sitting on my hard-drive and backed up on DVD.<\/li>\n<li><strong>Custom Software<\/strong>: I wrote some custom web software (starting with a burst of development in 2002, slowing down to a trickle by 2005). It hosts around 4000 photos.<\/li>\n<li><strong>Facebook<\/strong>: Since around November 2007, when an event is organised on Facebook, I have put up the photos of it there. That accounts for about 400 photos.<\/li>\n<\/ul>\n<p>None of these techniques meet my requirements.  <\/p>\n<p>Which raises the question: what are my requirements? Are they really that special?<\/p>\n<p>I am glad you asked. I don&#8217;t think they are particularly special to me; I think you have most of the same requirements &#8211; and possibly some more. Let&#8217;s have a look.<\/p>\n<h3>Photo-database Requirements<\/h3>\n<ul>\n<li>The images shall be available on the web, accessible by a typical web-browser, without requiring registration for the typical user.<\/li>\n<li>Print-quality (e.g. 0.5-1.0 MB sized) images shall be available.<\/li>\n<li>Desirable: Archive-quality (e.g. 6-10MB) images shall be stored.<\/li>\n<li>Web-quality (e.g. 30-200 KB) images shall be displayed by default.<\/li>\n<li>It should automatically generated thumbnail and web-quality images based on the originals.<\/li>\n<li>Desirable: Customisation of thumbnails and web-quality images shall be available (e.g. choosing to crop over shrinking.)<\/li>\n<li>Critical: I own all images I upload. Me! Not you! Me!<\/li>\n<li>I own all meta-data that is placed on an image. That&#8217;s right. Let&#8217;s be clear about this. Me!<\/li>\n<li>All images and meta-data is either backed up to, synched with or sourced from my hard-drive that I can hold in my hands, read with my own software, and put under my pillow at night.<\/li>\n<li>Don&#8217;t waste my time with quotas&#8230; Okay, I will accept a quota that is an order of magnitude greater than I will ever use. I currently use 2-3 GB online and 40-50 GB on my hard-drive, so don&#8217;t bother me any quota less than 0.5 TB.<\/li>\n<li>Let me group photographs by event.<\/li>\n<li>Desirable: Let me group events by type. (e.g. Let the <a href=\"http:\/\/www.somethinkodd.com\/oddthinking\/2005\/06\/24\/blessed-are-the-hobbyists-for-they-shall-inherit-the-web\/\">mibologists<\/a> view all of the Mibology Conventions.)<\/li>\n<li>I need the ability to tag who is in the photograph.<\/li>\n<li>I also want to tag places, pets, things and activities.<\/li>\n<li>It was a big insight after a few years of tagging photos to realise I want to tag performers by their real names and by their stage names too.<\/li>\n<li>Desirable: Being able to tag particular parts of the photo.<\/li>\n<li>I would like the ability for other people to tag my photos.<\/li>\n<li>Sometimes, I will only know the person&#8217;s first name. Sometimes, I will know their name, email address, web-site, Facebook ID, etc.<\/li>\n<li>There will be multiple different people with the same name; let me add secret comments to remind me which one is which.<\/li>\n<li>Their email address should never be published on the web, but a link to their web-site should be!<\/li>\n<li>Sometimes, I will correct a person&#8217;s detail. It should update everywhere.<\/li>\n<li>A key reason for tagging is so people can find other photos of the same person.<\/li>\n<li>Even in different albums on my site.<\/li>\n<li>Desirable: Even on different web-sites, such as Flickr or Facebook.<\/li>\n<li>Some photos are not suitable for wide distribution. Have some decent concept of privacy. Think about Google when you come up with that.<\/li>\n<li>I want to tell people when photos of them become available. No-one has ever complained to me that such an email is spam.<\/li>\n<li>Comments can be fun<\/li>\n<li>Comments only work if you can subscribe to comments; especially if you are in the photo!<\/li>\n<li>Sometimes, I am not the photographer; let me assign credit.<\/li>\n<li>Sometimes, the photographer is not the copyright owner. Let me assign ownership.<\/li>\n<li>I often take lots (way lots) of photographs. Big collections of photographs can be boring and scare people off. The perceived quality of the album is (I believe) proportional to the <em>average<\/em> quality of the photographs, not the size. Thus, adding photographs to an album may actually reduce its overall value. Therefore, I want to be able to rate the quality of the photographs, and only present the best ones to the casual user. Interested parties should be able to lower the quality threshold to see more.<\/li>\n<li>Read my EXIF data; particularly date and time info.<\/li>\n<li>Desirable: Some control over the ordering. Particularly, I do <em>not<\/em> want to be forced to have photographs sorted by time-stamp.<\/li>\n<li>Support search of tags<\/li>\n<li>Support search of album names<\/li>\n<li>I need to be able to find an original photo on my hard-drive based on an edited on-line photograph. Store some meta-data to help me do that.<\/li>\n<li>Help me out with the tags; I shouldn&#8217;t need to re-type the whole tag every time.<\/li>\n<li>Be wary that I have over a thousand different tags. You need to scale!<\/li>\n<li>Let me keep images in a draft state until I am ready to publish them.<\/li>\n<li>Desirable: RSS and ATOM feeds, for the win!<\/li>\n<li>Next and Previous buttons when looking at a large image.<\/li>\n<li>Desirable: Slideshows<\/li>\n<li>Desirable: Don&#8217;t be scared to put more than 5 thumbnails on a page.<\/li>\n<li>Fast viewing is good. Super-Duper fast viewing is perfect.<\/li>\n<li>Cheap is good. Free is perfect. The biggest issue with &#8220;cheap&#8221; is that one day it might become expensive.<\/li>\n<li>I already have a decent web-host. The incremental financial cost of hosting another application is pretty close to zero.<\/li>\n<li>I take many photos, which makes optimising the administration work-flow important. About 1 minute face-time per photograph would be desirable.<\/li>\n<li>I want to see constant improvement to the software, while I sleep.<\/li>\n<li>Mandatory: Ability to migrate from my old software to the new system: That means an API of some description. That also means having tags that are <em>not<\/em> limited to some part of the photograph.<\/li>\n<li>My current software permits me to construct a URL like so: example.com\/allPhotosOf\/KeanuReeves. That way, if I am ever at a party with Keanu Reeves, I can tell him the URL to see all the photos of him, without needing access to a computer. That&#8217;s nice (and relies on a search and non-clashing subject names!). It is desirable to be able to keep doing similar things.<\/li>\n<li>If you are going to keep viewing metrics, the metric I want to optimise is &#8220;How long does a visitor stay?&#8221; so be sure to tell me that.<\/li>\n<li>Anti-requirement: You might need the ability to do simple edits to the photos online. I don&#8217;t; I use Photoshop.<\/li>\n<\/ul>\n<p>That will do for now; I will probably come back and update these with some more requirements later. <\/p>\n<p>Next step is to look at my bespoke software, Flickr, FaceBook, Coppermine, Picasa Web, etc. (any other suggestions?). I will see which of the requirements they fail to meet. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>As a long-term project, I wish to re-host my photographs. I believe you do too, but perhaps you haven&#8217;t realised it yet.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[31],"tags":[261,284,48,71,95],"class_list":["post-549","post","type-post","status-publish","format-standard","hentry","category-geek","tag-facebook","tag-online-photo-database","tag-photography","tag-requirements","tag-web"],"_links":{"self":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/comments?post=549"}],"version-history":[{"count":2,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/549\/revisions"}],"predecessor-version":[{"id":823,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/549\/revisions\/823"}],"wp:attachment":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/media?parent=549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/categories?post=549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/tags?post=549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}