UP | HOME
2017-03-13 | ../../

P5: Android Front-End with Cloud Back-End

Table of Contents

1 Lab Goals

The purpose of this lab is (i) to get you started with technologies that are essential in cloud computing, (ii) to give you more experience in developing Android APKs, (iii) to familiarize elementary use of github and related utilities, (iv) apply all the above in concrete instances of APKs.

This is part of a project in CEG 3900. Understanding code written by others is a background theme in the tasks below – it is explicit in only one task.

2 Background

Make sure you are clear about the following. Review the lectures.

  1. What is "embarrassingly parallel"?
  2. How to read a file located at a server on the Internet?
  3. How to write a file?
  4. Software Engineering: The user-level document.
  5. Software Engineering: The developer documentation.

3 Tasks

3.1 Task: Program Comprehension: "Uniting Twist"

  1. Document the APK buildable from https://github.com/Litun/UnitingTwist. As with many open source projects, this little project (sloccount < 1000 Java LOC) is also without any documentation, apart from the video showing how this app works. Note that (i) this APK does not use cloud, (ii) this APK uses gyroscope sensor, (iii) not all Android devices have it.
  2. Deliverables: (0) No need to deliver the src code. (00) No code revision is expected. Include in the report (i) several (4+) screenshots of the running app, (ii) a status report, (iii) a summary paragraph of your experience with this task. Upload to GitHub due +2 days later (iv) the user-level document, (v) the developer documentation. Include links to these in the report.

3.2 Task: MS Azure: Photo Uploader

  1. Build the APK from the source of Photo Uploader, a sample from MS Azure. "This sample demostrates how to upload photo images from the gallery in Android into a Block Blob in Azure Storage. …" Visit this page. Read the linked info about Blob Storage.
  2. Deliverables: (0) No need to deliver the src code. (i) Get a free account on MS Azure. Include in the report (ii) several (4+) screenshots of the running app, (iii) a status report (How well is your program working? bugs? crashes? hangs? …), (iv) a summary paragraph of your experience with this task.

3.3 Task: Google Cloud Platform: Bookshelf App for Java

  1. Follow the tutorial, and finish building the Bookshelf app on your laptop Linux/ Windows. (Bonus Points: Build it as an Android APK.) Recommended Reading: https://cloud.google.com/java/
  2. The tutorial uses Maven, another build tool. It is possible to do this task using Gradle instead of Maven. Read https://guides.gradle.org/migrating-from-maven/. Simply put, run gradle init.
  3. Deliverables: (0) No need to deliver the src code. (i) Get a free account on https://cloud.google.com/ . Include in the report (ii) several (4+) screenshots of the running app, (iii) a status report (How well is your program working? bugs? crashes? hangs? …), (iv) a summary paragraph of your experience with this task.

3.4 Task: Collaborative Tagging of XKCD Cartoons

  1. Design and build an APK that permits collaborative tagging of the XKCD cartoons found on the web. (i) No moderation is expected. Assume that all collaborators are cooperative. (ii) Creating new tags should be possible. (iii) Do not permit deletion of a tag altogether. Do permit the deletion of a tag of a specific cartoon. (iv) There are many descriptions of what (xkcd) tags are. Choose one that appeals to you. But, not "html tags".
  2. Download an XKCD viewer Easy XKCD APK from FDroid.org. Design and build your APK as an enhancement of its source code.
  3. You are welcome to develop this on any of the following platforms: Firebase, AWS, Azure, GCP.
  4. Deliverables: Include in the report (i) several (4+) screenshots of the running app, (ii) a status report, (iii) a summary paragraph of your experience with this task. Upload to GitHub due +2 days later (iv) the src code, (v) developer documentation.

3.5 Task: Analyses of Password Dumps

  1. Design and build an APK that helps an ordinary (non-computer savvy) user with a password that she/he is about to create. For now, this is limited to checking if a (similar) password appears in the password dumps that are public. A "good enough" UI is acceptable. Focus on the behind the scenes technical analyses.
  2. Re-read the lecture notes on Passwords. There is a subsection on links to word lists.
  3. Deliverables: Include in the report (i) several (4+) screenshots of the running app, (ii) a status report, (iii) a summary paragraph of your experience with this task, (iv) a definition of "similar" passwords, (v) a description of what "help" an APK, such as this (at level of CEG 3900), can deliver in a future project. Upload to GitHub due +2 days later (vi) the src code, and (vii) user and developer documentation.

4 TurnIn

5 End


Copyright © 2017 Dr Prabhaker Mateti • 2017-03-13