I need someone to create a desktop application, running on Apple OS 10.6-10.10, that would help the user maintain a set of Keynote slides, and choose from them when creating a presentation – kind of like http://www.slidebank.com/powerpoint-database/ and http://slideboxx.com/ – except that it has to work with Keynote (the Apple version of PowerPoint).
The software itself should be pretty simple, especially since it does not have to parse the content of the files. All it needs to do is to allow the user to see, organize/keyword, group, and pick from, a set of keynote slides. It's essentially a GUI for organizing thumbnail views of a set of Keynote files, so that the user can place them in any order and have them compiled (concatenated) into one final Keynote file. The interface should be like iPhoto, in the sense that it would have a left panel with groups into which photos from the library can be placed (albums, smart albums, and keywords) and a right panel where the photos can be previewed to know which to drag into the albums.
The input is a set of files; each file is a Keynote file, but contains only one slide. Ideally these are just files kept in a directory, but could be a true database if needed (like mysql). When the program is first activated, it asks the user where these files are. Then it remembers the location (and if it disappears later, it asks again). The folder of files will not have any folders in it (only files; anything that's not a valid Keynote file should be ignored and logged to a log as "invalid - cannot be imported"). The software will need to generate thumbnail images of each slide (or I have code that does it automatically, in batch, if that's easier – it only has to be done once for the whole library, and then later when individual slides are added to the library).
The software should have a simple, convenient GUI that displays the library of all available slides. The slides can be grouped into an arbitrary number of named and potentially nested groups (shown with indents for each sub-group), and can be associated with one or more keywords (which the user can define and change as needed).
There are two main windows: the file tool and the light box.
The file tool window has two panels:
Panel A) The user can start creating groups with a "folder" thumbnail icon, in that same left panel, listed alphabetically above all the slides. The only group that exists at first is "Unassigned" and all images start out in that folder. The user then can drag any file from Unassigned into a chosen group. When he/she drags them out of Unassigned, they leave that folder and appear in whatever folder he/she added them to. The groups are like Albums in iPhoto. Everything is arranged vertically, with indents to show slides that are members of a group. Folders can be nested indented (to a max depth of five). When a folder is selected, its contents are shown to the right (in panel B); when a single file is selected, its thumbnail is shown to the right (in panel B).
Keywords are assigned like this. You double-click on the file, and a small window opens up with a list of keywords and you can add/remove from the list of possible keywords, or tick each of the existing keywords "on" or "off" for that file. Then the keywords are shown under each file when it's shown in panel B. Again, very much like iPhoto functionality with keywords. There is a search bar, and when the user types text into that search bar, the only slides shown in the lists on the left are the ones that include that text either in keywords or in the title of the file itself.
The second (separate window) is the "lightbox", onto which a user can drag individual files either from the file list or from inside a group (folder). He/she can drag them between any existing files in the lightbox and rearrange the order of the files in lightbox by dragging and dropping. The files are shown in lightbox as their thumbnails, and they move as needed to keep the order the user establishes.
In addition to organizing slides into groups and searching slides by keyword, the user can:
A) double-click on any one slide to open it in Keynote or any desired application (and when he/she Saves the file, it gets updated in the master database folder)
B) hit a button called "Compile" which will take the files chosen in the Lightbox, in order, and concatenate them into a single Keynote file to be saved where-ever the user wants (ask user, defaulting to Desktop).