Objectives:

  • Apply an object-oriented approach to the design and development of a small software application.

System Requirements:

Your local charity shop has asked you to develop a software system to manage its intake and the sale/hire of the items it stocks. The system will be used by employees (shop assistants and managers) of the store.

An employee should initially be presented with a login message. The employee logs in as either a shop assistant or a manager.

After logging in, a shop assistant should be able to initiate a transaction by entering a list of codes for items and associated quantities. The system should check the stock to see if each item is in stock. If it is, then appropriate details with respect to the item and the quantity should be output to the screen. The total cost of the transaction should also be output. An option to purchase/hire items should also be presented. If the customer agrees to continue with the transaction, then an appropriate receipt including date and time of the transaction, item code/name, quantity, unit cost and total cost should be issued. The stock should be updated to reflect the transaction. The system should keep track of the items and quantities involved in each transaction. Additional charges should apply if items hired are not returned by the due date.

A manager in the store can retrieve the following information from the system:

  • A summary of all items currently in stock
  • Details related to specific items in stock
  • A summary of all sales/hires over a chosen period of time (days/weeks/months/years)

The system should keep track of stock, sales and employee details. This information should be stored in external csv files. The names of these files should be supplied when the application is run.

A text based interface for the system is required.

This project must be implemented in the Java programming language. As can be seen from the deliverables below this project is not just an implementation project, it also involves design and documentation.

The following are the deliverables for the project:

  • A document outlining the Class Responsibility Collaboration (CRC) cards and a UML diagram showing the relationships between the classes.
  • Documentation for the software, generated using the javadoc utility and a help file describing briefly how to run the application.
  • The source code for the system where each Java class is stored in a separate file. Any text files that are required by the system should also be included. These files should be in appropriate subfolders to facilitate direct program compilation and execution when stored in any directory structure (e.g. on a different machine). Do not include any other files (e.g. configuration files for a particular development environment).
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.