Developing a Web Dashboard for analyzing Amazon's Laptop sales data

From Sinfronteras
Revision as of 18:05, 4 March 2020 by Adelo Vieira (talk | contribs)
Jump to: navigation, search



Open it with Firefox if you don't have a proper GoogleChrome plugin to visualize JSON files.



1 What do we want to build?


1.1 Goals

This project aim to develop a Data Dashboard for analyzing Laptop Customer Reviews from Amazon.


In a general sense, «a Data Dashboard is an information management tool that visually tracks, analyzes and displays key performance indicators (KPI), metrics and key data points to monitor the health of a business, department or specific process» [1]. That is not a bad definition to describe the application we want to build. We just need to highlight that our Dashboard is going to display information about Laptop sales data from Amazon (customer reviews, in particular).


We wanted to mentione that the initial proposal was to develop a Dashboard for analyzing a wider range of products from Amazon (not only Laptops). However, because we have limited HR and time to accomplish this project, we were forced to reduce the scope of the application. This way, we are trying to make sure that we count with enough time to develop a functional Dashboard with visual appeal and a decent web design.


Some examples of the kind of Application we want to build:

  • Example 1: (Figure 1)
Sentiment Analysis Dashboard: https://powerbi.microsoft.com/en-us/partner-showcase/faction-a-sentiment-analysis-dashboard/
Demo video: https://www.youtube.com/watch?v=R5HkXyAUUII
This is the most similar application to the one we want to build that we have found in our research. Our initial requirements and prototype will be based in some of the component shown in this application.


  • Example 2: In Figure 5 and Figure 3 we show two other Dashboard. These ones don't have a similar function to the Dashboard we want to built. They are other purposes dashboards, but they are good examples of the design and visual appeal of the application we aim to build.
https://designrevision.com/demo/shards-dashboard-lite-react/blog-overview
https://themesdesign.in/upcube/layouts/horizontal/index.html


  • Example 3: You can also try some Dashboard that have been developed with the same technologies that we are going to use (Python - Dash). We will talk a little more about this technologies later:



Figure 2: Example of the kind of Dashboard we want to build.
https://designrevision.com/demo/shards-dashboard-lite-react/blog-overview


Figure 3: Example of the kind of Dashboard we want to build.
https://themesdesign.in/upcube/layouts/horizontal/index.html



2 Project rationale and business value

In marketing and business intelligence, it is crucial to know what customers think about target products. Customer opinions, reviews or any data that reflect the experience of the customer, represents an important information that companies can use to enhances their marketing and business strategies.


Marketing and business intelligence professionals, also need a practical way to display and resume the most important aspects and key indicators about the dynamic of the target market; but, what we want to say when we refer to the dynamic of the market? Well! we are going to use this term to refer to the most important information that business professional require to understand the market and thus be able to make decision that seek to improve the revenue of the company.


Now, let's explain with a practical example, which kind of information business professionals need to know about a target product or market. Suppose that you are a Business Intelligence Manager working for an IT company (Lenovo, for example). The company is looking to improve its Laptops sale strategy. So!, which kind of information do you need to know, to be able to make key decisions related to the Tech Specs and features that the new generation of Laptops should have to become a more attractive product into the market? You would need to analyses, for instance:

  • Which are the best selling Laptops.
  • Are Lenovo Laptos in a good position into the market?
  • What are the top Lenovo Competitors in the industry.
  • What are the key features that customers take into consideration when buying a Laptop.
  • What are the key tech specs that customers like (and don't like) about Lenovo and Competitors Laptops.
  • How much customers are willing to pay for a Laptop.


Those are just some examples of the information a business intelligence professional need to know when looking for the best strategy. Let's say that, after analyzing the data, you found that the top selling Laptops are actually the most expensive ones. Laptops with high quality tech specs and performance. You also found that Lenovo Laptops are, in general, under the range of prices and quality tech specs of the top selling Laptops.


With the above information, a logical strategy could be to invest in an action plan to improve the tech specs and general quality of Lenovo Laptops. If, on the contrary, the information highlights that very expensive Laptops have a very low demands, an intelligent approach could be a strategy to reduce costs of the new generation of Laptops.


So, we have already seen the importance of analyzing relevant data to understand the dynamic of the market when looking to enhance the business strategy. Now, from where and how can we get the necessary data to perform a market analysis for a business plan?


This kind of data can been collected by asking directly information from retailers. For example, if you have access to a detailed Annual Report for Sales & Marketing of a computer retailer, you will have the kind of information that can be valuable to understand the dynamic of the market. The report could contains details about the best selling computers, prices, tech specs, revenues, etc. However, from a Sales Annual report, would be missing detailed information about what customer think of the product they bought. Traditionally, this kind of data has been collected using methods such as face to face or telephone surveys.


Recently, the huge amount of data generated every day in social network and online retailer, is being used to perform analysis that allow to gain a better understanding of the market and, in particular, about customer opinions. This method is becoming a more effective, practical and cheaper way of gathering this kind information compare to traditional methods.



2.1 Intended target market

A data analysis dashboard for sale strategy has a very wide target market. For any company that sales something, it would be beneficial to analyses data that allows them to understand the dynamic of the market THEY are targeting.

As we have already mentioned, we were forced to reduce the scope of this project because of the time that we have to accomplish it. So the final result will be a Web Dashboard for analyzing «Laptops» sale data from «Amazon» (Customer online reviews, in particular). However, we would like to invite you to think about this project as a methodology to build a Dashboard for analyzing online retailers sale data; regardless the target products or where the data is scraped from.


Now, let's be more specific about who can use our app. We will address two examples:

  • Example 1: When explaining the business value of the project, we talked about the example of a computer manufacturer that is looking to enhance its sale strategy. That is an example for a very high business level. However, as we will see in the next example, this kind of analysis can also be beneficial for small business.
  • Example 2: Think about a small computer retailer that is looking to enhance its sales. They also need information about the dynamic of the Laptop market: which are the top sellers, how much customers are willing to pay, which features are customers looking in a laptop, etc. This information will allow them to invest in the best marketing and sale strategy.



3 Requirements

Depending on the nature of the projects, the requirements of a software development strategy can be gathered using different methods:


  • Questionnaires and Interviews: If there is a client or if we are in contact with the final users, methods like questionnaires and interviews with the client/users are usually carried out to determine requirements. In case of a client, initial requirements are usually provided by the client at the beginning of the project and redefined in every stage of the the development process as the client and developers identifies new ones. [2]


  • Assessment of the current computer system: If there is a current system, this must be tested and evaluated to determine requirement of the new one. [2]


  • Scenarios: «A scenario is a sequence of interactions between a user and the system carried out in order to satisfy a specified goal» [2]. This is a very popular method to determine requirements since it can be used when there is no a client, final users or current computer system.


In our case, we started building a list of requirements by analyzing similar current Dashboards and using Scenarios. This way, the first prototype of our Dashboard will be built based on some of the components of this Application: https://www.youtube.com/watch?v=R5HkXyAUUII



4 Stage of development and technologies

Python is the main programming language that will be used in all stage of development. Some of the libraries:

  • Pandas, NumPy, NLTK, Plotly, Cufflinks.
  • Scrapy.
  • Dash - Plotly.


Why Python?



  • Backend:
  • Scrape data from Amazon:
  • Technologies: Scrapy - A free and open-source web-crawling framework written in Python. [3] [4]


  • Data Analytic:
  • Natural language processing:
  • Text pre-processing: Removing punctuation, Removing stopwords, Tokenization, etc.
  • Sentiment Analysis.
  • Text filtering.
  • Technologies: Python. Some of the libraries: Pandas, NumPy, NLTK, Plotly, Cufflinks.


  • Frontend:
  • Layout design and development.
  • Data visualization. We will use several kind of charts to visualize the data. E.g.:
  • Word cloud: It will be used to visualize Word frequency in reviews.
  • Bar chart: We will use this kind of charts to visualize data comparison (price comparison, average customer reviews comparison, Word frequency in reviews, etc.)
  • Histogram.
  • Pie Charts.
  • Bubble plot.
  • Technologies: «Dash is Python framework for building web applications. It built on top of Flask, Plotly.js, and React Js. It enables you to build dashboards using pure Python.» [5]



5 Wireframe

Figure 4: Wireframe
Built with https://www.lucidchart.com/[6]
Open Image in a new tab: Media:Dashboard wireframe.pdf



6 The data

Figure 5: Data Scraped from Amazon
Download or open the File from this link: Media:AmazonLaptopReviews.json



7 References

  1. klipfolio.com, What is a data dashboard? https://www.klipfolio.com/resources/articles/what-is-data-dashboard
  2. 2.0 2.1 2.2 Carol Britton and Jill Doake, A Student Guide to Object-Oriented Development, 2005 , Elsevier.
  3. Scrapy.org, Official Scrapy website, https://scrapy.org/
  4. Wikipedia.org, Scrapy, https://en.wikipedia.org/wiki/Scrapy
  5. datacamp.com, Dash for Beginners, https://www.datacamp.com/community/tutorials/learn-build-dash-python
  6. Create Charts & Diagrams Online, https://www.lucidchart.com