Data Modeling (sorry - sort of long)

Hello
I am not a developer. I have a project that I plan to have developed
(in RoR) for a web-application to offer as a SaaS, and have spoken
with several developers, but, until I have confirmed interest in the
project, I cannot have it written. In the meantime, I am preparing a
presentation (slideshow and website) about the possible application.

One portion of the project was easy for me to create screenshots for;
I realize that the final project may not be exactly what I have
designed, but close enough to not make a difference to my prospective
users. The next part is more complicated for me, and I would like the
community's feedback on which of the following ways of handling the
task might be the most feasible in order for me to have the output
that I want/need. As I have not made my final selection yet for a
developer, it would be inappropriate for me to ask them.

The subject is tracking nuances about contracts. The details tend to
want to divide themselves into broad categories (such as compensation,
royalties, advance against royalty, preliminary fee, fixed royalty,
favored nations, merchandising, cast album, etc etc etc).

Each broad category may have one or more terms associated with it (eg,
ROYALTY sub-categories would be: pre-recoupment, pre-recoupment with
amortization, post-recoupment, guarantee). Some of the terms are
'stock clauses' which are used frequently.

In my head, I have several ways of approaching this, all of which
would lend themselves to different UI. I would like to know if RoR
lends itself more to one than another - AND WHICH WILL YIELD THE
EASIEST way for me to have the online or printed report/view that I
need (see bottom)

1. simple table, along the lines of an entity-attribute-value model.
I know this is widely discouraged, so I'll pass on this.

2. Finite
here, I would have to think of every conceivable term that might
appear in a contract, and create a field for it. The field value
could be a picklist/valuelist of the stock clauses, with the user able
to add one on the fly.

I have dismissed this option, as it would be virtually impossible for
me to think of every single term that might appear. But, as I write
this, I am second-guessing myself. Perhaps it FEELS like an unlimited
# of terms, but perhaps they really do fall into a defined list, and I
could do it this way.....

3a. what I think of as an exploding star.
each broad category would have its own 'table', with basically 2
fields (one for sub-category and one for description of terms). I
envision the interface to have the contract table info at the top of
the screen, with separate tables underneath which expand/collapse

3b. A hybrid between option 2 and option 3
Little tables for each category, but each little table has specific
fields for each possible term type

4. Category and tag
Here, the UI would be such that the user selects a Broad Category,
enters a description (perhaps from a picklist), and then assigns
'tags' - and the tags would be, in effect, the sub-categories. I
think I would have to restrict which users are permitted to 'create'
categories or tags, to ensure data integrity and all that jazz.

They all have benefits, but the user interface for them would be quite
different.....

I envision 2 styles of output:

a. 1st column is the entity - the person the contract is with;
subsequent columns need to be selected by user from the associated
tables... I think this is pretty easy and straightforward. It's
fine, but means we can only view a handful of terms at a time before
it becomes unwieldy from left-to-right.

b. this is my premier output and a primary selling point of my
application. This is what I think of as an n-up report, or a textual-
pivot, or a 'compare these cameras' style. In this output, I'd like
the user to be able to select a finite number of contracts (let's say
5), and have the info from the parent table be the columns (ie,
people's names), and have the rows be the associated values -
preferably with each broad category of items being able to open/
collapse... and/or have the user be able to specify which associated
values to include/exclude.

These 2 reporting styles are so important to me that I am willing to
do whatever UI for getting the information into the database is
necessary, in order to have the desired output, without causing
extensive pain to my developer or to my bank account.

Advice? Suggestions?
thank you -
Marion

Marion T wrote:

Hello
I am not a developer. I have a project that I plan to have developed
(in RoR)

Why have you chosen Rails before finding a developer? Rails is great,
but in most cases it's more important to find a good developer, and let
him or her pick the technology. (Of course, if you have some external
requirement for using Rails, that's a different matter.)

[...]

The next part is more complicated for me, and I would like the
community's feedback on which of the following ways of handling the
task might be the most feasible in order for me to have the output
that I want/need. As I have not made my final selection yet for a
developer, it would be inappropriate for me to ask them.

I believe you're going about this backwards. Make your final selection
of developer, and *then* have this discussion with the developer. This
is the sort of decision that the developer should be involved in -- not
a bunch of random people on a mailing list. :slight_smile:

Best,

@Marnen -

I understand exactly what you are saying, however I do not have the
luxury of finding a developer, designing the application, and then
making my presentation.

I cannot afford to do that.
I have to make an estimated presentation of what I envision it looking
like.

I am at RoR because any web-application that I like the look of was
written with RoR.

I figured it was worth a shot to pose the question here.
I'll do my screenshots based on my best guess

Marion

I agree with Marnen. To add.. Your thinking to hard. Sounds like you
have just enough knowledge to be dangerous. Find a good developer and
then let him/her do there job. You come up with how the application
should be interacted with and then let the developer figure out how
that is going to work...

Also, you're asking *specifically* UI design questions, which has
*nothing at all* to do with the underlying web framework (I'm
prettttty sure most of the good looking websites you've seen aren't
backed by Rails (but again that has nothing to do with anything)).
Sounds like finding a good designer is your top priority right now.

So, what I'm looking for is a "platform-agnostic web-application
designer?"

Marion

Marion,

As is usually the case, the form of your question contains the germ of
your answer. Keep in mind that you are the domain expert, you need to
be able to converse with others at many levels and need to have a
clear and consistent story for all.

Focus on:

1) What is the unique hook that makes your application stand out?

This is the part of the work that will make your users smile and
wonder how they did without you. Your note clearly indicates what you
see as important:

These 2 reporting styles are so important to me that I am willing to
do whatever UI for getting the information into the database is
necessary, in order to have the desired output

Detail your expectations for the "output forms" - you want to be as
clear as possible about the parts you see as important. Use all media
forms at your disposal to represent and present your idea.

You don't want to reduce your vision to avoid:

extensive pain to my developer or to my bank account.

Remember, you're working with crayons and napkins here. No limits on
what is possible - get the idea out for discussion.

2) What are all the various pieces of information you want to
capture?

This is an exercise that will help you get ready for your developer.
You are the domain expert here. You can run through source and
destination forms and extract the items you want to capture.

Don't worry too much about relationships between items here - just
make a list. At different times I've used little post-its, magnetic
chips on a white board, sharpie and paper, emacs org mode.

Whatever works for you to identify the items of interest.

3) What are your expectations for the end-user experience in terms of
both the UI and performance?

Will you support access via hand-held devices? other than html?

How many times can the user say "hourglass hourglass" between request
and response?

You'll notice that I haven't said anything about database design or
any other implementation detail. These will fall out of your data
description and end user expectations - they are effects of the
design, not causes.

Good luck, and have fun

Rick

Rick -

this was really really really helpful.

You're exactly right - and, in fact, gave me the exact answer I need.

I do NOT need to show the input screens for this section AT ALL!

All I need to show, for my current purposes are:

the complex questions that I know my users will ask the system

the resulting report

the won't care about the input screens at all!!!!

Thank you very very much Rick.
I've taken on a big project and it's easy to lose sight of where I'm
going and what I need at the moment.

Marion

Marion T wrote:

So, what I'm looking for is a "platform-agnostic web-application
designer?"

Marion

Any good Web designer is (or can be) platform-agnostic. UI design and
implementation are two different things. I often wear both hats on
freelance projects, but usually in succession -- design at least a
rudimentary UI, then implement it.

In any case, it shouldn't be hard to find a UI designer who can make
pretty mockups to impress in your presentation, and which you can then
hand to your developer.

Best,