- Topic: IO Operations and Serialization
- Type: Group Task
- Scenario: You have been hired to develop a Point of Sales (POS) system for the "Super-Saving" supermarket chain.
- Input: The cashier enters an item code and the amount/quantity.
- Data Retrieval: The system fetches details (price, weight/size, manufacturing/expiry dates, manufacturer) from a CSV database.
- Discounts: Items are occasionally given discounts ranging from 0% to 75%.
- The Final Bill: The system processes the list and produces a bill containing:
- Cashier Name & Branch
- Customer Name (if registered)
- Item List (Unit price, Quantity, Discount, Net price)
- Totals (Total Discount, Total Cost)
- Timestamp: Date and time the bill was printed.
- Output Format: The final bill for the customer must be saved as a PDF file.
- The Problem: A customer might forget to weigh an item (e.g., vegetables) after half their items are already scanned.
- The Solution: The cashier must be able to save the current bill as "pending" and proceed to check out other customers while the first customer retrieves their missing item.
- Hint: This usually requires object serialization to save the temporary state of the bill.
- Analysis: The system must analyze bills to generate a total revenue report for a specific date range.
- Delivery: This report must be automatically emailed to the sales team at
salesteam@supersaving.lk.
Identify all Functional and Non-Functional requirements for the POS system based on the scenario above.
Decide on the best file formats to use for saving data for each requirement (e.g., What format is best for a printable bill? What format is best for a temporary pending bill object?).
Design and implement the solution using Object-Oriented Programming principles.
- Single File Only: You must include all classes in a single file. (Note: This is generally bad practice, but required here for grading).
- Naming Convention: The class containing the
mainmethod must be named:SuperSaverPOSGroup_<<Your Group Name>>. - Documentation (Javadoc):
- Top of File: Include a Javadoc comment listing your identified requirements and explaining the overall program functionality.
- Code Level: Every class and method must have a Javadoc comment explaining its functionality and parameters.
- Readability: Ensure proper variable naming and comments throughout.
- File Format: Save your Java code as a PDF file.
- Rename: Rename the file with your group name.
- Plagiarism Check: This is a Turnitin assignment.
- Similarity must be less than 20%.
- Submissions with higher similarity will not be graded.