Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
projects/17 Stock Inventory.md
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
113 lines (68 sloc)
5.69 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Stock Inventory | |
Build a stock control and monitoring (SCM) system for a shop that sells Arduino Microcontrollers and associated electronic components. | |
--- | |
## Testing | |
You are required to create the following accounts to allow the system to be tested. All accounts should have the password `p455w0rd`: | |
1. `admin` | |
2. `employee1` | |
3. `employee2` | |
4. `branch2` (only needed if you are attempting feature 5 functionality). | |
--- | |
## Feature 1 | |
The home screen should not be visible unless a person is logged in. If the **admin** is logged in they home should see an **Add stock item** button or link but this must not be visible to any other user. This should take them to a screen where they can add new items to stock. The following information should be requested: | |
1. The product barcode number (this should only accept numbers of the correct length). | |
1. The product name. | |
2. The product photo. | |
3. A slider with the range £1-£30 where the admin user can enter the wholesale price (price paid per unit). | |
4. A slider with the range £1-£30 where the admin user can enter the retail price (the price they will be sold for). | |
5. A slider with the range 1-100 to enter the quantity of these to be added. | |
If the user adds the same product twice (based on the barcode number), the existing record should be updated with the new information and the quantity should be calculated as the one from the existing record plus the one just added. This indicates the admin user has increased the stock levels and updated the product information. | |
> To demonstrate this feature and to prove that the form works correctly you will need to show that the data is being persisted correctly, either by running a database query or an API call depending on the platform and technology you are using. | |
## Feature 2 | |
If a user ias logged in the home screen should display the current stock inventory. This should include the following for each product range in stock: | |
1. The name of the product. | |
2. The wholesale unit price. | |
3. The retail price. | |
4. The quantity in stock. | |
At the top of the screen the current stock value should be displayed. This is calculated by multiplying the wholesale price by the quantity for each product and adding these values. It represents how much money is tied up in stock. | |
If the stock level for a product is 5 or less the item should be flagged as _low stock levels_. | |
## Feature 3 | |
If the admin user is logged in they should see a **Restock** button or link plus a **Received stock** button or link. | |
The **Restock** button takes them to a screen that only displays products that are flagged as _low stock levels_. This displays the same information for each product as listed in **feature 2** but in addition there should be a slider next to each item to indicate how many units are being ordered, the range being 1-100. | |
There should be a **Place order** button or link that simulates sending the order off to the wholesaler. | |
The **Received stock** button should take them to a screen that lists all the orders placed. This should list the items placed in all orders: | |
1. The produce name. | |
2. The quantity ordered. | |
Next to each of these should be a **Received** button. Clicking this should: | |
1. Increase the stock levels by the quantity in the order. | |
2. Update the list, removing the item just clicked. | |
In this way the admin can check off the items received against the list ordered and update the stock levels. | |
## Feature 4 | |
If any use except admin logs in they should see a **Till** button. This will take them to a screen that simulates an Electronic Point of Sale (EPOS) system such as is used in modern shop tills. | |
When the screen first loads it should display an empty shopping cart plus a single textbox that is automatically selected by the cursor. | |
The shop worker uses the numeric keypad to enter the barcode number of the item and pressed the enter key. This does the following: | |
1. Looks up the barcode and adds the produce name to the shopping cart together with its price. | |
2. Updates the total cost. | |
3. Deletes the barcode number but keeps the textbox selected ready for the show worker to type in the next barcode. | |
Once the first item is in the cart the screen should display a **Checkout** button or link. Clicking this: | |
1. Prints off the contents of the shopping cart. | |
2. Updates the stock levels. | |
3. Clears the shopping cart and selects the empty textbox ready for the next customer. | |
---- | |
## Extras | |
In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device. | |
### Sensors | |
In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing: | |
1. The company has multiple branches. Each sale should capture the current location. This should be compared to the branch locations and the sale allocated to the nearest match. | |
2. When prompted for a photo, the user should be given access to the device camera (if available). | |
3. The admin user needs to be able to see a map showing the branch locations: | |
1. Clicking on a pin shows the name of the branch in a bubble. | |
2. Clickin on a bubble sends the admin to the branch summary page showing the tracking data. | |
### Media | |
In the requirements listed above you need to provide the user with the ability to upload photos. For the extra media marks you will need to expand this by: | |
1. Providing the user with the choice of uploading photos, video clips or audio clips. | |
2. Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available. | |
### Data | |
There are lots of online RESTful APIs you can make use of when developing this system. You should consider: | |
1. [Axesso](http://api-doc.axesso.de) | |
2. [LocationIQ](https://locationiq.com) |