Assignment 4 - Point of Sale system

Develop a limited version of Point of Sale system. You have seen it already, its what a salesman use at medical or deparmentsal stores to make invoices. Making complete system is difficult at this level and need more time than we are left with. So build only following functionalities: (I recommend to save all data in MySQL database, DB lecture links already shared at FB Group, you can also use binay files, if you feel not comfortable with using MySQL after watching video lectures).

Customers CRUD (Create, Retrieve, Update, Delete) and List functionality using Java GUI.
Customer table and class shall have: id, name, email, gender, active, city, cellNumber
Create means (provide short key: Ctrl+N), provide a JFrame based form to add new customer. List means, show all customers ID-Name in JList, so that user could select the customer to perfrom Update, Show/Retrieve or Delete operation. Update means, user shall be able to update the customer record. He shall select the customer from list, that customer data shall be loaded in form fields, when user press the Update button, the data shall be updated in database/file. Do not allow to update the customer ID. Delete means, after selecting the customer ID-Name from JList, if user press the Delete key from keyboard or click on Delete button given on the GUI, the selected customer shall be deleted from database/file.

Implement Products CRUD and List functionality. 
Product attributes shall be: id, name, unit, unitPrice, quantityInStock

Invoice CRUD
Invoice would be splited into two tables with following attributes.
Invoice: invoiceId, customerId, date, total
InvoiceDetails: invoiceDetailId, productId, unit, unitPrice, quantity
When making invoice, show all added customers in ComboBox so that user can select a customer before making invoice. Please note, if 3 products are sold to a customer. There would be one entry in 'invoice' table and 3 entries in InvoiceDetails table, one entry for each product that is sold. Make another inteface, that shall show list of invoices in JList (Invoice ID - Customer Name), when user selected an entry, it shall show invoice data (product ids, name, prices) on right section of JFrame, preferabling using JTable or other suitable component. Provide Update and Delete link, when pressed, delete the invoice or open in same form that you used while creating it, so that user could change it. Optional: Make a GUI that shall display total sale of each day in JTable or JList.

You are free to make GUI as you like. and use components whatever you like. But I expect you would use JMenu, JTable, Tabs and other most suitable components for the required task in addition to basic components e.g. JButton, JTextFiled, JComboBox, JList, etc. Try to make it good looking using images, icons etc. wherever possible.


Post a Comment