Software implementation of a point of sale terminal

Assignment Help JAVA Programming
Reference no: EM133386252 , Length: 11 pages

Software Construction and Development

Point of Sale Terminal

Problem Statement

The problem statement is pretty simple. We need a software implementation of a Point of Sale terminal at a typical store. The users of the system are the cashiers sitting at the sales terminals of the store. The users can use the system to manage sales items in the store, customer details and of course the sales. The system should be capable of presenting some reports related to the sales, items and customers.

All data should be stored in flat file system. You'll come to know about the details later in this handout.

User Interface

You are not put in the trouble of creating some fancy GUIs at the moment. What you are supposed to do is to develop a simple console based system. When the system starts the user is presented with the main menu as follows:

Main Menu

1- Manage Items
2- Manage Customers
3- Make New Sale
4- Make Payment
5- Print Reports
6- Exit

Press 1 to 5 to select an option:

The user selects his/her desired option by pressing one of the numbers from 1 to 5.
Upon selecting an option from the main menu the system presents user with a corresponding sub menu. The details are as follows:

Items Menu

1- Add new Item
2- Update Item details
3- Find Items
4- Remove Existing Item
5- Back to Main Menu
Press 1 to 5 to select an option:

Customers Menu

1- Add new Customer
2- Update Customer details
3- Find Customer
4- Remove Existing Customer
5- Back to Main Menu
Press 1 to 5 to select an option:

Reports Menu

1- Stock in hand
2- Outstanding orders
3- Customer Balance
4- Sales Receipts
5- Back to Main Menu
Press 1 to 5 to select an option:

Items Menu

When the user selects the "Manage Items" option from the main menu he/she is presented with the "Items Menu".
The user is allowed to add new Item, update Item information and to search for Items and also remove an existing Item.

Add New Item
When the user selects add new Item option, he is presented with the system generated (new) Item Id and then prompts the user to enter the following information of the Item:

Description, Price, Quantity

Upon getting all info the system confirms from the user to save the info and then if the user confirms the system saves the info to file shows confirmation message (e.g. Item Information successfully saved) and again the Item Menu.

Note that when a new customer is added the creation date will be the current date to be stored in the file.

Modify Item Details
The system asks user to enter Item Id and then if found displays the item data. Then the system asks user to enter the item details which he wants to modify and to leave blank otherwise.

Upon getting all info the system confirms from the user to save the info and then if the user confirms the system saves the info to file shows confirmation message (e.g. Item Information successfully saved) and again the Item Menu.

Find Item
The system asks the user to enter any of the item info and then finds the item from the file according to the given information. The user can leave blank the fields he/she does not want in the search criteria.
e.g. the screen presented should look like this:

Please specify atleast one of the following to find the item. Leave all fields blank to return to Customers Menu:

Item ID:
Description:
Price:
Quantity:
Creation Date:

If the item is found then its details are displayed or an appropriate message is displayed on the screen. Following output is shown to the user:

Remove Existing Item

User enters the "Item ID" and if a valid item id exist then a confirmation from the user is asked. After confirmation the specified "Item ID" is removed from the file.

Note that an item should only be allowed to remove if there is no recorded sale for the item at the moment and appropriate message should be displayed to the user for those items.

Customers Menu
When the user selects the "Manage Customers" option from the main menu he/she is presented with the "Customers Menu".
The user is allowed to add new customers, update their information and to search for customers and also remove an existing customer.

Add New Customer
When the user selects add new customer option, he is presented with the system generated (new) Customer Id and then prompts the user to enter the following information of the customer:
Name, Address, Phone and Email, Sales Limit
Upon getting all info the system confirms from the user to save the info and then if the user confirms the system saves the info to file shows confirmation message (e.g. Customer Information successfully saved) and again the Customers Menu.

Note that when a new customer is added his payable amount will be zero.

Modify Customer Details
The system asks user to enter Customer Id and then if found displays the customer data. Then the system asks user to enter the customer details which he wants to modify and to leave blank otherwise.
Upon getting all info the system confirms from the user to save the info and then if the user confirms the system saves the info to file shows confirmation message (e.g. Customer Information successfully saved) and again the Customers Menu.

Find Customer
The system asks the user to enter any of the customer info and then finds the customer from the file according to the given information. The user can leave blank the fields he/she does not want in the search criteria.
e.g. the screen presented should look like this:

Please specify atleast one of the following to find the customer. Leave all fields blank to return to Customers Menu:

Customer ID:
Name:
Email:
Phone:
Sales Limit:

If the customer is found then his details are displayed or an appropriate message is displayed on the screen. Following output is shown to the customer:

Remove Existing Customer

User enters the "Customer ID" and if a valid customer id exist then a confirmation from the user is asked. After confirmation the specified "Customer ID" is removed from the file.

Note that a "Customer ID" which is associated with any sales cannot be removed from the system and appropriate message should be displayed to the user.

Make New Sale
When the user selects the "Make New Sale" option from the Main Menu, the screen appears with the sale date/time and serial number of the new sale. The cashier is prompted to enter the "CustomerID"and system waits for input from the cashier.

Example screen:

Sales Date: 05/06/2014

Enter Customer ID: 2

The cashier is then asked to add items for this sales.He is prompted to enter "ItemID" and system waits for input from the cashier. As soon as the cashier enters ItemID, system displays item "Description" and "Price" if a correct ItemID is found and prompts cashier to enter "Quantity".

Example screen:

Item Id: 123
Description: Java: The Complete Reference
Price: Rs. 650.00
Quantity: 1
Sub-Total: Rs. 650.00

Press 1 to Enter New Item
Press 2 to End Sale
Press 3 to Remove an existing Item from the current sale
Press 4 to Cancel Sale

Choose from option 1 - 4:

Note: Text in red represents user input and in green represent system generated output.

Enter New Item

When the user types "1", the system responds by prompting user once again for new Item Id as before and upon entry of each new item the system displays the "Total amount payable".
The process of entering new items will continue until all items have been processed at which point the cashier selects the "End Sale" option by typing "2".
End Sale
This system operation will involve computing the total for the sale and communicating it to the user by displaying on the console. Following out should be displayed after ending the sale:

The user will be taken to the Main Menu after ending the sale.Note that the total sales for a single day for a single customer should not exceed the sale limit of the customer.

Note that every new sale created against a customer will increase the customer balance by the sales amount.

Make Payment

The system prompts the user to enter the "Sales ID" and if a valid "Sales ID" is given then following output is shown:

Sale ID: 3
Customer Name: Javed Ahmed
Total Sales Amount: 30,000
Amount Paid: 17,550
Remaing Amount: 12,450
Amount to be Paid: 10,000

In the above output the user will enter the amount to be paid for making the payments against the sale. Following action will be taken after a payment is entered:

• A new payment will be recorded
• Customer balance will be decreased for the associated customer

Note that the amount paid is calculated using the sum of all amounts of receipts of given "Sales ID".

View Reports

If the user selects view reports then he/she should be asked to specify one of the following reports:

1- Stock in Hand
2- Customer Balance
3- Sales Report (by date)
4- Outstandinding Sales (by Date)

Stock in hand

The user is asked for an "Item ID" range as an input. Then, he is presented with a summary of stock in hand as follows:

Customer Balance
The user is prompted for Customer Id and if the customer is found then his personal information and the balance is presented to the user:

Please enter Customer Id: 123

Customer Name: Mr. Bilal Afzal
Address: 145A, Garden Town, Lahore
Phone: 04258858858
Email: [email protected]
Balance: Rs. 1000.00

Sales Report
The user is prompted for two dates to specify the period for which the report is to be generated. If the user leaves bland one of the dates then the report is printed for a single day. The report format is as follows:

Outstanding Sales
The user is prompted for two dates to specify the period for which the report is to be generated. If the user leaves bland one of the dates then the report is printed for a single day. The report format is as follows:

Design Information and Requirements

• Use flat file systems to store all data the format of the files is given below but broadly you should have one file for customer information, second for items information, third for sales and fourth for receipts.
• You should also have different classes for: Customer, Item and Sale. Make sure you separate the implementation from the interface completely because we are going to ask you to give the same assignment with GUI features later on.

File System

The data to be preserved in files is given below:

Item(ItemId, Description, Price, Quantity, CreationDate)
Customer (CustomerId, Name, Address, Phone, Email, AmountPayable, Sales Limit)
Sale (OrderId, CustomerId, Date, Status)
SaleLineItem (LineNo, OrderId, ItemId, Quantity, Amount)
Receipt (ReceiptNo, ReceiptDate,OrderNo, Amount)

The underlined attributes are unique (key attributes) and your system autogenerates these numbers. You need to store all data in plain text files.

Attachment:- Software Construction and Development.rar

Reference no: EM133386252

Questions Cloud

What are some causes of severe injurious behaviors in early : What are some causes of severe/injurious behaviors in early childhood? How can these types of behaviors be avoided in the classroom?
Position in larger society and developing reservations : What options do American Indians have for improving their position in the larger society and developing their reservations?
Describe 4 key take-aways that are crucial for understanding : Describe 4 key take-aways that are crucial for understanding this week's topic. Draw the answers from at least 2 of the resources for this week.
Describe how this could impact the individual in workplace : Be sure to include a description of how the disorder affects those who suffer from this in their daily lives. Describe how this could impact the individual
Software implementation of a point of sale terminal : Software Construction and Development - software implementation of a Point of Sale terminal at a typical store. The users of the system are the cashiers sitting
What are 5 family therapy interventions or treatment methods : What are 5 family therapy interventions or treatment methods for adolescent depression? Please provide a detailed description of each one.
What is meant by the reciprocal influence of each level : Describe what is in each of the levels starting with the one in the center. What is meant by the reciprocal influence of each level on the others?
Taking into account discriminatory dynamics : Taking into account the discriminatory dynamics of the three non-Hispanic White Ethnic subpopulations this week--Irish Americans,
Explain what socialization mean : Explain how McDonaldization which is how poeple wants to get things done fast and how global warming is something that has multiple steps

Reviews

Write a Review

JAVA Programming Questions & Answers

  Recursive factorial program

Write a class Array that encapsulates an array and provides bounds-checked access. Create a recursive factorial program that prompts the user for an integer N and writes out a series of equations representing the calculation of N!.

  Hunt the wumpus game

Reprot on Hunt the Wumpus Game has Source Code listing, screen captures and UML design here and also, may include Javadoc source here.

  Create a gui interface

Create GUI Interface in java programing with these function: Sort by last name and print all employees info, Sort by job title and print all employees info, Sort by weekly salary and print all employees info, search by job title and print that emp..

  Plot pois on a graph

Write a JAVA program that would get the locations of all the POIs from the file and plot them on a map.

  Write a university grading system in java

University grading system maintains number of tables to store, retrieve and manipulate student marks. Write a JAVA program that would simulate a number of cars.

  Wolves and sheep: design a game

This project is designed a game in java. you choose whether you'd like to write a wolf or a sheep agent. Then, you are assigned to either a "sheep" or a "wolf" team.

  Build a graphical user interface for displaying the image

Build a graphical user interface for displaying the image groups (= cluster) in JMJRST. Design and implement using a Swing interface.

  Determine the day of the week for new year''s day

This assignment contains a java project. Project evaluates the day of the week for New Year's Day.

  Write a java windowed application

Write a Java windowed application to do online quiz on general knowledge and the application also displays the quiz result.

  Input pairs of natural numbers

Java program to input pairs of natural numbers.

  Create classes implement java interface

Interface that contains a generic type. Create two classes that implement this interface.

  Java class, array, link list , generic class

These 14 questions covers java class, Array, link list , generic class.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd