GithubHelp home page GithubHelp logo

calvwng / app-rating-metrics Goto Github PK

View Code? Open in Web Editor NEW
0.0 5.0 0.0 2.52 MB

Metrics-based Google Play app rating system

License: GNU General Public License v2.0

Python 33.45% HTML 4.34% CSS 0.54% JavaScript 61.67%

app-rating-metrics's Introduction

Metrics-based Google Play app rating system

Team QuitGooglePlayingGamesWithMy<3

Ian Kingsbury, Stanley Tang, Audrey Waschura, Calvin Wong, Lawrence Zhu

Overview

Our project goal was to create an alternative rating system for Android applications on the Google Play App store that leverages selected metrics and existing review data to expose meaningful indicators of application quality to prospective users in the form of separate ratings based on individual metrics.

These new ratings could help the user better understand how an app’s rating may differ (especially over time or in relation to the original rating) when focusing on specific metrics such as verbosity (review length), sentiment, spelling accuracy, and word frequency. We plan to visualize the ratings derived from these metrics with the original ratings on the same line graph over time. This will help users see historical trends of both original average ratings and average ratings based on specified metrics.

Existing, original ratings on Google Play store:

Example of historical sentiment trends vs original rating trends derived by our system:

Example of word frequency trends displayed by our system using the wordcloud2 library:

Features and Requirements

The following is an overview of the features and corresponding requirements that we fulfilled through the completion of our project:

Features Requirements
Present the user with alternative app ratings for an Android app on the Google Play App Store based on different app review/rating metrics The user should be able to specify what app to show results for There should be a way for the user to specify review metrics with ranges to consider in new rating derivations
Allow users to examine the new alternative ratings and alternative overall rating in comparison to the original rating associated with the target app Optional: Allow users to examine the new ratings vs the original ratings over time Optional: Generate visualizations for rating data The user should be able to compare derived app ratings versus original app ratings Optional: The user should be able to specify date ranges for review examination

System Design and Implementation

The following is an overview of our system design and the tools we used:

Client

  • The Client (application or visualization interface) requests data from the API. Metric-based Rating REST API

API

  • The Python Flask API receives requests from the client and queries the Server for corresponding data, and returns it to the Client in JSON form.

Server: Metric-based Rating Agent(s)

  • The Server retrieves review data from the MySQL DB (through SQLite) to process with its Python agents, and returns requested data to to the Client through the API.

SQLite DBMS

  • SQLite is a database management system that the Server uses to interact with the MySQL database.

MySQL DB

  • The MySQL DB contains review data for apps supported by our system.

Relevance to A.I.

The project is relevant to artificial intelligence primarily due to its applications of feature matching and agents to process large amounts of review data to expose data (derived metric-scores) and relationships (historical trends in comparison with original data) that would otherwise be incredibly tedious for humans to produce manually. Although this particular system doesn’t learn or perform predictions like other forms of A.I., its domain-specific intelligence can be expanded to support more metrics, since that is its focus.

Lessons Learned and Future Work

From completing this project, we mainly learned to be very wary tool limitations when designing systems. It seemed that every early tool/library/API that seemed to fulfill a role in our system was severely limited in free usage, and thus became less viable for us to use since we needed to process a lot of data. If we had repeated the project, maybe we could have reached out to the owners of these resources for more usage so that we didn’t have to develop our own, less sophisticated tools.

If we decide to move forward with the project, the next steps would be to filter out irrelevant words in the "wordcloud," to swap out components we developed with more sophisticated components (such as the sentiment analysis), and to make our front-end more intuitive for users.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.