1.1 How to score high…

  1. Follow the specification carefully, make the software do what it is supposed to!
  2. Ensure the application works smoothly. Fix the bugs!
  3. Make sure it’s installable: once you’ve built your ZIP file, try unpacking it on a different system, in a folder with a different name, with a JDK at a different location, and verify the batch files work properly.
  4. If you think you know how to make this application more impressive, enhance it as appropriate.
  5. Participate in the IVLE forums and help others with their questions.
  6. Do not copy code. You will lose marks for direct use of code from solutions you find elsewhere, and for sharing solutions with other teams.
  7. Write test case classes for as many important classes. Test important classes thoroughly.
  8. Ensure that you create ample data to demonstrate your system

1.2 Assumptions No system requirements can be specified completely and accurately, using only the English language. Hence please make reasonable assumptions, where requirements are ambiguous. Ensure that you have documented them in your report. Clarify with the instructor on critical doubts. 2. System Requirements You are assigned to implement a simple point-of-sale system for automating the University Souvenir Store.
The system, operated by the store keeper, will provide facilities to make payment, replenish stock, check inventory, member registration. The present system is GUI-based, with flat files to store data.
The design of your system should be flexible enough to cater to new requirements and/or changes in the requirements.
Currently there is only one user of the system – the store keeper. 2.1General Requirements

2.1.1 User Interface

The application will be GUI-based using Java Swing APIs.
When the user starts the system, he/she is shown a login screen. Upon successful login, he/she is taken to a main menu screen in which various options are shown. This may take the user to other screens based on the option chosen. Each of the functions described below should end by returning the user to the main menu screen.

2.1.2 Data Files

The data for the inventory and users, as well as transaction records, are currently stored in text-based files. The exact formats of these files is detailed in a later section. It is mandatory that you use those formats.
The data files must be read when the application starts up, and updated whenever needed (e.g. when a new member is added, etc). The system should have the current state persisted at all times, so that even anomalous termination of the application does not result in loss of data.

2.1.2 External Hardware

The system will normally use bar-code readers to obtain the product code (from the product label) and the member id (from the membership card). However, for the time being, these bar-code readers are unavailable. Operators will therefore be prompted for the codes at the console.
Similarly, there will be a receipt printer and an adhesive label printer (for printing barcode labels). For this version of the software, you should build placeholder classes for these devices, that output text to the console. 2.2 Data Requirements

2.2.1 Categories

The products are classified into categories (“clothing”,”mugs”, “stationary”, “diaries”, etc.). Each category is identified by a “category id”, which is a three-letter code (e.g. “CLO” for “clothing”). The list of categories is not hardcoded, but rather stored in a data file named Category.txt as specified in a later section; categories can therefore be added by the store keeper.

2.2.2 Products

Each physical product in the store has a “product id” that identifies it uniquely. The product id is assigned automatically by the system, and consists of the category code, followed by a slash character, and a number which is assigned sequentially to products in the same category, starting from 1. For example, the twelfth product to be registered in the “clothing” category would be assigned a product id “CLO/12”. The list of products is stored in a data file named Products.txt as specified in a later section.
2.2.3 Vendors
The University keeps a list of vendors who supply the product. Vendors related information are stored in a data file named Vendors.txt as specified in a later section.
2.2.4 Transactions
Every billing transaction should be logged in a data file named Transactions.txt as specified in a later section.