Thankfully Talia came to the rescue. Talia does craft shows. Talia is very fastidious about recording what sold and for how much. Talia was doing everything with paper and pencil. Talia is a computer science PhD candidate... Paper and pencil just would not do. So I decided to make an app to track her sales and her stock.
Now you may be thinking "Didn't you say everything was already done?" and you would be right. There are many sales and inventory apps on the market but after looking through many of them with Talia we decided that they were all clunky and bad. Thus project DIYSales was born.
Requirements
- Provide basic inventory features
- Provide sales features
- Provide reporting features
Inventory Features
An inventory item will consist of the following pieces of information
- Product name. A short product name that can be used in the generation of scanning codes such as QR codes. This must be unique.
- Product description. This is an optional field and consists of a more verbose description of the product.
- Product availability (number in stock)
- Product price
- Product image. To allow for better selection in the sales features an product image or icon can be assigned to the product
The inventory must be able to support the following operations:
- add a new product
- Provide all the above information. In order to provide the icon support the app will integrate with 2 other applications.
- the first application will be the camera app to take a picture of the product.
- The second application will be the image gallery application to allow for selecting of previously taken pictures or images that have been uploaded to the phone from another source. (I.E. if you take images of your products with a studio camera)
- The ability to create QR codes based off of the product name and send that QR code via email (or other sharing application). This is easily implemented through the use of the Barcode app which already contains all abilities to generate QR codes and share them
- edit a product
- Update all information including the product name.
- This includes regenerating the barcode
- This includes updating the stock counter
- Part of the update feature will be to remove the product from the system completely
- Browse all products with an easy visual indicator of the number of items in stock
Sales Features
The sales features include the following
- add an item to the sales basket by scanning a bar code or QR code
- add an item to the sales basket by selecting the items from a list of all currently in stock products
- remove an item from the current basket
- remove all items from the current basket
- checkout a basket and save the transaction details for reports later.
- Provide a facility to allow for haggling and bartering by allowing either a discount percentage or a fixed amount discount
- provide the current total in the basket
- automatically match items in the basket against saved "deals" to provide an automatic discount
In addition to the basic sales features a "Saved Deals" ability will be included. This will allow you to automatically provide a discount based on the items selected. An example of this would be if you buy 5 items you get an automatic 25% off or $10.00 off
Reports Features
The reports features will consist of selecting from several reports that can be compiled based on sales and inventory. The specific reports are currently undetermined as specific requirements wont be finalized until the next trade show but the following are potential reports.
- Total sales report. This report would give totals for all the sales that have occurred divided by day. It could also include total discounts for each day.
- Sales numbers by product. This could consist of all products that have been sold and the total of each product and could be used to help determine which products are more popular than others.
To date I have spent several hours working on it and have created a basic layout along with the initial database structures. I am currently working on the inventory features so I hope to have those complete by the end of February
~(' ')~
No comments:
Post a Comment