Assignment 2 Task Specification [ITECH2306] Assignment 2 Advertising Agency quote-management system Overview You will develop a moderate-sized Java program in order to demonstrate your understanding...

1 answer below »
Assignment


Assignment 2 Task Specification [ITECH2306] Assignment 2 Advertising Agency quote-management system Overview You will develop a moderate-sized Java program in order to demonstrate your understanding of topics from weeks 1 to 7. You are provided a detailed set of functional requirements which describe the behaviour that must be exhibited by the program you create. In addition to the various functional requirements are a few other requirements that specify suggested implementation approach to be taken. These are all detailed in the remainder of the assignment. Make sure you read it all carefully before you commence, so you understand what needs to be achieved. Finally, there are a range of suggested Tasks to be completed (see next page). In terms of marking, only half the marks pertain to the correct behaviour according to the functional requirements, the other half of the marks are for appropriate approaches to coding (to assess your progress towards demonstrating attainment of the skills encompassed by the learning objectives of the course). If you have any questions about any of the requirements, please ask your teacher through their preferred means of communication. This is an individual assignment. The work must be your own work. The staff may submit your work to specialised plagiarism-checking software that specifically compares Java programs, to identify potential collusion between students. You may be asked to attend an interview with the marker to explain portions of the code before the assessment mark is finalised. Timelines and Expectations Percentage Value of Task:20% Minimum time expectation:8 hours Maximum time expectation:24 hours Learning Outcomes Assessed The following course learning outcomes are assessed to some degree, by completing this assessment: S1. Develop object-oriented programs involving several interacting classes. S2. Develop, compile and debug code using an appropriate IDE S3. Manage multiple versions of source code used to create separate software releases. S4. Select appropriate ways to represent data and collections of data. S5. Incorporate pre-written classes, including those from an API, into software solutions. A1. Design, develop, test, debug and release programs from supplied program specifications. In particular, this assignment is focused on assessing your attainment of a range of the learning objectives of weeks 1 through 7 of the course, with an emphasis on the later weeks. For more detail on how you are marked, refer to the section at the back of this Task Specification document. ( Page 1 of 9 ) Tasks to be completed The following is a description of the tasks you may want to complete to address the needs of this assignment: 1. Read through the entire assignment task description (all 9 pages) to understand what the program needs to achieve and how you will be assessed. 2. Perform a textual analysis to identify potential classes (look for nouns), potential methods (look for verbs or actions), potential fields/data (look for nouns again). 3. Develop an initial class diagram to organise your thoughts. (This is not marked.) 4. Accept the GitHub Classroom assignment by clicking the link in Moodle (underneath the link you clicked to obtain this document) to create your repository, and then clone/link it into your IDE as you have done in the lab classes. 5. Start coding, by taking one functional requirement to start with. Identify the tests that you might need to check/prove that it is addressed and correct, and develop code to address it. Once that functional requirement is fully addressed/working and tested, commit the code to the repository (you can commit more frequently if you wish), then take another functional requirement and repeat the process. Keep the supplementary document up to date as you go along. 6. Submit the completed work. Assessment Details Overview An advertising agency wants a program which allows them to create and manage quotes for their customers. Customers are any other business or organisation that wants to promote a product, service or event that they might be offering. For example, a supermarket might want to promote special discounts each week. A school might want to promote that it is having an open-day for parents to come and visit the school to consider sending their children to it in the future. Context/Background Information When an organisation decides that it wants to promote a product, service, or event, it may look to advertising agencies to “get the message out” by an advertising campaign in a way that has impact, across various media such as television, radio, Spotify (an app focused on music/audio), newspaper/print, web and other mobile apps. Such an organisation is called a client of the advertising agency. The advertising agency is a company which employs a range of people with skills at preparing promotions for these various types of media. When an organisation comes to it asking for a quote, the advertising agency will make judgements about how long tasks will take, how soon the advertising campaign needs to be ready to become ‘activated’ (actually appearing/being rostered in the media), how long the campaign is to last for, and how the advertising agency might be able to fit in the work for this client in comparison to other clients. They will calculate costs of this work, and the additional cost of placing the campaign into the various media channels, and from this information determine a ‘cost’ to the client. They tell this to the client in the form of a “quote for services”. The client can compare quotes received by different agencies and decide which one to accept and continue with. If the client decides to go ahead with the advertising campaign with that advertising agency, the agency requires an up-front payment of some portion of the quoted total cost to begin the work. Once the preparation work is complete, they present the work to the client for their approval to actually go ahead and ‘place’ the ads into the selected media channels. Some of these channels must be fully paid before placement can occur; others allow for spreading the payment across separate weeks – in any case, the first payment must occur before the placement can begin, and with campaigns that run for multiple weeks, each week’s payment must be made before the week begins. The program you are to write should be capable of obtaining information about a potential advertising campaign for various clients, and from that generate a quote. The quotes are stored (in memory), and as payments are made, the amount owing is decreased, and the total earned from that campaign is increased. The program should be able to report summary information about all campaigns, as explained further in the various functional requirements listed later. ( Page 2 of 9 ) Functional Requirements The following are the Functional Requirements (FR) that the program must achieve. FR-1: The program must be a text-console menu-based system As we have not yet learned about making GUI programs in Java, you are to make a program that operates through the console (using System.out for output, and Scanner for input). The program needs to allow the user flexibility in what actions they perform, and so you should be designing the user interaction to make use of menus, that is, you display to the user a list of the actions that they can perform as a numbered list, and the user selects the desired action by entering the corresponding number. Some actions available in the top-level menu may lead into a period of being in a sub-menu which has a task-specific set of actions that could be done – if so, there needs to be a way to ‘exit’ back to the main/top- level menu. FR-2: Allow the user to create a quote for a new advertising campaign for a client Each new advertising campaign job from a client (or potential client, if they’ve never used the agency before), needs to begin by setting up the quote. A quote has two parts: The cost of preparing the campaign (e.g. artwork, soundwork, videos), and the cost of running the campaign (also called ‘placement’ of the campaign). Further details on the way in which costs are worked out for the various different target media channels is explained in other Functional Requirements. Note: You are not expected to cater for multiple different types of campaigns in the one quote. (e.g. If a client wants to have both a radio advertising campaign and a television advertising campaign, these can be considered as separate campaign jobs). But you are allowed to try this if you feel confident. FR-3: Allow quoting for radio and Spotify advertising campaigns This type of ad campaign relies solely on audio. The cost of preparing a campaign for these media channels is $20 per 15 seconds. For example, perhaps the school wanting to advertise its “open day” event, wants 3 different 30-second ads created and will select 2 to actually run. Each ad will be for 30 seconds and feature different wording (two will be for a general message about the school having the open day and giving general information about the school, the third will be saying specific events that are occurring during the open day). As the agency is preparing 3 ads, the cost of preparation work is $120. (3 x (2 x $20)). As another example, a home furniture shop may want a campaign to advertise its Spring Clearance sale, and it wants one 15-second ad and another 30-second ad that gives greater detail. The cost of this would be: ($20) + (2 x $20) which is $60. To actually run the ads once the preparation work is completed, the following rules apply for ads placed on radio: · The client must nominate how many radio stations they want it to be played on during business- hours (Mon-Fri from 8am until 6pm), and how many weeks they want (minimum of 1 week – any consecutive 7 day period). For each radio station, it will cost $70 for each week. · The client must nominate how many radio stations they want it to be played on during evenings (Monday to Friday, from 6pm until 11pm), and again how many weeks they want (minimum of 1 week). For each radio station, it will cost $60 for each week. · The client must nominate how many radio stations they want it to be played on during overnight and weekends (all times not already covered by the previous two categories), and again how many weeks they want (minimum of 1 week). For each radio station, it will cost $35 for each week. For example, if the school wants radio advertising on 6 radio stations during business hours for 3 weeks, and advertising on 3 radio stations during evenings for just 2 weeks, the calculation will be: 3 x (6 * 70) + 2 x (3 * $60)which is $1620 all up. FR-4: Allow quoting for television advertising campaigns This type of ad campaign relies solely on television broadcasting. The cost of preparing a campaign for these media channels is $110
Answered 2 days AfterMay 29, 2021

Answer To: Assignment 2 Task Specification [ITECH2306] Assignment 2 Advertising Agency quote-management system...

Ankush answered on May 31 2021
133 Votes
QuoteManagementSystem/.idea/.gitignore
# Default ignored files
/shelf/
/workspace.xml
QuoteManagementSystem/.idea/description.html
Simple Java application that includes a class with main() method
QuoteManagementSystem/.idea/encodings.xml




QuoteManagementSystem/.idea/misc.xml







QuoteManagementSystem/.idea/modules.xml






QuoteManagementSystem/.idea/project-template.xml

IJ_BASE_PACKAGE
QuoteManagementSystem/.idea/uiDesigner.xml


























































































































QuoteManagementSystem/.idea/workspace.xml




















































































1622299278423


1622299278423





























































































QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/costcenter/CostUtility.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/handlers/CampaignPlacementHandler.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/handlers/CampaignPreparationHandler.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/handlers/FullCampaignHandler.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/implementations/NewsPaperAdImpl.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/implementations/RadioAndSpotifyAdImpl.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/implementations/TelivisionAdImpl.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/implementations/WebAndAppAdImpl.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/menu/MenuHandler.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/menu/MultipleMenuHandlingSystem.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/menu/NewsPaperMenuHandler.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/menu/RadioAndSpotifyMenuHandler.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/menu/TVAdMenuHandler.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/menu/WebAndAppMenuHandler.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/model/Advertisement.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/model/Client.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/QMSMainApp.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/java/UtilityMethods.class
QuoteManagementSystem/out/production/QuoteManagementSystem/main/test/GenericTest.class
QuoteManagementSystem/QUOTE MANAGEMENT SYSTEM.docx
QUOTE MANAGEMENT SYSTEM
· Introduction to Assignment:
Quote Management System is an Application to generate quote based on advertisement specification for multiple clients. You can create new or modify existing clients using this app. The instructions are laid out in print statements and you will start the application. This a menu-based application and more menu options can be added to scale multiple scenarios.
· Requirements Specification of the Assignment:
To complete the Assignment below are the requirements:
· Java Runtime Environment.
· IDE of your choice.
· OOP Knowledge.
TO run the program just run QMSMainApp.java and go along the i/o statements.
· Source Code:
· I have done coding on Java 13 and attached is the source code zip file.
· Source code contains multiple modules and classes across different packages.
· There are two main classes one for app and other for test cases.
· Main and Utility Classes are also written apart from app architecture.
· Menu and Implementations are handled separately.
· Application and Implementation:
I have implemented it based on All oops concepts in Java. You can add any number of clients you want (as it is in memory system, take care of not loading it too much).
The Functional Requirements are laid out in the app code and make sure you follow menu instructions when you run the code.
The concepts described in Assignment are all taken care of.
1. Abstract Classes
2. Method Overriding
3. Polymorphic Variables
4. Polymorphism
5. Aggregation
6. Inheritance.
7. TDD Approach (Tests written for utilities and getters. I have written tests in a different main class. So we have 2 main classes one for application other for testing, keep note of that while running java -jar(just in case if you run that way)).
8. Git and other things need to be taken care by the Student him/herself.
See below for more
        Criteria
        Status
        Assessment Item 1: Correctness of Functionality
        
        FR-1: The program must be a text-console menu-based system
        Done
        FR-2: Allow the user to create a quote for a new advertising campaign for a client
        Done
        FR-3: Allow quoting for radio and Spotify advertising campaigns
        Done
        FR-4: Allow quoting for television advertising campaigns
        Done
        FR-5: Allow quoting for newspaper advertising campaigns
        Done
        FR-6: Allow quoting for Web and App advertising
        Done
        FR-7: Progressively specify and display quote for desired advertising approach
        Done
        FR-8: Program must allow quote to be accepted for design to proceed
        
        FR-9: Program must allow client to agree to proceed with placement, or abandon the job
        
        FR-10: The system should keep all clients’ campaign details in the system
        Done
        FR-11: It must be possible to see the current status of any quote
        Done
        Assessment Item 2: Ability to appropriately designate responsibilities to classes across the system
        Done
        Assessment Item 3: Ability to use inheritance to make subclasses
        Done
        Assessment Item 4: Ability to use polymorphic variables to refer to an object of any subclass type
        Done
        Assessment Item 5: Ability to use polymorphic method calls
        Done
        Assessment Item 6: Ability to implement aggregation
        Done
        Assessment Item 7: Ability to perform input and output
        Done
        Assessment Item 8: General Ability to develop a programming solution to a problem
        Done
        Assessment Item 9: Ability to use Git to keep a history of incremental progress on a project
        NA
        Assessment Item 10: Ability to follow a test-driven approach
        Done
· O/P Screenshots:
I have written some test cases. You can test app using those and by normal running as well. Below screenshots for only once scenario. Please
QuoteManagementSystem/QuoteManagementSystem.iml








...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here