Programming Exercise II:
A Firebase-Based Mobile Data Mining System Using TensorFlow



Absolutely no copying others’ works
According to a study, students in computer courses learn much more by building large-scale exercises instead of many small-scale test programs like these, which give fragmented knowledge contrary to solid understanding of the system.
Development Requirements
When start developing the exercise, follow the three requirements below:

Due Date and Submission Methods
Due on or before Thursday, April 30, 2026. Send an email to the instructor at wenchen@cs.und.edu including

Objectives
Instead of building a data-mining system from the ground up, this exercise uses HTML, JavaScript, and Java to construct a data-mining system by using two Google systems:

Requirements
The data-mining system includes the following features:
(Web: 05% total)

  • (System reset: 05%) The system can be reset, which is to clear all data stored in the database and files, so the instructor can test the system by using only his own test data. That is the system has to include a button such as “Clear system” on the system entry page.

(Android: 40% total)

  • (Input: 30%)
    Enter and save many of the following set of smartphone data to the Firebase:

    Price: $

    Display size: inches

    Memory: GB

    Resolution: px

    Condition:

  • (Checking the database: 10%)
    Show the input data saved in the Firebase.

(Web: 45% total)

  • (Checking the database: 10%)
    Show the input data saved in the Firebase in JSON format.

  • (Showing all predictions: 10%)
    Display all input data and predictions. The horizontal axis is price and the vertical axis is any one of features (display size, memory, and resolution) picked.

  • (Showing a prediction: 10%)
    Display all input data & predictions, and a prediction based on an input price. The horizontal axis is price and the vertical axis is any one of features (display size, memory, and resolution) picked.

  • (Showing the loss: 10%)
    Display the loss after entering an epoch value.

  • (Plagiarism-proof: 05%)
    It is for the instructor to find any plagiarism. Each interface (if including server-side code) contains a button “Display source,” which is to list ALL the server-side source code for implementing the functions of this interface. In addition, there are buttons for Android code. The system will be highly suspected if fail to implement this button.

(User-friendliness: 10%)
User-friendliness will be heavily considered when grading. In the past, some exercises were awkward, which made the grading or browsing difficult. For example, it is considered not user-friendly if the system repeatedly asks users to enter their names/IDs/passwords.


An Example of Using TensorFlow
Note that this example is not related to this exercise. It is only to show how to use TensorFlow.


Evaluations
The following features will be considered when grading: