The “Inventory Management”
Order ID 53563633773 Type Essay Writer Level Masters Style APA Sources/References 4 Perfect Number of Pages to Order 5-10 Pages Description/Paper Instructions
The “Inventory Management” Assignment
Objectives:
- Use inheritance to create base and child classes
- Utilize multiple classes in the same program
- Perform standard input validation
- Implement a solution that uses polymorphism
Problem:
A small electronics company has hired you to write an application to manage their inventory. The company requested a role-based access control (RBAC) to increase the security around using the new application. The company also requested that the application menu must be flexible enough to allow adding new menu items to the menu with minimal changes. This includes re-ordering the menu items and making changes to the description of a menu item without having to change the code.
Security:
The company has suggested to start the application by prompting the user for a username and password to authenticate the user. There are two types of users at this company, managers and employees. If managers log on to the application, they will see all options on the menu list. If employees log on to the application, they will see a limited set of options on the menu list. User information is stored in Users.dat file, which may or may not exist at the start of the program. A super user “admin” with password “admin” has already been hardcoded in the program to allow for the initial setup and the creation of other users. The Users.dat file contains the FirstName, LastName, Username (case insensitive), HashedPassword and a flag to indicate whether a user is a manager or not. The file is comma separated and it is formatted as follows:
Joe, Last, jlast, 58c536ed8facc2c2a293a18a48e3e120, true Sam, sone, samsone, 2c2a293a18a48e3e12058c536ed8facc, false Jane, Best, jbest, 293a18a48e3e12052058c536ed8facc2c, false
Note: Ensure that the ‘AddUser’ function does not add duplicate values, and the ‘ChangePassword’ function does not change password if username/password is entered incorrectly. If adding a new user or changing the password is successful, return true, or else return false.
Application Menu:
The menu of the application is dynamically loaded and displayed to the user only after the user successfully logs on. The menu items will be loaded from file “MenuList.dat”, which may or may not exist at the start of the application. If the file doesn’t exist, the application should show at least an Exit menu item as default. The file will contain all menu items details, including the name of the command that will be executed when the menu item is selected. If a menu item is marked as restricted (Boolean flag), only managers can see that item. The file contains the following comma separated fields, Description, a Boolean flag to indicate if the option is restricted to managers only, and the name of the menu command that will be executed when the option is chosen. The order and option number of a menu item may change depending on how they are listed in the file. The Exit option will always be listed last and it will not be in the file.
Below is a sample of how the MenuList.dat file looks like:
Add User, true, AddUserCommand Delete User, true, DeleteUserCommand Change Password, false, ChangePasswordCommand Add New Product, true, AddProductCommand
Note: The command name of each menu item must match the name of the class that you will create in the code (See AddProductCommand class in the code for example).
Inventory:
The inventory consists of multiple products of type Product stored in class ProductCatalog. The ProductCatalog is responsible of all inventory operations that add, remove, find and update a product. When printing a product information, the product retail price should be calculated and displayed as well. Retail price = (cost + (margin * cost/100)). A list of functions has been added to this class in the provided code template. You must implement all listed functions. The inventory products will be saved in file Inventory.dat, which may or may not exist when the program first starts. The file will contain the product unique id (int), product name (string), cost (double), quantity (int) and margin (int, integer that represents margin percentage).
The Inventory.dat file is comma separated and formatted as follows:
3424, Smart Watch, 20.45, 23, 80 65454, Flat Screen TV, 465.98, 15, 35 435, Computer Monitor, 123.54, 84, 43
Program Flow:
- Program starts in main() method
- Prompt user for username and password
- Authenticate user and maintain the logged-on user object
- Load inventory
- Load and create menu list
- Display menu list and prompt the user for option
- Execute selected option
- Keep displaying the menu until the user chooses to exit
Output Format:
Enter username: some username Enter password: some password //Repeat prompts until user is authenticated OR show error and option to exit. Invalid username or password! Press enter to continue or “Exit” to exit: Enter username: some username Enter password: some password Welcome Firstname LastName! Inventory Management System Menu //This is the header of the MenuList // The order and option number of a menu item may change depending on how they are listed in the MenuList.dat file. The Exit option will always be listed last and it will not be in the MenuList.dat file. 1- Add user 2- Remove user 3- Change password 4- Add new product 5- Update product information 6- Delete product 7- Display product information 8- Display inventory 9- Exit Enter your selection: 7 Enter product name: sMaRt wAtCh Id Name Cost Quantity Retail ---------------------------------------------------- 3424 Smart Watch $20.45 23 $36.81 //Repeat the menu after each command is executed
Unit Testing:
A unit test method is required to test each of the methods listed below. These methods will be used by the unit testing framework to test the accuracy of your code.
- InventoryManagementSecurity.AuthenticateUser
- InventoryManagementSecurity.AddNewUser
- InventoryManagementSecurity.RemoveUser
- InventoryManagementSecurity.ChangePassword
- MenuList.AddMenuItem()
- ProductCatalog.AddUpdateProduct(Product product)
- ProductCatalog.RemoveProduct(int productId)
- ProductCatalog.FindProduct(int productId)
- ProductCatalog.PrintProductInformation(int productId)
- ProductCatalog.PrintInventoryList()
Grading:
- Coding standards, style and comments (10 Points)
- Unit testing methods x 10, (2 points for each of the methods mentioned above – 20 Points)
- The rest of the grade will be broken down as follows:
- InventoryManagementSecurity.AuthenticateUser (5 Points)
- InventoryManagementSecurity.AddNewUser (5 Points)
- InventoryManagementSecurity.RemoveUser (5 Points)
- InventoryManagementSecurity.ChangePassword (5 Points)
- MenuList.AddMenuItem() (20 Points) //This includes implementing all commands for the menu list
- ProductCatalog.AddUpdateProduct(Product product) (10 Points)
- ProductCatalog.RemoveProduct(int productId) (5 Points)
- ProductCatalog.FindProduct(int productId) (5 Points)
- ProductCatalog.PrintProductInformation(int productId) (5 Points)
- ProductCatalog.PrintInventoryList() (5 Points)
Notes:
- The “Inventory Management” Maven solution zip file has been provided to you in eLearning.
- All *.dat files are assumed to be local to the current executable.
- Do not change the methods stubs or constructors in the template. If in doubt, please ask.
- Your program is expected to have basic input validation.
- You may use ArrayList in this project
- Part 1 deliverables: Unit Test methods + AuthenticateUser() function (no add or remove user is required in part 1). See eLearning for due date.
- Part 2 deliverables: Functioning program including the Unit Test methods
RUBRIC
QUALITY OF RESPONSE NO RESPONSE POOR / UNSATISFACTORY SATISFACTORY GOOD EXCELLENT Content (worth a maximum of 50% of the total points) Zero points: Student failed to submit the final paper. 20 points out of 50: The essay illustrates poor understanding of the relevant material by failing to address or incorrectly addressing the relevant content; failing to identify or inaccurately explaining/defining key concepts/ideas; ignoring or incorrectly explaining key points/claims and the reasoning behind them; and/or incorrectly or inappropriately using terminology; and elements of the response are lacking. 30 points out of 50: The essay illustrates a rudimentary understanding of the relevant material by mentioning but not full explaining the relevant content; identifying some of the key concepts/ideas though failing to fully or accurately explain many of them; using terminology, though sometimes inaccurately or inappropriately; and/or incorporating some key claims/points but failing to explain the reasoning behind them or doing so inaccurately. Elements of the required response may also be lacking. 40 points out of 50: The essay illustrates solid understanding of the relevant material by correctly addressing most of the relevant content; identifying and explaining most of the key concepts/ideas; using correct terminology; explaining the reasoning behind most of the key points/claims; and/or where necessary or useful, substantiating some points with accurate examples. The answer is complete. 50 points: The essay illustrates exemplary understanding of the relevant material by thoroughly and correctly addressing the relevant content; identifying and explaining all of the key concepts/ideas; using correct terminology explaining the reasoning behind key points/claims and substantiating, as necessary/useful, points with several accurate and illuminating examples. No aspects of the required answer are missing. Use of Sources (worth a maximum of 20% of the total points). Zero points: Student failed to include citations and/or references. Or the student failed to submit a final paper. 5 out 20 points: Sources are seldom cited to support statements and/or format of citations are not recognizable as APA 6th Edition format. There are major errors in the formation of the references and citations. And/or there is a major reliance on highly questionable. The Student fails to provide an adequate synthesis of research collected for the paper. 10 out 20 points: References to scholarly sources are occasionally given; many statements seem unsubstantiated. Frequent errors in APA 6th Edition format, leaving the reader confused about the source of the information. There are significant errors of the formation in the references and citations. And/or there is a significant use of highly questionable sources. 15 out 20 points: Credible Scholarly sources are used effectively support claims and are, for the most part, clear and fairly represented. APA 6th Edition is used with only a few minor errors. There are minor errors in reference and/or citations. And/or there is some use of questionable sources. 20 points: Credible scholarly sources are used to give compelling evidence to support claims and are clearly and fairly represented. APA 6th Edition format is used accurately and consistently. The student uses above the maximum required references in the development of the assignment. Grammar (worth maximum of 20% of total points) Zero points: Student failed to submit the final paper. 5 points out of 20: The paper does not communicate ideas/points clearly due to inappropriate use of terminology and vague language; thoughts and sentences are disjointed or incomprehensible; organization lacking; and/or numerous grammatical, spelling/punctuation errors 10 points out 20: The paper is often unclear and difficult to follow due to some inappropriate terminology and/or vague language; ideas may be fragmented, wandering and/or repetitive; poor organization; and/or some grammatical, spelling, punctuation errors 15 points out of 20: The paper is mostly clear as a result of appropriate use of terminology and minimal vagueness; no tangents and no repetition; fairly good organization; almost perfect grammar, spelling, punctuation, and word usage. 20 points: The paper is clear, concise, and a pleasure to read as a result of appropriate and precise use of terminology; total coherence of thoughts and presentation and logical organization; and the essay is error free. Structure of the Paper (worth 10% of total points) Zero points: Student failed to submit the final paper. 3 points out of 10: Student needs to develop better formatting skills. The paper omits significant structural elements required for and APA 6th edition paper. Formatting of the paper has major flaws. The paper does not conform to APA 6th edition requirements whatsoever. 5 points out of 10: Appearance of final paper demonstrates the student’s limited ability to format the paper. There are significant errors in formatting and/or the total omission of major components of an APA 6th edition paper. They can include the omission of the cover page, abstract, and page numbers. Additionally the page has major formatting issues with spacing or paragraph formation. Font size might not conform to size requirements. The student also significantly writes too large or too short of and paper 7 points out of 10: Research paper presents an above-average use of formatting skills. The paper has slight errors within the paper. This can include small errors or omissions with the cover page, abstract, page number, and headers. There could be also slight formatting issues with the document spacing or the font Additionally the paper might slightly exceed or undershoot the specific number of required written pages for the assignment. 10 points: Student provides a high-caliber, formatted paper. This includes an APA 6th edition cover page, abstract, page number, headers and is double spaced in 12’ Times Roman Font. Additionally, the paper conforms to the specific number of required written pages and neither goes over or under the specified length of the paper. GET THIS PROJECT NOW BY CLICKING ON THIS LINK TO PLACE THE ORDER
CLICK ON THE LINK HERE: https://collegepaper.us/orders/ordernow
Do You Have Any Other Essay/Assignment/Class Project/Homework Related to this? Click Here Now [CLICK ME] and Have It Done by Our PhD Qualified Writers!!