bobeezy / video-store-atm-point-of-sale-system Goto Github PK
View Code? Open in Web Editor NEW“My name is Gregory Guy. I have just purchased a video store, and I need an up to date, GUI driven system to keep track of all the stock in my store. I am not happy with the existing system where everything is done by hand. “Currently, the store operates on a cash basis, although a contract system might be in the pipeline. You will be contacted to do this at a later stage, if necessary. I have a shop next door that sells sweets, drinks, chocolates etc, which runs from a separate cash register. This should not be included in the system you develop. “My store not only stocks videos, but also video machines, as well as DVD’s. At a later stage, I would like to also stock Sony PlayStation games, controls, and possibly other stock items. I want to be able to add these into the stock list with the minimum of hassle, and without calling in the help of a programmer / system designer. “I want to store all transactional information in a database, so that my accounting system can interface with the data. “I charge as follows: New Release: (Video or DVD) R16 Older Stock: (Video or DVD) R12 • Video Machine R30 • Video Machine & any two videos: R50 “When I start stocking PlayStation games and/or consoles (or any other stock items), I would probably want to have a two-tier pricing system for them as well (where I can charge more for newer stock). “It would also be nice to be able to change my prices if and when I need to. I therefore would like the ability to change the price of a ‘New Release’, and that should affect all the videos/DVD’s that fall into that category. The same should apply to the other prices mentioned above. “I have a couple of shop assistants that helps me out, and I would like some security built in so that the assistants cannot get access to my financial and other important data. Functionality: “I obviously need the system to take care of the most important part of the business:- the quick and accurate ‘booking out’ of all stock items. The customer, upon bringing me his/her selection, must be charged accordingly, and the items must be marked as ‘out’. “The system should also allow me to quickly and easily record the returned stock items, as and when they do come in. “Sometimes I also want to credit the customer for something, as the tape/DVD/game might have been damaged before they rented it. The item should then be marked as returned, but as money is then given back to the customer, some sort of record should be kept about this credit transaction so that I can trace which assistant allowed the credit. This will help me minimize fraudulent behaviour where assistants can basically book out resources ‘for free’. “I also want the system to have an advance booking facility, where an existing customer can call in and book a certain video/DVD/other item for a certain day. The system should not allow an item to be booked out twice for a certain date, and if something has been booked out and another customer tries to rent it, at least a warning should be displayed, informing the teller that this is the case. In special cases, such a booking can then be ignored, but most times the teller will inform the customer that s/he cannot have that item for the day. A facility should also be included where the booking can be cancelled at any time, if necessary. (For example, if a customer cancels the booking telephonically, whether it is on the day, or some time in advance). “Although it could be considered part of the accounting package, I would like this system to be able to do a daily summary, where I am presented with total sales (monetary value), total number of rentals (total videos; total DVD’s, total machines,) etc. This can be shown to me either on the screen, or in a printed form. I would like you to decide on the format and content of this screen/report. “Another function that I would like you to incorporate, is that the system should be able to do some analysis for me. Examples of this include: • Top Ten rentals • Top Ten customers • Stock items that have not been rented out in 6 months or more. I would like the above three to be done, but if you can think of other examples, feel free to add them in if you have time. “The system should allow me to add/edit all customer details, and if necessary (not often) delete a customer. Customer details to be stored include, but are not limited to: Name Surname Title I.D. Number Address and Postal Code Telephone Number (Work) Telephone Number (Home) Telephone Number (Mobile) “The system should also allow me to update the information regarding my stock items, for example: • Mark a tape as damaged. • Change a video from a ‘New Release’ to ‘Older Stock’. • Change the category it belongs to. “I have several working, but old machines lying around at my house, and they are already network-capable. I would like you to build some functionality where these machines can be linked to the system you are designing so that they can be used as ‘look-up’ machines. Basically, if a shop assistant is not available, but a customer knows the title of the movie they are looking for, they should be able to go to one of these terminals that I will set up throughout my shop, and enter or select the movie name, and perhaps what they are looking for (video/dvd/game etc). If my shop carries the chosen item, then the system should give them enough information (shelf number/category etc.) to be able to locate the item in the shop. It should also show if an item is unavailable, and when it is due back. If they select an invalid item, they should be informed of this. “The above program should run independently of the main system, and should not access the database directly. The video store will have employees, customers, stock and suppliers. Employees, customers and suppliers related to the video store can be created, deleted or updated. Creating / updating / deleting a customer profile (video store) will be very similar to that of creating / updating / deleting a customer’s account in the banking industry. The stock status also needs to be up to date (available, rented, late or damaged). An ATM will be inside the video store. The ATM is available to both the public and the employees. The ATM can be used for: Bank account balance inquiry, money withdrawal, funds transfer and transaction history (last 5 transactions with dates, time, type of transaction and outcome). The ATM should also cancel a transaction request and swallow a debit card when the user has entered a wrong pin number three times in succession. The ATM can only be used by clients who have existing bank accounts and existing (valid) debit cards. Make provision for situations such as expired debit cards, frozen accounts, insufficient funds, daily withdrawal limit exceeded, etc. The video store works on a cash-only-basis. Customers can withdraw money at the ATM if they don't have cash on them. The ATM is also available to public who only wants to use the ATM (without having to do business with the video store). Payment for stock rented: A Point Of Sale screen (electronic cash register screen) needs to be displayed. The product and the quantity thereof needs to be entered. You can make use of drop boxes if you want to. The system will calculate the total amount due (and the due date back for the products). Enter the cash amount offered by the customer. Calculate the change amount. Update the video store transaction register. Stock returned: Update the electronic system. Make provision for the condition in which the stock items were returned (in a working state or damaged, on time or late - individually). Capture a history record of products rented. Know the value of the stock outside the store. Capture a history record of products currently late. Capture a history record of products damaged. Capture a history record of products currently in store. Calculate the value of stock in-store. Capture a history record of each registered client's rental record. Capture a history record of a client's ATM transactions.