[development] drupalcon: what does a brainstorming session involve?
darrenoh at sidepotsinternational.com
Thu Aug 9 05:05:06 UTC 2007
>> I have a need to come up with a room booking system (and this was
>> a part of my
>> cvs application) for work, but I also want to abstract it so that
>> it becomes
>> (almost?) a booking system api.
How about this: an API that allows dimensions, locations, and status
to be added to nodes, users, products, or whatever kind of object a
developer wishes to create. A dimension would have two properties: a
unit of measure and a direction. A location would have a start point
and an end point in all the dimensions of the object. The status of
the location would consist of other relevant properties.
Using the room booking system as an example, a hotel would have at
least two dimensions. Time would be the first dimension. It's
direction would be towards the future and be measured in nights. A
hotel would also have a dimension measured in rooms. Locations would
be room-nights. They would have a start and end point (check-in and
check-out) and a room number and quantity. Room-nights could have a
status of occupied, vacant, or reserved.
Another example would be floor space at an event. The vertical
dimension could be measured in floors and the horizontal dimensions
in feet. It could be divided into locations in advance, or customers
could specify locations for themselves from the available space.
Adding a time dimension would allow the same system to be used to
Tracking inventory in a store could be done with just one dimension:
quantity. Status could be ordered, on hand, or sold. An additional
status could be added to track the condition of the inventory. Adding
an additional dimension would allow quantity and status to be tracked
for different batches of an item.
More information about the development