Title: “Program Assignment 1: Event-Driven Programming”
Objectives: To practice event-driven programming using Java-based GUIs. To refresh your basic Java skills. To simulate (albeit at a very high-level) an enterprise application.
Description: Develop a Java program that creates a standalone GUI application that simulates an e-store (we’ll call our store Nile Dot Com… we’re not quite as big as Amazon.com!)[1] which allows the user to add in stock items to a shopping cart and once all items are included, total all costs (including tax), produces an invoice, and append a transaction log file.
Your program development must include the following steps:
- Create a main GUI containing the following components:
- An area that allows the user to input data into the application along with the descriptive text that describes each input area.
- A total of six buttons as shown below with functionality as described below.
- As illustrated below, the various buttons on the interface are only accessible at certain points during a user’s interaction with the e-store.
- An input file named “txt”. This is a comma separated file which contains the data that will be read by the application when the user makes a selection. Each line in this file contains three entries; an item id (a string), a quoted string containing the description of the item, and the unit price for one of the item (a double). A sample file is provided for you on WebCourses. Feel free to create your own input file.
- An output file (append only) named “txt” must be created that uniquely logs each user transaction with the e-store. The unique transaction id will be generated as a permutation of the date/time string when the transaction occurred (see below).
Restrictions:
Your source file shall begin with comments containing the following information:
/* Name: <your name goes here>
Input Specification: The file “inventory.txt” as described above (see example below as well).
Output Specification: Output is to appear in the specified components of the GUI and various message boxes that appear, plus the contents of the
“transactions.txt” log file that will be generated.
Deliverables:
- Submit a working copy of your source code (all .java files), including your inventory.txt file, via WebCourses no later than 11:59pm Sunday September 13, 2020.
- Include a file that contains screen shots, similar to those illustrated below, that shows your application in action as a user interacts with your e-store to purchase items.
- Include a screen shot of your “transactions.txt” file showing at least the last few transactions (similar to the one shown on the last page of this document).
- You can zip all of the above into a single folder.
Additional Information:
Shown below are example screen shots of the GUI to help illustrate how your application is to operate.
- Screen shot of the contents of an example “inventory.txt” file.
generates
file.
- GUI after user specifies total number of items in the order and makes a selection for item #1, but before clicking the “Process Item” button.
| Information on the item selected/purchased has been extracted from the inventory file and written into the window on the line for item #1. Note proper currency formatting. |
- GUI after user has selected the first item and clicked the “Process Item #1” button.
- When the user clicks on the “Confirm Item #1” button, a confirmation information message appears on the screen.
user pressed the Process
Item button. This is the only “error” you will need to catch.
- User enters and processes (but has not yet confirmed) the next item in the order (which is the last one for this order).
- The GUI after the user has entered the information for all the items and confirmed the last item.
- When the user clicks the “View Order” button, the following message box should appear.
- When the user clicks the “Finish Order” button, the invoice message should be generated and displayed.
|
- The transaction file after order shown above was finished. Note the unique transaction ids based on the date and time.
DDMMYYYYHHMM.
- The transaction file after several orders have been completed. Note the unique transaction ids based on the date and time for every separate transaction. This file shows seven separate transactions.
[1] Source = https://www.wonderslist.com/top-10-largest-rivers/




