A contact manager application that can serve as an advanced Pylons tutorial, and also implemented in TurboGears 2, or embedded in a larger application. Use Genshi?
Model
We're considering a few models, all using SQLAlchemy.
Simple model
Person: name, address, phone, email, URL, comment (textarea).
With tags
Instead of categories, have a list of tags. Ship with two initial tags: "Personal" and "Business". Allow the user to add/modify/delete tags, and to apply one or more tags to each person. The person form can have a long multiselect control or a table of checkboxes to choose the tags. The model can have a table of person-tags, where the presence of a record indicates the person has this tag.
Many addresses
A person can have multiple of everything except name.
Person, Addresses, Phones...
With categories
Allow the user to create any number of category pulldowns, where each pulldown has a title and a list of string options. (The implementation may use numeric identifiers if it wishes.) For instance, "type" may be friend, business, acquaintance. "Location" may be CA, NY, IL, Germany, UL. "Status" may be active, inactive, moved. These should appear as pulldowns on the person edit form.
When adding a category pulldown, existing persons should have the blank option preselected. (Bulk SQL update, not ORM.)
Categories: name, description
.