[Solved] COMP2432 Project-Room Booking Manager (RBM)
5.0
1 customer review
Digital download
Digital download
$25.00
Message us on WhatsApp for payment or download support.
| Note that the one who initiates for the booking is called the user or the caller and those others involved in the booking are called callees. This part of the program module is referred to as the Input Module. | |
| Part 2. | Extend the program developed in Part 1 with a scheduler to generate timetables for all bookings (e.g. meeting room booking schedule and tenant booking records). The scheduler will implement several scheduling algorithms similar to those covered in lectures. This is the called the Scheduling Kernel, within the Scheduling Module. |
| Part 3. | Augment the program with the facilities to print booking schedule for meeting rooms and related devices in Part 2. Those rejected bookings should all be included. This constitutes the Output Module. |
| Part 4. | Provide the program with the ability to generate a summary report to analyze the results produced in Part 3. Compare the different schedules (generated from different algorithms) and find out which one would make the best use of the three meeting rooms. Your program should preferably be able to process N meeting rooms (N = 3 in the existing case) to cope with the expansion of PolySME in the near future. It should also be preferably able to handle more resource types in future. By the way, an outstanding (rejected) list may also be included in this report for those requests that cannot be scheduled. This final module is the Analyzer Module. |
| Part 5. | Augment the program RBM to check whether or not the required facilities are available. If so, it assigns a priority on each booking. For example, if a room is booked for a presentation and should be equipped with projector and screen, the projector and screen will be reserved for that booking with a higher priority. Even though the projector and screen have been reserved for another booking but without using a meeting room, i.e. someone reserves only the two pieces of equipment by that moment, the booking would be then rejected. Of course, you may have other assumptions on how the conflicting bookings are being scheduled/rescheduled, and the associated priority. |
| ***** | Note that we use only the gcc compiler to compile your program. In other words, if your program cannot be compiled by the gcc of departments servers, apollo or apollo2, we simply treat this as a failed program. |
| To execute the program | |
| Syntax | ./RBM |
| Use | Simply to enter [./RBM] to start the program. |
| Command | addMeeting |
| Syntax | addMeeting -aaa YYYY-MM-DD hh:mm n.n p bbb ccc; e.g. addMeeting tenant_A 2021-05-16 10:00 3.0 9 projector_2K screen_100; |
| Use | It is to add a booking for a meeting room with certain devices together. As in the example, [tenant_A] is to make a booking on [May 16, 2021] at [10:00], and the duration is [3.0] hours. In addition, it also requires a projector (projector_2K) and a screen (screen_100). [-aaa] Tenant who makes the request.[YYYY-MM-DD hh:mm] Date and time of the event, YYYY:Year (4 digits), MM:Month (2 digits), DD:Day (2 digits), hh:Hour (2 digits) and mm:Minute (2 digits).[n.n] Duration of the appointment in hours (one decimal place)[p] Number of persons to participate (integer)[bbb] and [ccc] Additional devices to be required. (Optional, but should be in pair when request, [projector]+[screen] or [webcam]+[monitor]) ; End of current input.Note: RBM would assign a room which fits the requirements. For instance, RBM would assign either [room_A] or [room_B] since both are big enough to hold the 9 participants. Of course, RBM would also check the availability of the required devices (projector and screen). If all these are available, the request would be accepted. For [addMeeting], it is an optional choice to book any add-on facilities. Tenants may simply book a meeting room only. |
| Command | addPresentation |
| Syntax | addPresentation -aaa YYYY-MM-DD hh:mm n.n p bbb ccc; e.g. addPresentation tenant_B 2021-05-14 08:00 3.0 12 projector_4K screen_150; |
| Use | Similar to [addMeeting], it is to make a booking for a presentation. As in the example, it is to add a request made by [tenant_B] who would conduct a presentation on [May 14, 2021] at [08:00] for [3.0] hours long. And, there would be 12 persons to take part in the presentation. In addition, the room should be equipped with [project_4K] and [screen_150].[bbb] and [ccc] Additional devices are required (mandatorily include). The use of parameters is same as the previous one. |
| Command | addConference |
| Syntax | addConference -aaa YYYY-MM-DD hh:mm n.n bbb ccc ddd; e.g. addConference tenant_E 2021-05-16 14:00 2.0 15 webcam_UHD monitor_75; |
| Use | It is same as [addPresentation] but it would have a higher priority if you are to use the algorithm priority. As in the example, [tenant_E] is to add a booking for a conference on [May 16, 2021] at [14:00] for [2.0] hours long. The room should be equipped with [webcab_UHD] and[monitor_75]. The use of parameters is same as the previous one. |
| Command | bookDevice |
| Syntax | bookDevice -aaa YYYY-MM-DD hh:mm n.n bbb e.g. bookDevice tenant_C 2021-05-011 13:00 4.0 projector_4K; |
| Use | It is simply to reserve a specific device only. As in the example, it is to reserve for [projector_4K] on [May 11, 2021] at [13:00] for [4.0] hours long. That request is made by [tenant_C]. |
| Command | addBatch |
| Syntax | addBatch -xxxxx e.g. addBatch batch001.dat |
| Use | It is to read in a batch file, batch001.dat which is a plain text document and records one or more booking requests. |
| Command | printBookings |
| Syntax | printBookings xxx [fcfs/prio/opti/ALL] e.g. printBookings fcfs |
| Use | It is to print the schedule (Accepted and Rejected) for users. In addition, aPerformance Report is needed if [ALL] is used. The Performance Report is a summary of how many bookings are received and allocated, and how many are rejected in total that based on the algorithm used. Where[fcfs/prio/opti/ALL] Algorithms that would be used (just a reference).[fcfs] First Come First Served[prio] Priority[opti] Optimized[ALL] All algorithms being used in the application and the performance |
| summary report. In the example, the First Come First Served is used. That is the first booking would be allocated to a time slot that other late requests which request the same time slot would just be rejected.For Priority, where the one has a higher priority rank can take over the time slot (see assumptions below). That is, for example, a conference can replace an occupied time slot which has been assigned to a Meeting. For Optimized, actually there are different methods to produce an optimized result. Here, in a simple word, it is to reschedule those rejected appointments.Then, there would be a better performance to utilize the facilities in PolySME. In the other word, this part would be considered as the bonus. |
| Command | endProgram |
| Syntax | endProgram; |
| Use | This simply ends the program completely, upon collecting all the child processes and closing all the files. |
| *** Room Booking ACCEPTED / FCFS *** Tenant_A has the following bookings: Date Start End Type Room Device =========================================================================== 2021-05-10 09:00 15:00 Meeting room_A * 2021-05-12 12:00 16:00 Presentation room_B projector_2K screen_100 2021-05-15 09:00 12:00 Conference room_C webcam_UHD monitor_75 Tenant_B has the following bookings: Date Start End Type Room Device =========================================================================== 2021-05-14 08:00 11:00 Presentation room_B projector_4K screen_150 2021-05-15 12:00 16:00 Presentation room_A projector_2K screen_100 2021-05-15 13:00 15:00 * * projector_2K 2021-05-16 10:00 15:00 Conference room_C webcam_UHD monitor_75 End =========================================================================== |
| *** Room Booking REJECTED / FCFS *** Tenant_A (there are 999 bookings rejected): Date Start End Type Device =========================================================================== 2021-05-16 09:00 12:00 Meeting 2021-05-17 18:00 21:00 Presentation projector_4K screen_150 Tenant_B (there are 999 bookings rejected): Date Start End Type Device =========================================================================== 2021-05-13 13:00 15:00 Conference webcab_UHD monitor_75 End |
| *** Room Booking Manager Summary Report *** Performance: For FCFS: Total Number of Bookings Received: 999 (99.9%) Number of Bookings Assigned: 999 (99.9%) Number of Bookings Rejected: 999 (99.9%) Utilization of Time Slot: room_A 99.9% room_B 99.9% webcam_FHD 99.9% projector_4K 99.9% Invalid request(s) made: 999 For PRIO: Total Number of Bookings Received: 999 (99.9%) Number of Bookings Assigned: 999 (99.9%) Number of Bookings Rejected: 999 (99.9%) Utilization of Time Slot: room_A 99.9% room_B 99.9% webcam_FHD 99.9% projector_4K 99.9% Invalid request(s) made: 999 |