Programming Exercise II:
A Firebase-Based Data Mining System Using TensorFlow
(Industry-Level, Second-to-None Comprehensive Specifications)
Development Requirements
When start developing the exercise, follow the three requirements below:
- Have to use Firebase database and TensorFlow.
- The exercise has to be Internet-enabled (a trend of current IT systems).
- The system entry page must be located at
http://undcemcs02.und.edu/~user.id/515/2/
and all pages must be hosted by http://undcemcs02.und.edu/~user.id/
.
- The systems have to be active even after being graded until the end of this semester.
They will be re-checked for plagiarism from time to time.
Due Date and Submission Methods
Due on or before Thursday, May 02, 2024.
Send an email to the instructor at
wenchen@cs.und.edu including the password to enter your system because only HTML and JavaScript are used, so the protection will not allow others to see your code (only one password for all exercises and interfaces).
Objectives
Instead of building a data-mining system from the ground up, this exercise uses HTML and JavaScript to construct a data-mining system by using two Google systems:
- Firebase, which is a NoSQL, cloud-based, and real-time database, and
- TensorFlow, which is a free and open-source software library for machine learning and artificial intelligence.
Requirements
The data-mining system includes the following features:
- (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.
- (Input: 20%)
Enter and save many of the following set of smartphone data to the Firebase:
- (Checking the database: 20%)
Show the input data saved in the Firebase in JSON format.
- (Showing all predictions: 20%)
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: 20%)
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.
- (User-friendliness: 05%)
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:
- Specifications:
- The instructor (or your assumed client) has given the exercise specifications as many details as he possibly can.
If you are confused about the specifications, you should ask in advance.
Study the specifications very carefully.
No excuses for misunderstanding or missing parts of the specifications after grading.
- The specifications are not possible to cover every detail.
You are free to implement the issues not mentioned in the specification, but the implementations should make sense.
Implemented functions lacking of common sense may cause the instructor to grade your exercise mistakenly, and thus lower your grade.
- The exercise must meet the specifications.
However, exercises with functions exceeding the specifications will not receive extra credits.
- Grading:
- This exercise will not be graded if the submission methods are not met.
Students take full responsibility if the web site is not working.
- A set of test data will be used by all students.
The grades are primarily based on the results of testing.
Other factors such as performance, programming styles, algorithms, and data structures will be only considered minimally.
- Before submitting the exercise, test it comprehensively.
Absolutely no extra points will be given after grading.
- The total weight of exercises is 40% of the final grade, 20% for Exercise I (web search engine) and 20% for this exercise (data mining using TensorFlow).
- If not specified, no error checking is required; i.e., you may assume the input is always correct for that case.
- Feel free to design your own interfaces; user-friendliness will be heavily considered; each function/button will be tested extensively; and from the source code submitted, the programs will be examined.
- The newest Firefox browser will be used to grade exercises.
Note that Internet Explorer, Edge, Chrome, and Firefox are not compatible.
That is your exercises may work on the IE, Edge, or Chrome but not Firefox.
- The instructor will inform you the exercise evaluations by emails after grading.
- Comments:
- Make the exercise work first.
Do not include extra features in the beginning.
By the way, you will not receive credits for the extra features.
- Time management is critical for software development.
If you are not able to complete the exercise, display whatever you have accomplished, so the instructor can give partial credits to your exercise.