• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

UrlyBird Functional Requirements

 
Vrinda Werdel
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Guys,

I am in the process of understanding the UrlyBird (1.3.2) functional requirements.

Some functional requirements (from a CSR/GUI perspective) that I could think of are:

1. Reserve rooms.
2. Cancellation
3. Checkout.
4. Search.

The fourth option is clearly spelled out in the assignment. While the rest is based on my undertanding of the DBMain interface given as part of the projet.

Here are some of interpretations about the booking logic.

1. When you book a new reservation, you just end up decrementing the size value and decrement when increment when somebody checks out.

2. How do we keep track of which customer is occupying which room.

3.What does the 'owner' database field indicate.? The description given is "Customer holding this record". Is it fair to assume that this field will have the name of the latest entry who is occupying the room (say the 3rd person in a room of size 4.)?

Appreciate any inputs.

Thanks

Vrinda
 
Colin Yates
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I don't think the requirements ask you to allow them to explictly cancel the reservation so don't implement this as it is beyond scope.

I also made the decision (and documented!) that only one customer can reserve a room. If I booked a 4 bedroom hotel room and turned up to find you in it as well, I would not be best pleased. No offence

Basically do the *absolute* minimum you can sensibly do to pass. They are not expecting you to write a real world application, only to satisfy their somewhat artificial requirements.
 
Vrinda Werdel
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Colin. Basically, I want to know what needs to get updated when one does the booking. It apprears from your inputs that parameters like 'size' are just additional information provided and do not participate in any business logic. In that case the only parameter that undergoes the change when booking/checkout is made is the "Owner" column in the record, as rest appear to have a read-only look to them. Am I getting it right?

I would really appreciate your responses and responses from other ranchers, as I am in the crucial phase of my project design.

Thanks

Vrinda
 
Paul Bourdeaux
Ranch Hand
Posts: 783
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Vrinda,

It sounds like you are on the right track. I have a different version of the assignment (I have the B&S), but the overall functionality is basically the same. The only field that I am required to update from the GUI is the owner field (when a customer books a subcontractor). I suspect this is the same for the URLy bird version.
 
Vrinda Werdel
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Paul.

That helped.

Vrinda.
 
Nicholas Cheung
Ranch Hand
Posts: 4982
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In addition, do remember to employ 48-hour-booking rule. Although this is not a MUST requirement, but some people got auto-fail when they did not employ that rule.

Of course, implement it or not, is on your own risk.

Nick
 
Vrinda Werdel
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Nicholas. and apologize for this delayed acknowlegement. While we are still on this topic, I need to get some of my doubts resolved.

1. I have a field in my dbfile by name 'Date available' which has a description that goes like this: "The single night to which this record relates, format is yyyy/mm/dd". I want to know the importance of this field in the context of the assignment.

2. Also, does this field impact the 48 hour rule implementaion?

3. I need to implement a method in my Data class by this signature:

// Returns an array of record numbers that match the specified
// criteria. Field n in the database file is described by
// criteria[n]. A null value in criteria[n] matches any field
// value. A non-null value in criteria[n] matches any field
// value that begins with criteria[n]. (For example, "Fred"
// matches "Fred" or "Freddy".)
public int [] find(String [] criteria)
throws RecordNotFoundException;

Does this mean that I will need to have multiple search text fields on GUI?

Appreciate your inputs.

Thanks

Vrinda
 
Eric Chang
Ranch Hand
Posts: 113
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
1. I have a field in my dbfile by name 'Date available' which has a description that goes like this: "The single night to which this record relates, format is yyyy/mm/dd". I want to know the importance of this field in the context of the assignment.


You will need this field for the 48 hour rule.

2. Also, does this field impact the 48 hour rule implementaion?


The Date Available field is used (according to the specifications) only for the 48 hour rule.

3. I need to implement a method in my Data class by this signature:

// Returns an array of record numbers that match the specified
// criteria. Field n in the database file is described by
// criteria[n]. A null value in criteria[n] matches any field
// value. A non-null value in criteria[n] matches any field
// value that begins with criteria[n]. (For example, "Fred"
// matches "Fred" or "Freddy".)
public int [] find(String [] criteria)
throws RecordNotFoundException;

Does this mean that I will need to have multiple search text fields on GUI?


No, you only need to have the ability to search on the Name and Location as the requirements state that the user can search on the Name and Location...however, the implementation of the find method should allow for searching on all the different fields of a record.
 
Vrinda Werdel
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Eric.

1. Regarding the 48 hour rule implementation, how do we use the 'Date Available' field?. In my db file, I have dates that range from 2004 to 2005.

2. For the find method, the criteria is an array of strings. How do I separate out the name/location to two different strings unless they are delimited? or is it perfectly valid to send a single string as part of our implementation?

3. Also, the find criteria returns an array of ints. If I want to display the search results, where would I get them? Should I query the cached records for these record numbers (obtined as an array of ints from the find method) and send the details back to the gui?

Appreciate your feedback.

thanks

Vrinda.
 
Eric Chang
Ranch Hand
Posts: 113
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
1. Regarding the 48 hour rule implementation, how do we use the 'Date Available' field?. In my db file, I have dates that range from 2004 to 2005.


There are plenty of other threads here that talk about the 48 hour rule...I recommend you doing a search for the text "48" and you'll probably find the exact answer you need.

2. For the find method, the criteria is an array of strings. How do I separate out the name/location to two different strings unless they are delimited? or is it perfectly valid to send a single string as part of our implementation?

Each element in your String array should be a field of a record. Therefore, your name should probably be the element at index 0, and location would be the element at index 1.


3. Also, the find criteria returns an array of ints. If I want to display the search results, where would I get them? Should I query the cached records for these record numbers (obtined as an array of ints from the find method) and send the details back to the gui?


That is one way to do it, but also remember that you have a read method that takes in an argument of a record number and returns an array of Strings (see Question 2), which you could use.
 
Vrinda Werdel
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Eric, thanks for the answers. I have one more clarification tho'. In the search text field, when you (typically) enter one continuous string, how can I decompose it into two strings one representing the name, other the location (Unless there's delimter between the two and the CSR user is trained to punch the data that way). I hope I am explaining things coherently. That's the reason I was asking if we need to have two search text fields one for name and other for location.

Pl. help me get this.

Thanks

Vrinda
 
Vrinda Werdel
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ranchers,

I am stuck here. How did those of you who got the same assignement, implement this?

Thanks

Vrinda
 
Neil Renaud
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The design is up to you as long as you can justify your reasoning. If you take a look around the internet there are lots of places where you have the ability to search on more than one criteria. I'd suggest having a look at some of these and see how they do it. (One example would be the search page on these forums)

Neil
 
Eric Chang
Ranch Hand
Posts: 113
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Why would you have one single search text field? If you are searching for Name and Location, wouldn't it make sense to have 2 search text fields?
 
Uwe Schäfer
Ranch Hand
Posts: 52
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
to get this straight:

even if the given interface suggests, that the "creation" of records should be implemented, the GUI does not have to ?
in consequence: the exposed business adapter does not have to either !?

i don�t know.
 
Uwe Schäfer
Ranch Hand
Posts: 52
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Another question:

on creation my interface throws a DuplicateKeyException.
what the heck is this key supposed to be ?

a composition of name/location ? a composition of ALL fields (apart from owner) ?

i just can�t think of any combination of fields i would call a dupe.
(think of a corporation [having one clientID] that books a bunch of rooms [all the same spec in the same hotel] for a specific date for their employees to take part in some event.)

even this seems possible and absolutely reasonable.

sure. this should lead to isolation of that dupe-detection logic.
but, afraid as i am of auto-failure, i do not feel safe choosing to ignore and document it.

cu uwe

[ March 15, 2005: Message edited by: Uwe Sch�fer ]
[ March 15, 2005: Message edited by: Uwe Sch�fer ]
 
Vrinda Werdel
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Is it possible to know from people who passed this assignment, about how they implemented this?

Vrinda
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic