My client is Decoupage Dreams. They craft bespoke wedding stationary and venue dressing, and as a result, have to manage hundreds of items of stock across multiple warehouses across the Lancashire area. Each product has a complex shipping process, and many items of stock are rented out, and can all be in different states. They're currently using a paper-based solution, however, their business is growing fast, and the solution is becomming too complex to manage on just paper. Their core competency is arts and crafts, not logistics! Many small & medium sized businesses (SMBs) maintain their warehouse stock using nothing more than spreadsheets or even paper-based records.

At the moment, inventory management software is big and bulky, designed more for managers who want pretty dashboards than the people who scan products. Consequently, small businesses have been slow to adopt this software, because at low-scale it actually hampers productivity benefits. There is a sweet spot between when businesses have too much stock and when the cost of adopting full-scale inventory management is too high.

This is an opportunity to build Decoupage Dreams a better solution. I will be developing bespoke inventory management software, so Decoupage Dreams can keep track of their stock with ease. With multiple employees and warehouses, the system I will produce needs to scale to meet those demands. I approached them, and they agreed to be part of the project. I believe my system will save them a lot of time in many different areas, such as: warehouse management, item searching/tracking, invoicing and liability.

A computational approach is ideal, because it can create the most scalable and reusable solution as compared to paper (or even a spreadsheet).


| Name | Requirements | |-----------------|----------------------------------------------------------------------------------------| | User (Manager) | Managing their inventory more efficiently as their spreadsheet became un-maintainable. | | User (Employee) | Want an easy way to find or scan items in order to sell them. | | Tester | People who are testing my solution to try and break it, in order to find bugs. | | Customer | Customers of the users who rely on this software. They need it to be working. |


I will research the various different products on offer, and their weaknesses. I will conduct a survey of business owners, and interview my client.


I will do online research to find the benefits and drawbacks of the current solutions. I will then analyse this data to come up with a list of requirements for my project. This will allow me to understand the potential scope of my project, including what features are expected to be included and what unique features I can include. It is important to know what people need, asopposed to what they want, otherwise my solution will become just as bloated and complex as the current solutions on the market.

Typically, businesses track their inventory with spreadsheets and paper records. The problems of both are obvious: neither are scalable solutions and will quickly become un-maintainable. This issue is exacerbated further when dealing with large amounts of items, or lots of team members.


This is typically where a small business will start tracking inventory. It is flexible in that it allows a small shop to create custom reports/dashboards right in their sheets, and to organise their data however they want, however at larger-scale such as multiple employees, warehouses or specific business needs such as rentals.

Zoho Inventory

Zoho Inventory is a modern web and app based tool for managing physical stock. It is enjoyed by thousands of businesses and is the dominant software in the categoy, however it is geared towards online based shops where consumers purchase items, rather then small-scale retail or rental.

This is a product that tries to cater to all businesses, therefore it misses several use cases: * Lack of a mobile app for bar-code scanning * Does not work offline * Can be overwhelming for first-time users and lacks proper documentation on the subject * No access to easy reports without a developer


Several questions need to be asked before even starting the production of my service. I will be conducting this survey on Google Forms and analysing the results later. These questions are specifically written to help validate my observations

  1. Are you a business manager or worker?
  2. What are the most important features for an inventory management service?
  3. Do you use the pick n' pack n' ship process?
  4. Are you currently using an online inventory system?
  5. Do you think inventory management directly on your phone would be a useful tool?

```mermaid graph LR A(-Start-) --> B[New Transaction] B --> P[Add Items] P --> O[Confirm] O --> L(-Finish-)

C[Add Items] --> E{Finished}

E -- No --> F[Find Product] F --> H[Enter Product SKU]

E -- Yes --> G(-Finish-) ```

Hardware & Software Requirements


My app will require Android running Android 4.1 Jelly Bean or above, with Google Play Services installed, or iOS 8 and above.


Due to the software requirements above, any Android phone from the last 5+ years will likely support the app. iPhone 4S is the oldest Apple device that can be supported (as iOS9 is the last operating system is runs on).

The phones will require working cameras and a full internet connection if they want to take advantage of the team capabilities.

Why do these requirements exist?

Devices will require an internet connection as an inventory management app would not make sense running offline. The operating system limitations exist because these are older devices which many cross-platform frameworks do not support. iOS especially, as most iPhones are on the latest versions.

Business Requirements

| Requrement | Priority | |--------------------------------------------------|----------| | The admin can create items in bulk | High | | The admin should be able to import an item sheet | High | | The admin can view the dashboard | High | | Everybody should be able to see team activity | High | | Everybody can scan items | High | | Scanned items are added to a cart | High | | Carts can be checked out in a transaction | High | | Only admins can view the dashboard | Medium | | Users can search for items and view their details| Medium | | The software will scale to a full team | Medium | | Labels can be used to organise items | Medium | | Admins can restrict areas of the website | Low | | Admins can create multiple warehouses | Low | | Transactions can be tagged (rental, sale, etc..) | Low | | Transactions can be created in advance (orders) | Low |

Thinking Ahead

Programs have varying inputs and outputs for different situations. I will attempt to identify these and any reusable program components, giving me a list of tasks to work towards building.

| Sitation | Inputs | Outputs | |-------------------------|--------------------------------------------------|-----------------------------------| | Adding or editing items | Item details (name, description, labels, photos) | New item state | | Creating an order | Items required and quantity, date, description | Order details, conflicts, pricing | | Checking items out | Item IDs (either by typing code or barcode scan) | New stocking state, activity | | Search/filtering items | String search, label filters | Search results (list of items) | | Creating a warehouse | Warehouse name, location, images | New warehouse state, activity |

Reusable components

All software is developed by combining reusable components together. I will identify the commonalities of my system, and what can be reused in different contexts. Some of the stuff that can be reused are: * Models: Classes which represent data, such as "Warehouse" * Widgets: All client-side software is composed of multiple widgets, and mine will also be reusable

Success criteria

Proposed solution


Some of the core features I hope to include: * Dashboard: This will allow team members to view what is going on. It will show recent activity, and allow creating, searching, querying and updating of items, warehouses, orders, etc.. * Code Scanning: The ability to generate a QR code for a specific item/product will make it easier to manage stock with mobile apps. This code can be printed off and then we can then use the mobile app to scan it when moving the items, meaning employees don't have to enter product SKUs to update their inventory. This improves business efficiency as it allows the pick/pack/ship cycle to be done without returning to a computer for every parcel. A computer vision algorithm will be required to read the codes and convert them into product codes. * Multi-User: My system will be able to handle multiple users within an organisation. Each employee will get their own account to use my software for managing items. Every action leaves an immutable audit trail so that admins and other team members know who is in possession of any asset. Multiple people can use the system and aren't bottle-necked by having to use traditional systems. It has the benefit of being the single-source-of-truth for the entire warehouse. * Labels: Current systems force you to manage your inventory their way. By using a flexible label system where users create and manage them themselves, we can allow them to organise stuff however they like. This simplification provides benefit compared to current solutions.


The solution I have proposed works in a single sales channel environment, however for an actual product, I would need to have * Integrations with online platforms such as Amazon * Customer relations management for long-term selling

Written 2018-07-14 by Cameron Brown SITEMAP