Jiayi Wang([email protected])
In this project, the final goal is to visualize a map showing businesses like shops and restaurants near a location, based on academic data from yelp website.
The project could be briefly divided into 3 parts, setting up the database, building the interface of C++ with database and data visualization using C++ and Qt.
For this project, the goal is to develop a new approach for users to look up information about businesses in the certain area, Providence, in this case. To further explain, this application will be able to achieve the following goals.
First, the user can look up business data by name or type. Second, the user is able to sort the local businesses by their opening status to see if they are open or not under a certain time period. Third, the user can simply type in their location data and range they want to search and then all businesses within this area will show up. The result number and rank are also decided by the user.
-
Objective 1: Data query and parsing.
-
Objective 2: Setting up background.
-
Objective 3: Getting input data.
-
Objective 4: Displaying data.
-
Required External Libraries
QCustomplot sqlite3
-
Functional Block Diagrams
- Data Flow Diagrams
- UML Diagrams showing Object Definition/Inheritance
-
Exception Handling
-- Out of boundary
If there are some restaurant that are out of boundary and cannot be displayed on the map, the team will use a pop-up window to display "out of range" error message.
--No result
If there is no result in given search criteria, the team will use a pop-up window to display "0 result found" error message.
- Operating system(s) and software compiler/library version(s) tested
The team have tested the program under several operating environment, here are the lists:
Microsoft Windows 10, i7-8550U, Qt Creator 4.8.0 based on Qt 5.12.0 (MSVC 2015, 32 bit).
Apple mac OS X, i5-7267U, Qt Creator 4.8.0 based on Qt 5.12.0 (Clang 10.0 (Apple), 64 bit).
Apple mac OS X, i5-7360U, Qt Creator 4.8.0 based on Qt 5.12.0 (Clang 10.0 (Apple), 64 bit).
Apple mac OS X, i5-5257U, Qt Creator 4.8.0 based on Qt 5.12.0 (Clang 10.0 (Apple), 64 bit).
-
Description of functional testing to date
Convert: (all with DB Browser for SQLite)
checking total number of records and types of records attributes 11/27
checking types of records attributes 11/27
randomly choosing 5 records and compare its values 11/27
Filter:
checking name input with empty string and not empty string name 12/10
checking open status to be open and not matter 12/10
checking sort status to be distance, review_count and stars 12/16
Mainwindow:
taking integer input and display it 12/7
Linking qcustomplot and Mainwindow:
take integer input and plot a curve 12/7
Linking Mainwindow and filter and qcustomplot:
no business through output 12/14
current location outside of map 12/14
zero result count input 12/14
business outside of map 12/14
migrate all files to another machine 12/16
-
Instructions for compiling and running the software
Download project file from github -> open Qt Creator -> open project file "team_final.pro" -> under Project Tab, uncheck "Shadow build" -> run the program
During the past month, I built a functional data visualization project based on Yelp database. According to user input including business name/type, user location and range, the system displays the business names and locations on the map. The initial goal was to search specific business name or tag in Providence, to search all businesses around a location and to search open businesses, sorted by hard coded rank, then display business information. During implementation, I changed my goal to search a specific business name/tag or all businesses around a location whether open or doesn’t matter, sorted by customized rank, which makes more sense to customer needs. I also noticed if all information is displayed, the GUI layout would be in a mess. Therefore, I decided to only display locations and names. I have achieved all of the initial goals and objectives and did better.
--Get user’s location through GPS
--Promote the application to the range of US
--Change the plot point to button that can show the whole information of the business