GUIGLE+

Project Description

Search engines have become an essential part of the web, as they help organize and easily present pertinent information to users. General search engines, such as Google, allow users to search the entire web for information they need. However, more specific search engines, such as those built for Github, and Google Play, can specifically support developers by allowing them search for, and learn from, applications similar to those they are attempting to build themselves.

To contribute towards the goal of increasing tools available for mobile application developers, this project proposed a new search engine for Android applications using information from apps’ Graphical User Interfaces (GUIs) as queries. The goal of this project was to generate a web application that will rely on the Apache Lucene1 indexing engine to retrieve relevant applications containing GUI layouts with similar attributes to those entered in a query. This project will use information from Google Play applications to extract component’s information from APKs.

This was a semester long group project completed over several sprint cycles. It was my first time participating in any kind of agile development, but I've found that style of working really fits my way of completing tasks. This was also the most difficult project I've ever worked on. I'd never worked with a python codebase before, and I'd certainly never done any sort of frontend development or machine learning before. While learning on the job can be stressful, it reminds me that I'm a quick learner and that my field has a beautifully diverse range of technologies I get to learn.

Technologies Utilized

  • vue.js
  • python
  • lucene
  • solr
  • tensorflow