Context You are now in charge of creating a well-designed, well-documented software for EventBrite, the event...
Fantastic news! We've Found the answer you've been seeking!
Question:
Transcribed Image Text:
Context You are now in charge of creating a well-designed, well-documented software for EventBrite, the event management and ticketing website. The Event Manager from EventBrite, Bob, is the client who will be using your software to manage events and determine the revenue from events. To start this assignment, download the baseline code that is attached. You may modify the base code appropriately, if needed. Objective Your software should allow Bob to use an object of the 'Event Management' class to schedule events, and importantly, calculate the expected profit from different events hosted by EventBrite. Bob has no knowledge of the Event class therefore he should not call any method of the Event classes directly. EventBrite Code Base The application in the base code so far has an Interface to represent an Event. The Event has getters for name, location, date, per-person ticket price, and the total number of tickets that can be issued, all of which should be immutable fields for a concrete event. The Event Management class contains the list of events hosted on EventBrite. Requirements You are presented with the following requirements that must be fulfilled using good design techniques and principles discussed throughout the semester. Hosting Different Events: 1. Modify the code to allow multiple types of Events to exist: Concert, Workshop, Gala, or Screening. Each type of event should be represented by a separate class with the following criteria: • Concerts have a field "artist" with the name of the artist who is performing. They also have a list of "VIPS" for the concert. •Workshops have a list of "prerequisites", which is a list of existing Workshops that a participant must have attended before attending this one. ⚫ Galas have a list of "VIPS" for the party. Screenings have a rating of "G", "PG", "PG-13", or "R". Make sure to add methods to set and get these information appropriately. [2 points] Festivals: 2. A Festival is a type of event in which multiple events can happen over a period of time. It has the following requirements: The festival's ticket price is a subsidized price, equivalent to 20% of the price of all the events at the festival together. The total number of tickets available for a festival is equivalent to the number of tickets of the Event with the least number of tickets. For example, Bob should be able to create an event for the Montreal Jazz Festival during which three Concerts with 120, 100, and 150 tickets and two Galas with 50 and 100 tickets take place. Thus, the total number of tickets for the Jazz Festival is 50. The location of the Festival depends on the location of events within the Festival - if events are held at more than one location, the Festival's location should indicate that there are multiple. If all events are at the same location, then it should be set to the same location as the events. Set the date of the Festival to the date of the first event that will take place in the festival. 。 Once created, the list of events in a Festival can not be changed. [4] Calculating Revenue 3. Create a class called FilterResult that contains a list of events named 'aFiltered Events'. Add functionality to the application that allows Bob to filter events based on either the price range of the event, or at a particular location. Bob should also be able to filter using both criteria or add future criteria himself. The call to filtering should return a FilterResult object with the list of events that match the criteria stored in 'aFiltered Events'. [6] 4. Provide a way for Bob to calculate the total expected profit of a FilterResult. The profit is given by the sum of the profit of each event it contains. The profit of an individual event is given by the price per person for each event multiplied by the total number of tickets for that event multiplied by the profit per ticket (in percentage). The profit percentage per ticket for each event is provided by Bob when he wants to make the calculation of expected profit. For example, Bob may enter the following profit percentages per ticket for each event: 。 Concert: 60% ⚫ Workshop: 50% 。 Gala: 30% Screening: 10% The profit for a Festival is calculated based on the events it contains. Design this feature to avoid unnecessary coupling between the profit calculation and the events. Also provide a way for Bob to calculate the total number of VIPs attending events because they will be paid for their presence at the event. Make sure to use Polymorphism effectively. [8] Other Requirements 5. Modify the code to allow the creation of events that are "coming soon". "Coming soon" events have a name, and date, but the location, ticket price, and total number of tickets are unknown. Ensure that calling the getters for unknown fields does not break the execution of the application. [2] 6. Do not allow Bob to create a new event with the same date and location as an existing event. [2] 7. Complete and update the methods in Event Management allowing Bob to perform managing of the Events only via the EventManagement class. Assume Bob can not call methods of an Event directly. Make sure to check that input parameter values are valid. [2] Supporting Requirements 8. Tests: You must create unit tests to test all aspects of your application. Be as thorough as possible so that you can guarantee to EventBrite that the entire application will work with no trouble. Demonstrate at least one test using a stub and one test using reflection, ensuring that they are used appropriately for meaningful test cases. Use and report the statement and branch coverage of your tests to see whether there were any parts of your code that you missed. Other developers and testers at EventBrite will look at your code and your unit tests to determine whether the application can be approved and is ready to be released [5] 9. Documentation: Document your code, so that developers can write client code for your software. Also, write a brief description of your software to explain the design techniques you used. Support this with two UML diagrams: (1) a class diagram representing the entire application, and (2) a sequence diagram that demonstrates the calculation of revenue for a FilterResult containing at least one of each type of Event (requirement 4). The EventBrite managers will look at this documentation of your application to give their approval for release. [6] 10. Overall Design: The overall solution of your assignment should be coherent. It should also demonstrate the proper application of all design techniques learnt in this course, where applicable. The evaluation of the overall design includes using proper Java and UML conventions, readability of the code, etc. [3] Context You are now in charge of creating a well-designed, well-documented software for EventBrite, the event management and ticketing website. The Event Manager from EventBrite, Bob, is the client who will be using your software to manage events and determine the revenue from events. To start this assignment, download the baseline code that is attached. You may modify the base code appropriately, if needed. Objective Your software should allow Bob to use an object of the 'Event Management' class to schedule events, and importantly, calculate the expected profit from different events hosted by EventBrite. Bob has no knowledge of the Event class therefore he should not call any method of the Event classes directly. EventBrite Code Base The application in the base code so far has an Interface to represent an Event. The Event has getters for name, location, date, per-person ticket price, and the total number of tickets that can be issued, all of which should be immutable fields for a concrete event. The Event Management class contains the list of events hosted on EventBrite. Requirements You are presented with the following requirements that must be fulfilled using good design techniques and principles discussed throughout the semester. Hosting Different Events: 1. Modify the code to allow multiple types of Events to exist: Concert, Workshop, Gala, or Screening. Each type of event should be represented by a separate class with the following criteria: • Concerts have a field "artist" with the name of the artist who is performing. They also have a list of "VIPS" for the concert. •Workshops have a list of "prerequisites", which is a list of existing Workshops that a participant must have attended before attending this one. ⚫ Galas have a list of "VIPS" for the party. Screenings have a rating of "G", "PG", "PG-13", or "R". Make sure to add methods to set and get these information appropriately. [2 points] Festivals: 2. A Festival is a type of event in which multiple events can happen over a period of time. It has the following requirements: The festival's ticket price is a subsidized price, equivalent to 20% of the price of all the events at the festival together. The total number of tickets available for a festival is equivalent to the number of tickets of the Event with the least number of tickets. For example, Bob should be able to create an event for the Montreal Jazz Festival during which three Concerts with 120, 100, and 150 tickets and two Galas with 50 and 100 tickets take place. Thus, the total number of tickets for the Jazz Festival is 50. The location of the Festival depends on the location of events within the Festival - if events are held at more than one location, the Festival's location should indicate that there are multiple. If all events are at the same location, then it should be set to the same location as the events. Set the date of the Festival to the date of the first event that will take place in the festival. 。 Once created, the list of events in a Festival can not be changed. [4] Calculating Revenue 3. Create a class called FilterResult that contains a list of events named 'aFiltered Events'. Add functionality to the application that allows Bob to filter events based on either the price range of the event, or at a particular location. Bob should also be able to filter using both criteria or add future criteria himself. The call to filtering should return a FilterResult object with the list of events that match the criteria stored in 'aFiltered Events'. [6] 4. Provide a way for Bob to calculate the total expected profit of a FilterResult. The profit is given by the sum of the profit of each event it contains. The profit of an individual event is given by the price per person for each event multiplied by the total number of tickets for that event multiplied by the profit per ticket (in percentage). The profit percentage per ticket for each event is provided by Bob when he wants to make the calculation of expected profit. For example, Bob may enter the following profit percentages per ticket for each event: 。 Concert: 60% ⚫ Workshop: 50% 。 Gala: 30% Screening: 10% The profit for a Festival is calculated based on the events it contains. Design this feature to avoid unnecessary coupling between the profit calculation and the events. Also provide a way for Bob to calculate the total number of VIPs attending events because they will be paid for their presence at the event. Make sure to use Polymorphism effectively. [8] Other Requirements 5. Modify the code to allow the creation of events that are "coming soon". "Coming soon" events have a name, and date, but the location, ticket price, and total number of tickets are unknown. Ensure that calling the getters for unknown fields does not break the execution of the application. [2] 6. Do not allow Bob to create a new event with the same date and location as an existing event. [2] 7. Complete and update the methods in Event Management allowing Bob to perform managing of the Events only via the EventManagement class. Assume Bob can not call methods of an Event directly. Make sure to check that input parameter values are valid. [2] Supporting Requirements 8. Tests: You must create unit tests to test all aspects of your application. Be as thorough as possible so that you can guarantee to EventBrite that the entire application will work with no trouble. Demonstrate at least one test using a stub and one test using reflection, ensuring that they are used appropriately for meaningful test cases. Use and report the statement and branch coverage of your tests to see whether there were any parts of your code that you missed. Other developers and testers at EventBrite will look at your code and your unit tests to determine whether the application can be approved and is ready to be released [5] 9. Documentation: Document your code, so that developers can write client code for your software. Also, write a brief description of your software to explain the design techniques you used. Support this with two UML diagrams: (1) a class diagram representing the entire application, and (2) a sequence diagram that demonstrates the calculation of revenue for a FilterResult containing at least one of each type of Event (requirement 4). The EventBrite managers will look at this documentation of your application to give their approval for release. [6] 10. Overall Design: The overall solution of your assignment should be coherent. It should also demonstrate the proper application of all design techniques learnt in this course, where applicable. The evaluation of the overall design includes using proper Java and UML conventions, readability of the code, etc. [3] Context You are now in charge of creating a well-designed, well-documented software for EventBrite, the event management and ticketing website. The Event Manager from EventBrite, Bob, is the client who will be using your software to manage events and determine the revenue from events. To start this assignment, download the baseline code that is attached. You may modify the base code appropriately, if needed. Objective Your software should allow Bob to use an object of the 'Event Management' class to schedule events, and importantly, calculate the expected profit from different events hosted by EventBrite. Bob has no knowledge of the Event class therefore he should not call any method of the Event classes directly. EventBrite Code Base The application in the base code so far has an Interface to represent an Event. The Event has getters for name, location, date, per-person ticket price, and the total number of tickets that can be issued, all of which should be immutable fields for a concrete event. The Event Management class contains the list of events hosted on EventBrite. Requirements You are presented with the following requirements that must be fulfilled using good design techniques and principles discussed throughout the semester. Hosting Different Events: 1. Modify the code to allow multiple types of Events to exist: Concert, Workshop, Gala, or Screening. Each type of event should be represented by a separate class with the following criteria: • Concerts have a field "artist" with the name of the artist who is performing. They also have a list of "VIPS" for the concert. •Workshops have a list of "prerequisites", which is a list of existing Workshops that a participant must have attended before attending this one. ⚫ Galas have a list of "VIPS" for the party. Screenings have a rating of "G", "PG", "PG-13", or "R". Make sure to add methods to set and get these information appropriately. [2 points] Festivals: 2. A Festival is a type of event in which multiple events can happen over a period of time. It has the following requirements: The festival's ticket price is a subsidized price, equivalent to 20% of the price of all the events at the festival together. The total number of tickets available for a festival is equivalent to the number of tickets of the Event with the least number of tickets. For example, Bob should be able to create an event for the Montreal Jazz Festival during which three Concerts with 120, 100, and 150 tickets and two Galas with 50 and 100 tickets take place. Thus, the total number of tickets for the Jazz Festival is 50. The location of the Festival depends on the location of events within the Festival - if events are held at more than one location, the Festival's location should indicate that there are multiple. If all events are at the same location, then it should be set to the same location as the events. Set the date of the Festival to the date of the first event that will take place in the festival. 。 Once created, the list of events in a Festival can not be changed. [4] Calculating Revenue 3. Create a class called FilterResult that contains a list of events named 'aFiltered Events'. Add functionality to the application that allows Bob to filter events based on either the price range of the event, or at a particular location. Bob should also be able to filter using both criteria or add future criteria himself. The call to filtering should return a FilterResult object with the list of events that match the criteria stored in 'aFiltered Events'. [6] 4. Provide a way for Bob to calculate the total expected profit of a FilterResult. The profit is given by the sum of the profit of each event it contains. The profit of an individual event is given by the price per person for each event multiplied by the total number of tickets for that event multiplied by the profit per ticket (in percentage). The profit percentage per ticket for each event is provided by Bob when he wants to make the calculation of expected profit. For example, Bob may enter the following profit percentages per ticket for each event: 。 Concert: 60% ⚫ Workshop: 50% 。 Gala: 30% Screening: 10% The profit for a Festival is calculated based on the events it contains. Design this feature to avoid unnecessary coupling between the profit calculation and the events. Also provide a way for Bob to calculate the total number of VIPs attending events because they will be paid for their presence at the event. Make sure to use Polymorphism effectively. [8] Other Requirements 5. Modify the code to allow the creation of events that are "coming soon". "Coming soon" events have a name, and date, but the location, ticket price, and total number of tickets are unknown. Ensure that calling the getters for unknown fields does not break the execution of the application. [2] 6. Do not allow Bob to create a new event with the same date and location as an existing event. [2] 7. Complete and update the methods in Event Management allowing Bob to perform managing of the Events only via the EventManagement class. Assume Bob can not call methods of an Event directly. Make sure to check that input parameter values are valid. [2] Supporting Requirements 8. Tests: You must create unit tests to test all aspects of your application. Be as thorough as possible so that you can guarantee to EventBrite that the entire application will work with no trouble. Demonstrate at least one test using a stub and one test using reflection, ensuring that they are used appropriately for meaningful test cases. Use and report the statement and branch coverage of your tests to see whether there were any parts of your code that you missed. Other developers and testers at EventBrite will look at your code and your unit tests to determine whether the application can be approved and is ready to be released [5] 9. Documentation: Document your code, so that developers can write client code for your software. Also, write a brief description of your software to explain the design techniques you used. Support this with two UML diagrams: (1) a class diagram representing the entire application, and (2) a sequence diagram that demonstrates the calculation of revenue for a FilterResult containing at least one of each type of Event (requirement 4). The EventBrite managers will look at this documentation of your application to give their approval for release. [6] 10. Overall Design: The overall solution of your assignment should be coherent. It should also demonstrate the proper application of all design techniques learnt in this course, where applicable. The evaluation of the overall design includes using proper Java and UML conventions, readability of the code, etc. [3] Context You are now in charge of creating a well-designed, well-documented software for EventBrite, the event management and ticketing website. The Event Manager from EventBrite, Bob, is the client who will be using your software to manage events and determine the revenue from events. To start this assignment, download the baseline code that is attached. You may modify the base code appropriately, if needed. Objective Your software should allow Bob to use an object of the 'Event Management' class to schedule events, and importantly, calculate the expected profit from different events hosted by EventBrite. Bob has no knowledge of the Event class therefore he should not call any method of the Event classes directly. EventBrite Code Base The application in the base code so far has an Interface to represent an Event. The Event has getters for name, location, date, per-person ticket price, and the total number of tickets that can be issued, all of which should be immutable fields for a concrete event. The Event Management class contains the list of events hosted on EventBrite. Requirements You are presented with the following requirements that must be fulfilled using good design techniques and principles discussed throughout the semester. Hosting Different Events: 1. Modify the code to allow multiple types of Events to exist: Concert, Workshop, Gala, or Screening. Each type of event should be represented by a separate class with the following criteria: • Concerts have a field "artist" with the name of the artist who is performing. They also have a list of "VIPS" for the concert. •Workshops have a list of "prerequisites", which is a list of existing Workshops that a participant must have attended before attending this one. ⚫ Galas have a list of "VIPS" for the party. Screenings have a rating of "G", "PG", "PG-13", or "R". Make sure to add methods to set and get these information appropriately. [2 points] Festivals: 2. A Festival is a type of event in which multiple events can happen over a period of time. It has the following requirements: The festival's ticket price is a subsidized price, equivalent to 20% of the price of all the events at the festival together. The total number of tickets available for a festival is equivalent to the number of tickets of the Event with the least number of tickets. For example, Bob should be able to create an event for the Montreal Jazz Festival during which three Concerts with 120, 100, and 150 tickets and two Galas with 50 and 100 tickets take place. Thus, the total number of tickets for the Jazz Festival is 50. The location of the Festival depends on the location of events within the Festival - if events are held at more than one location, the Festival's location should indicate that there are multiple. If all events are at the same location, then it should be set to the same location as the events. Set the date of the Festival to the date of the first event that will take place in the festival. 。 Once created, the list of events in a Festival can not be changed. [4] Calculating Revenue 3. Create a class called FilterResult that contains a list of events named 'aFiltered Events'. Add functionality to the application that allows Bob to filter events based on either the price range of the event, or at a particular location. Bob should also be able to filter using both criteria or add future criteria himself. The call to filtering should return a FilterResult object with the list of events that match the criteria stored in 'aFiltered Events'. [6] 4. Provide a way for Bob to calculate the total expected profit of a FilterResult. The profit is given by the sum of the profit of each event it contains. The profit of an individual event is given by the price per person for each event multiplied by the total number of tickets for that event multiplied by the profit per ticket (in percentage). The profit percentage per ticket for each event is provided by Bob when he wants to make the calculation of expected profit. For example, Bob may enter the following profit percentages per ticket for each event: 。 Concert: 60% ⚫ Workshop: 50% 。 Gala: 30% Screening: 10% The profit for a Festival is calculated based on the events it contains. Design this feature to avoid unnecessary coupling between the profit calculation and the events. Also provide a way for Bob to calculate the total number of VIPs attending events because they will be paid for their presence at the event. Make sure to use Polymorphism effectively. [8] Other Requirements 5. Modify the code to allow the creation of events that are "coming soon". "Coming soon" events have a name, and date, but the location, ticket price, and total number of tickets are unknown. Ensure that calling the getters for unknown fields does not break the execution of the application. [2] 6. Do not allow Bob to create a new event with the same date and location as an existing event. [2] 7. Complete and update the methods in Event Management allowing Bob to perform managing of the Events only via the EventManagement class. Assume Bob can not call methods of an Event directly. Make sure to check that input parameter values are valid. [2] Supporting Requirements 8. Tests: You must create unit tests to test all aspects of your application. Be as thorough as possible so that you can guarantee to EventBrite that the entire application will work with no trouble. Demonstrate at least one test using a stub and one test using reflection, ensuring that they are used appropriately for meaningful test cases. Use and report the statement and branch coverage of your tests to see whether there were any parts of your code that you missed. Other developers and testers at EventBrite will look at your code and your unit tests to determine whether the application can be approved and is ready to be released [5] 9. Documentation: Document your code, so that developers can write client code for your software. Also, write a brief description of your software to explain the design techniques you used. Support this with two UML diagrams: (1) a class diagram representing the entire application, and (2) a sequence diagram that demonstrates the calculation of revenue for a FilterResult containing at least one of each type of Event (requirement 4). The EventBrite managers will look at this documentation of your application to give their approval for release. [6] 10. Overall Design: The overall solution of your assignment should be coherent. It should also demonstrate the proper application of all design techniques learnt in this course, where applicable. The evaluation of the overall design includes using proper Java and UML conventions, readability of the code, etc. [3] Context You are now in charge of creating a well-designed, well-documented software for EventBrite, the event management and ticketing website. The Event Manager from EventBrite, Bob, is the client who will be using your software to manage events and determine the revenue from events. To start this assignment, download the baseline code that is attached. You may modify the base code appropriately, if needed. Objective Your software should allow Bob to use an object of the 'Event Management' class to schedule events, and importantly, calculate the expected profit from different events hosted by EventBrite. Bob has no knowledge of the Event class therefore he should not call any method of the Event classes directly. EventBrite Code Base The application in the base code so far has an Interface to represent an Event. The Event has getters for name, location, date, per-person ticket price, and the total number of tickets that can be issued, all of which should be immutable fields for a concrete event. The Event Management class contains the list of events hosted on EventBrite. Requirements You are presented with the following requirements that must be fulfilled using good design techniques and principles discussed throughout the semester. Hosting Different Events: 1. Modify the code to allow multiple types of Events to exist: Concert, Workshop, Gala, or Screening. Each type of event should be represented by a separate class with the following criteria: • Concerts have a field "artist" with the name of the artist who is performing. They also have a list of "VIPS" for the concert. •Workshops have a list of "prerequisites", which is a list of existing Workshops that a participant must have attended before attending this one. ⚫ Galas have a list of "VIPS" for the party. Screenings have a rating of "G", "PG", "PG-13", or "R". Make sure to add methods to set and get these information appropriately. [2 points] Festivals: 2. A Festival is a type of event in which multiple events can happen over a period of time. It has the following requirements: The festival's ticket price is a subsidized price, equivalent to 20% of the price of all the events at the festival together. The total number of tickets available for a festival is equivalent to the number of tickets of the Event with the least number of tickets. For example, Bob should be able to create an event for the Montreal Jazz Festival during which three Concerts with 120, 100, and 150 tickets and two Galas with 50 and 100 tickets take place. Thus, the total number of tickets for the Jazz Festival is 50. The location of the Festival depends on the location of events within the Festival - if events are held at more than one location, the Festival's location should indicate that there are multiple. If all events are at the same location, then it should be set to the same location as the events. Set the date of the Festival to the date of the first event that will take place in the festival. 。 Once created, the list of events in a Festival can not be changed. [4] Calculating Revenue 3. Create a class called FilterResult that contains a list of events named 'aFiltered Events'. Add functionality to the application that allows Bob to filter events based on either the price range of the event, or at a particular location. Bob should also be able to filter using both criteria or add future criteria himself. The call to filtering should return a FilterResult object with the list of events that match the criteria stored in 'aFiltered Events'. [6] 4. Provide a way for Bob to calculate the total expected profit of a FilterResult. The profit is given by the sum of the profit of each event it contains. The profit of an individual event is given by the price per person for each event multiplied by the total number of tickets for that event multiplied by the profit per ticket (in percentage). The profit percentage per ticket for each event is provided by Bob when he wants to make the calculation of expected profit. For example, Bob may enter the following profit percentages per ticket for each event: 。 Concert: 60% ⚫ Workshop: 50% 。 Gala: 30% Screening: 10% The profit for a Festival is calculated based on the events it contains. Design this feature to avoid unnecessary coupling between the profit calculation and the events. Also provide a way for Bob to calculate the total number of VIPs attending events because they will be paid for their presence at the event. Make sure to use Polymorphism effectively. [8] Other Requirements 5. Modify the code to allow the creation of events that are "coming soon". "Coming soon" events have a name, and date, but the location, ticket price, and total number of tickets are unknown. Ensure that calling the getters for unknown fields does not break the execution of the application. [2] 6. Do not allow Bob to create a new event with the same date and location as an existing event. [2] 7. Complete and update the methods in Event Management allowing Bob to perform managing of the Events only via the EventManagement class. Assume Bob can not call methods of an Event directly. Make sure to check that input parameter values are valid. [2] Supporting Requirements 8. Tests: You must create unit tests to test all aspects of your application. Be as thorough as possible so that you can guarantee to EventBrite that the entire application will work with no trouble. Demonstrate at least one test using a stub and one test using reflection, ensuring that they are used appropriately for meaningful test cases. Use and report the statement and branch coverage of your tests to see whether there were any parts of your code that you missed. Other developers and testers at EventBrite will look at your code and your unit tests to determine whether the application can be approved and is ready to be released [5] 9. Documentation: Document your code, so that developers can write client code for your software. Also, write a brief description of your software to explain the design techniques you used. Support this with two UML diagrams: (1) a class diagram representing the entire application, and (2) a sequence diagram that demonstrates the calculation of revenue for a FilterResult containing at least one of each type of Event (requirement 4). The EventBrite managers will look at this documentation of your application to give their approval for release. [6] 10. Overall Design: The overall solution of your assignment should be coherent. It should also demonstrate the proper application of all design techniques learnt in this course, where applicable. The evaluation of the overall design includes using proper Java and UML conventions, readability of the code, etc. [3] Context You are now in charge of creating a well-designed, well-documented software for EventBrite, the event management and ticketing website. The Event Manager from EventBrite, Bob, is the client who will be using your software to manage events and determine the revenue from events. To start this assignment, download the baseline code that is attached. You may modify the base code appropriately, if needed. Objective Your software should allow Bob to use an object of the 'Event Management' class to schedule events, and importantly, calculate the expected profit from different events hosted by EventBrite. Bob has no knowledge of the Event class therefore he should not call any method of the Event classes directly. EventBrite Code Base The application in the base code so far has an Interface to represent an Event. The Event has getters for name, location, date, per-person ticket price, and the total number of tickets that can be issued, all of which should be immutable fields for a concrete event. The Event Management class contains the list of events hosted on EventBrite. Requirements You are presented with the following requirements that must be fulfilled using good design techniques and principles discussed throughout the semester. Hosting Different Events: 1. Modify the code to allow multiple types of Events to exist: Concert, Workshop, Gala, or Screening. Each type of event should be represented by a separate class with the following criteria: • Concerts have a field "artist" with the name of the artist who is performing. They also have a list of "VIPS" for the concert. •Workshops have a list of "prerequisites", which is a list of existing Workshops that a participant must have attended before attending this one. ⚫ Galas have a list of "VIPS" for the party. Screenings have a rating of "G", "PG", "PG-13", or "R". Make sure to add methods to set and get these information appropriately. [2 points] Festivals: 2. A Festival is a type of event in which multiple events can happen over a period of time. It has the following requirements: The festival's ticket price is a subsidized price, equivalent to 20% of the price of all the events at the festival together. The total number of tickets available for a festival is equivalent to the number of tickets of the Event with the least number of tickets. For example, Bob should be able to create an event for the Montreal Jazz Festival during which three Concerts with 120, 100, and 150 tickets and two Galas with 50 and 100 tickets take place. Thus, the total number of tickets for the Jazz Festival is 50. The location of the Festival depends on the location of events within the Festival - if events are held at more than one location, the Festival's location should indicate that there are multiple. If all events are at the same location, then it should be set to the same location as the events. Set the date of the Festival to the date of the first event that will take place in the festival. 。 Once created, the list of events in a Festival can not be changed. [4] Calculating Revenue 3. Create a class called FilterResult that contains a list of events named 'aFiltered Events'. Add functionality to the application that allows Bob to filter events based on either the price range of the event, or at a particular location. Bob should also be able to filter using both criteria or add future criteria himself. The call to filtering should return a FilterResult object with the list of events that match the criteria stored in 'aFiltered Events'. [6] 4. Provide a way for Bob to calculate the total expected profit of a FilterResult. The profit is given by the sum of the profit of each event it contains. The profit of an individual event is given by the price per person for each event multiplied by the total number of tickets for that event multiplied by the profit per ticket (in percentage). The profit percentage per ticket for each event is provided by Bob when he wants to make the calculation of expected profit. For example, Bob may enter the following profit percentages per ticket for each event: 。 Concert: 60% ⚫ Workshop: 50% 。 Gala: 30% Screening: 10% The profit for a Festival is calculated based on the events it contains. Design this feature to avoid unnecessary coupling between the profit calculation and the events. Also provide a way for Bob to calculate the total number of VIPs attending events because they will be paid for their presence at the event. Make sure to use Polymorphism effectively. [8] Other Requirements 5. Modify the code to allow the creation of events that are "coming soon". "Coming soon" events have a name, and date, but the location, ticket price, and total number of tickets are unknown. Ensure that calling the getters for unknown fields does not break the execution of the application. [2] 6. Do not allow Bob to create a new event with the same date and location as an existing event. [2] 7. Complete and update the methods in Event Management allowing Bob to perform managing of the Events only via the EventManagement class. Assume Bob can not call methods of an Event directly. Make sure to check that input parameter values are valid. [2] Supporting Requirements 8. Tests: You must create unit tests to test all aspects of your application. Be as thorough as possible so that you can guarantee to EventBrite that the entire application will work with no trouble. Demonstrate at least one test using a stub and one test using reflection, ensuring that they are used appropriately for meaningful test cases. Use and report the statement and branch coverage of your tests to see whether there were any parts of your code that you missed. Other developers and testers at EventBrite will look at your code and your unit tests to determine whether the application can be approved and is ready to be released [5] 9. Documentation: Document your code, so that developers can write client code for your software. Also, write a brief description of your software to explain the design techniques you used. Support this with two UML diagrams: (1) a class diagram representing the entire application, and (2) a sequence diagram that demonstrates the calculation of revenue for a FilterResult containing at least one of each type of Event (requirement 4). The EventBrite managers will look at this documentation of your application to give their approval for release. [6] 10. Overall Design: The overall solution of your assignment should be coherent. It should also demonstrate the proper application of all design techniques learnt in this course, where applicable. The evaluation of the overall design includes using proper Java and UML conventions, readability of the code, etc. [3]
Expert Answer:
Answer rating: 100% (QA)
EventBrite Software Enhancements This outlines the modifications to the EventBrite code base to achieve the desired functionalities 1 Multiple Event Types Well create separate classes inheriting from ... View the full answer
Related Book For
Intermediate Accounting
ISBN: 978-0324592375
17th Edition
Authors: James D. Stice, Earl K. Stice, Fred Skousen
Posted Date:
Students also viewed these programming questions
-
Planning is one of the most important management functions in any business. A front office managers first step in planning should involve determine the departments goals. Planning also includes...
-
Managing Scope Changes Case Study Scope changes on a project can occur regardless of how well the project is planned or executed. Scope changes can be the result of something that was omitted during...
-
A new out-of-state client, Robert Ball, has asked you to prepare a Form 709 for a large gift he made in 2013. When you request copies of any prior gift tax returns he may have filed, he responds,...
-
Founded in 1870, Chiquita is a leading international producer, marketer, and distributor of bananas, other tropical fruits such as pineapples and avocadoes, as well as salads. Headquartered in...
-
Hillyard Company, an office supplies specialty store, prepares its master budget on a quarterly basis. The following data have been assembled to assist in preparing the master budget for the first...
-
A single stage, the single acting compressor has a bore of \(170 \mathrm{~mm}\) and stroke of \(260 \mathrm{~mm}\). it runs at \(130 \mathrm{rpm}\). The suction pressure is 1 bar and delivery...
-
Given the following selected account balances of Randa Company, prepare its manufacturing statement for the year ended on December 31, 2011. Include a listing of the individual overhead account...
-
Barco Kyan Company Company Barco Company Kyan Company Data from the current year-end balance sheets Assets Cash $18,500 $ 32,000 Accounts receivable, net 36,400 Merchandise inventory 84,940 Prepaid...
-
Kidd Company produces two products. Budgeted annual income statements for the two products are provided here: Required a. Based on budgeted sales, determine the relative sales mix between the two...
-
Given the information Total prime costs $30,000 Total conversion costs 30,000 Total manufacturing costs incurred 40,000 Total increase in work-in-process inventory 2,000 Required: 1. Compute the cost...
-
Describe two distinct age cohorts. If you were the marketer for automobiles, how would you use your marketing mix differently for addressing consumers in each of these cohorts? B. Describe the...
-
Use the Bisection method to find solutions accurate to within 10-5 for the following problems. a. x-2=0 for 0x1 he-x+3x-2=0 for 0 x1 Question No. 2 Q/3. Determine the minimum number of iterations...
-
'STAR' Technique Situation Describe the situation that you were involved in . Provide a detailed background and context, answer "where" and" when". Task What were you trying to achieve in the...
-
Phosphoric acid is used widely in fertilizers and is used in certain types of pop to make them more tart. It is a triprotic acid with a chemical formula H3PO4(aq). Estimate the pH and the...
-
In the third quarter of 2021, from July 1 through September 30, Hess Corp. (HES) stock decreased from $88 to $78 per share, and Exxon Mobil (XOM) stock decreased from $64 to $60 per share.+ If you...
-
The schematic diagram of a marine engine connected to a propeller through circular hollow composite shaft is shown in figure. The motor can be considered to be stationary (fixed). In A - A section,...
-
From the choice of simple moving average, exponential smoothing, and linear regression analysis, which forecasting technique would you consider the most accurate? Why? please write it in word...
-
Buyer Company acquired Target Company on January 1. As part of the acquisition, $1,000 in goodwill was recognized; this goodwill was assigned to Buyer's Manufacturing reporting unit. On December 31,...
-
Why do asset and liability balances for capital leases usually differ after the first year?
-
How does the fact that there are limited resources in the world relate to accounting information?
-
Scientists propose that the first macromolecules in protobionts were a. DNA molecules. b. RNA molecules. c. proteins. d. all of the above.
-
Which of the following function(s) is/are carried out by piRITS or piRISC? a. Inhibits transcription of TEs b. Causes the degradation of TE RNA c. Causes chromosome breakage d. Both a and b are...
-
In the CRISPR-Cas system, what does tracrRNA bind to? a. crRNA and Cas1 protein b. crRNA and Cas2 protein c. crRNA and Cas9 protein d. Cas1 and Cas2 proteins
Study smarter with the SolutionInn App