[development] drupalcon: what does a brainstorming session involve?

Darren Oh 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  
rent space.

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 mailing list