Everything ahmwma pointed out is a great place to start!
Decker is a very flexible medium, so there are many ways one could go about building something rolodex-like. I thought it might be useful to demonstrate one possible approach. In the video below I'll build a very simple card file without writing any code. Note that for the sake of expediency I use keyboard shortcuts to copy and paste (ctrl+c/ctrl+v as usual), navigate the deck (arrow keys), and I double-click widgets while in "Widget" mode to edit their properties.
- I begin by turning on the toolbars (to save myself some clicks) and start a new deck.
- Import the "Deckbuilder" font from the "fontedit.deck" example to make a nice title.
- I Make a new card, and create some fields with information about my first contact, Lily. I can drag-and-drop images I've prepared previously into Decker.
- To make it easy to get back to the title card, I create a button and use the "Action..." dialog to make clicking on that button take me to the first card in the deck.
- I can then manually make a copy of Lily's card and replace all the info with relevant details for my next contact, Phinxel.
- To make the deck searchable, I copy and paste in the SearchEngine contraption, which lets me search the text content of all the widgets in each card and produces a clickable link to cards which match my search term.
- In order to make the index a little bit more useful, I rename each of the cards to correspond to their heading.
I could then continue to refine the deck by adding a little bit of scripting to automate the process of creating new cards:
- I make another duplicate of Lily's card, rename it "template" and hollow it out, taking care to give the field containing the heading a name so I can refer to it easily in the future.
- Just to keep things organized, I move the template card to the second position in the deck.
- On the title card, I make a new button and give it a script (shown below) which copies the template, prompts the user for a name, uses that input as the card name and heading field contents, and then navigates to the newly-minted card.
- Using that button I now have a more streamlined workflow for duplicating cards.
The above script in copy-pasteable form:
on click do c:deck.paste[deck.copy[template]] n:alert["card name?" "string"] c.name:n c.widgets.name.text:n go[c] end
There are lots of fancier ways to approach this sort of problem which we could get into, if you're interested, like using Contraptions to define rolodex cards as a standardized "form" that you can update in one place and keep a consistent style across all your entries, or using grids and Decker's query language to make more of a spreadsheet-like or "CRUD" application as demonstrated in the 5GUIs example.
The key thing to remember about Decker is that there doesn't need to be a hard separation between "writing an application" and "using an application"; the world is plastic, and it's fantastic!
Does any of this help point you in the right direction?