Working in sales at Harvey Norman, one of the most common things that customers ask me is, “Can you do a better price?” Now, often I can save the customer a couple of dollars here and there, but the vast majority of items we sell can be found cheaper at competitors such as Officeworks and Amazon. This inspired me to design a piece of software that will allow users to make sure with 100% certainty that they are getting the best price on the market.
So, want to ensure that you’re getting the cheapest possible prices? Well, look no further — Fire Sale is here. Fire Sale will allow users to capture an image of any item and, using state-of-the-art image recognition, find that specific item on various online retailers and display a list of prices. This will guarantee that users get the cheapest possible price. And if the item still isn’t at a cost the user finds attractive? Don’t worry — the user can save that item and set price alerts, so once it is at or below the set price, they will receive a notification, allowing them to snap that deal up.
Name: Jordan Singh
Student number: 45807321
The project aims to provide users with a simple-to-use application that will allow them to take a photo of an item they’re interested in purchasing and find the cheapest price available. Once a photo has been taken of an item, the system will scour the internet for the cheapest possible price, ensuring that users save every cent, in a time where money is becoming an increasingly valuable resource.
The features that the application should have are:
The scope for the MVP of this application will include the following features:
Availability of a system is important as it ensures to users that the application will always be available. For this project, availability is very important as we want to provide users with the confidence that when they are in the middle of browsing a physical retail store in person, the system will always be accessible. As the saying goes, “Time is money”, so even if we save users some money on an item, if they have to wait hours for results, then the amount saved wouldn’t outweigh the time lost.
Availability can be tested by system use for a set period of time at specific intervals. This will allow us to ensure that query response time is within an acceptable range, no matter when the query is made.
Interoperability is the attribute that ensures if the system is communicating with other systems, it will be easy to share information. In this instance, it is the assurance that the product search of an item is simple and efficient.
For this project, interoperability is crucial, as we’ll be comparing the prices from a variety of sources. It is important that the query can be as universal as possible — meaning that one single query can discover all prices from the set of retailers online, rather than requiring multiple separate queries to each retailer to find the price of one specific product. This will allow the system to be faster and more efficient. Interoperability can be tested by querying set online retailers and ensuring that response time and accuracy are within an acceptable range.
Scalability is the attribute that ensures a system will remain readily available and cost-efficient when allowing a large number of end-users to use said system. Readily available means that no matter if there is only one user or one million users, the system will always be accessible to said users and there won’t be any performance degradation as the number of end-users increases. Cost-efficient means that even when accommodating one million users, the system will always be as economical as possible.
For this project, scalability is very important, as this system isn’t restricted to a specific niche — everyone loves saving money. So, this system needs to be able to scale up and down to accommodate up to millions of users concurrently. As each query won’t require the largest amount of computing resources, a blend between horizontal and vertical scaling will need to be achieved. Vertical scaling will allow multiple queries per system, and horizontal scaling will ensure that the system will always be available even if one set of hardware crashes. Scalability can be tested by increasing user load and analysing system performance and cost. This can be considered successful if the system is able to scale up to meet a satisfactory amount of concurrent users while remaining cost-efficient.
To evaluate the performance of availability in this software system, the following will be checked:
Success is achieved if system response time remains below 3 seconds and uptime exceeds 99%.
To evaluate the performance of interoperability in this software system, the following will be checked:
Success is achieved if at least 90% of test items return valid price data from all supported sources.
To evaluate the performance of scalability in this software system, the following will be checked:
The system passes this test if it can maintain acceptable performance (response time < 3 seconds) for up to 1,000 concurrent users under standard conditions.