I was able to get an experimental prototype up and running for this - thanks to DART. It's essentially a group photo sharing app.
A photo mosaic is used as the map for navigating a large collection of images. Users are able to click on the mosaic's "pixels" and view/retrieve the images used to produce that portion of the mosaic. There may be simpler approaches, but here is my list of components from development to deployment:
- DART Web App - accesses / requests images / navigates 20,000+ image mosaic
- DART Server App - middleware interacting with MongoDB; handles image requests from browser, tells client where to find images related to a region of the mosaic
- DART Utility Programs - various small command line programs to process files, edit names, manipulate directories etc.
A number of other components run alongside DART to round out the system:
- osaic 2.0 (Python) makes mosaics, slightly customized to output image index tracking location of component images
- WebApp Framework (bottlePy) - uploads images to server, returns images to client, produces gallery of images
- Webserver (CherryPy) - runs behind bottlePy to handle mainstream web transactions
- Database (MongoDB) via mongo_dart - built 20,000+ index and image description
- Image Store - Individual images were stored in directory structures on Ubuntu
The DART environment has been great for building and debugging this kind of networked/web app. It's evident how it keeps getting better. DART - the language, tools, and libraries - worked great and the performance is surprisingly fast. Thanks for DART!