UC Overview - yshehab/SchoolRoomBooking GitHub Wiki
Note: Some of the descriptions of these use cases have been updated while being worked on. For the most current version see the coordinating methods in the LettingCoord .
1. Create a permit (and a Booking) for an organization
- The user identifies an organization, a member, a room, a date [range] a timeslot and a phrase for display.
- If the organization or member are not in the system the user is informed that a permit cannot be created
- Otherwise a new permit with a unique permit number is created and linked to the supplied organization and member
- If the date is before the current date the system informs the user that a booking cannot be made
- If there are no other bookings for the supplied room on the same date [range] and timeslot then a new booking[s] is [are] created and associated with the new permit
2. Add a booking
- The user supplies a member, a room, a date [range] a timeslot and a phrase for display
- If the member is not working at the school where the room is then user is informed that the booking cannot be made
- If there are no other bookings for the supplied room on the same date [range] and timeslot then a new booking[s] is [are] created and associated with the school
3. Add a booking to a permit
- The user identifies a permit, a room, a date [range] a timeslot and a phrase for display
- If the date is before the current date the system informs the user that a booking cannot be made
- If there are no other bookings for the supplied room on the same date [range] and timeslot then a new booking[s] is [are] created and associated with the supplied permit
4. Cancel a booking
- The user identifies a booking
- If the date of the booking is after the current date the booking is removed, otherwise the system informs the user that the booking cannot be cancelled
5. View all bookings and their details for a given date
- The user supplies a date
- The system provides details of all bookings that have that date attribute
6. View all bookings and their details for a given organization
- The user supplies an organization and the system displays details of all that organization's bookings and their details
7. View available rooms for a given date [range] and timeslot by room type
- The user supplies a start date, an end date, a timeslot and a room type.
- The system displays all the rooms, that have no booking in that date range for that timeslot
8. View all bookings for a given room
- The user supplies a room
- The system displays all the bookings for that room after the current date
9. Create an account for a permit (milestone 2)
- The user supplies a permit
- If there is already an account object associated with the supplied permit, or if the sum of the charges are 0 the user is informed
- Otherwise a new account is created with a cost that is equal to the sum of the cost of all the bookings associated with that permit
10. View charges for a room by room type (milstone 2)
- The user selects a room type and use type
- The system displays the cost per timeslot of the room type
11. View members and their details for a given organization
- The user supplies an organization and the system displays the details of all that organization's members
12. View permits and their details for a given organization
- The user supplies an organization and the system displays the details of all that organization's permits
13. View all bookings for a given permit
- The user supplies a permit and the system displays the details of that permit
14 View accounts and their details for a given organization (milestone 2)
- The user supplies an organization and the system displays the details of all that organization's accounts
15. Add a new organization with an existing member
- The user supplies a name and address and member for the organization
- A new organization is added to the system
16. Add an existing member to an existing organization
- The user supplies an organization and a member
- The member is added to that organization
17. Add a new member to an existing school
- The user supplies an existing school, and the name, address and email of the new member
- If there is not a current member with the supplied details a new member is added to the system
- The system adds the member to the school
18. Add a new school to the system
- The user supplies a name and address and room for the school
- A new school is added to the system
19. Add a new room to a school
- The user supplies a school, a room name, a collection of assets a capacity and a room type
- A new room instance is created and the supplied school creates a reference to the new room
20. Add an existing member to an existing school
- The user supplies an school and a member
- The member is added to that school
21. Add a new member to an existing organization
- The user supplies an organization, and the name, address and email of the new member
- If there is not a current member with the supplied details a new member is added to the system
- The system adds the member to the organization.
22. Add a new member to an existing school and existing organization
- The user supplies an organization and school, and the name, address and email of the new member
- If there is not a current member with the supplied details a new member is added to the system
- The system adds the member to the organization and school.
23. Add a new member and new organization
- The user supplies a name and address for the new organization, and the name, address and email of the new member.
- If there is not a current member with the supplied details a new member is added to the system
- A new organization is added to the system
Discussion
Add any questions here.
This will need a bit of editing but it's a start! -- neo
Questions
- Will we need a use case to add a school to the system, and also one for adding rooms to the system? I'm assuming the system might be used for people who administer bookings for more than one school (infant / junior or federated schools?)
- What happens if a room is put out of action for a period of time (I'm thinking spiders) and you have to search for alternative rooms, or tell organisations that you have to cancel their booking.
- Does the user ever need to search for rooms by capacity, equipment supplied or disabled access?
- UC4 Cancel booking (Youssef 02/11)
- What if the room has been booked but never been used for that booking?
- Would we need to show booking status?
- UC17 Add a new member to organization (Youssef 02/11)
- Is the address of member private or it's the organization's address?
1. If it's private,
- what will it be used for?
- we will need change address use case for member, I think?
- UC16 Add a member to an organisation (Youssef 02/11)
- Can a member be linked to more than one organisation?
1. If no,
- do we need to check whether the member is not linked to other organizations?
- I see no reason why a member couldn't be linked to more than 1 organization (see multiplicities) - Ben (5/11)
- would member be moved from one organization to another?
- would we need a use case for moving members between organizations?
- I think this would be covered if we had a Remove user from organization use case. The user could be added to another Organization by use case 16, then deleted from the first. Although we would need to put check in place to check about links to Permits... - Ben (5/11)
- Might we need a Change address use case for both member and organization?
- I think we do need a change address for organization, however, for member, we might not need it if we used the organization's address as the address for member. (Youssef 02/11)
- Do we need a Delete Room from school use case? - Ben
- Do we need Remove / Add assets to Rooms use cases? - Ben