CS4521:   Mobile and Topics in Web Programming

Project 1 - Android Application

points 310

Peer Reviewed --- with Instructor Review of Proposal only

Due dates -

  • Proposal Due start of class Jan 30

  • Application (w/ docs and videos) due start of class March 6

  • Presentations March 6 and Peer Review OF ALL YOUR fellow student's applications is due noon March 8 SAVE YOUR evlauations locally on your machine in case you have any problems

  • 1pm March 8- Prof. will lock down shared google document

  • by 6pm March 9- review the evaluations you made in shared document. IF there are any mistakes You MUST email me June 2nd and I will make the corrections you explain.

 

 

Points -

Proposal = 60 points

Documentation = 50 points

Code Functionality and Completition and Usability = 125 points

YouTube Video 1 demonstration = 30 points (without this it is NOT possible to grade this and you will get 0 on this AND on code functionaility and completition and usability)

YouTube Video 2 screen recording = 20 points (without this it is NOT possible to grade this and you will get 0 on this AND on code functionaility and completition and usability)

Your Reveiw of All other students work = 25 points

Important --due to changes in policy and google university program credits you would have to pay $25 to join Google Play as a developer to use in-app payment. For this reason, I can not require you to do this for monetization however, if you are interested and have personal funds this is good experience. For monetization you will need to do advertising.

You will be using your book, Android developer information and course materials as well as student shared marterials to help you create a Mobile application for Android Devices. You should test and develop your application using AndroidStudio with the latest Android or version of sdk for your physical device you are testing on.

 

YOUR APPLICATION MUST

  • Have one or more interfaces with a GREAT user interface
  • Use at least one of the following device features: GPS, Accelerometer, Gyroscope, Camera, Microphone, Vibrator. IT MUST BE USED in a NON-TRIVIAL way -- to simply use the GPS to say to the user their location is TRIVIAL. To use the GPS to say set coordinates in a map that shows all the nearby bathrooms in a "find a bathroom" app is not a Trivial use. Note your proposal must go into good detail on how you will do this. It will be instructor approved.
  • Have a backend -- for storing data or doing computations.

Project Development and Further Requirements

  • Development of Android can be done on any machine in which you download AndroidStudio and all necessary SDKs. You will be writing in the Java language that Google has choosen to implement Android in.

Phase 1 Adroid Wiki setup.

Even though this is an individual project we are going to heavily levarage help from each other. You can publish code on our blackboard wiki's on Android. But, you should have the majority (> 50% not including comments) of your code be your own. Be very careful about this.

Phase 2 Learning basics of Android development and documentation of this on Wiki....you will have a series of homework to do to support learning Android

Phase 3 Mobile App Requirements

You application must:

  • Must have some unique business logic or at least attempt to take a previously published idea and put your own spin on it so that you could hope to get users to download your application
  • Use one of the following devices: camera, microphone, Gyro, GPS, vibration in a NON TRIVAL WAY
    • how you use this in your mobile interface is up to you (location on a map for getting directions or...whatever)
  • Simply taking a picture and displaying it is trivial ---you must use it meaningfully.

Phase 4 Implementation and Documentation of this on wiki for your mobile app.

include full code upload (zipped up as AndroidStudio project with Detailed instructions on how to download, setup and run) and deploy on a page you create and own on our Project 1 wiki.

Phase 5 Demonstration of Mobile App.

You are to demonstrate using simulators as appropriate your code in class. This is critical as part of your grade is peer evaluation based. You will ALSO make TWO YouTube videos (see below) that you will make unlisted and post urls so all students and instructors can see

 

Proposal: 60 points, -- INSTRUCTOR REVIEWED

Turn in proposal to Blackboard ->DiscussionBoard -> Project 1 Android App proposal

MAKE a PDF of the following content

IMPORTANT: I know that this your idea may change SOME (you have to get permission for this though) ---BUT, you all have used apps and can figure out what you want your app to look like and how it should function. If I think you are doing to much for the scope of the project or too little I will let you know and you will have to alter your proposal. There may be cases where it is more efficient for you to come and talk to me about these issues in office hours and in those cases, I will ask you to do so.

before beginning this option/project you must submit and proposal which must include the following sections

  • Concept Summary - a few paragraphs on purpose of Android Application (5 points)
  • Audience - demographics of intended audience. (5 points)
  • Application Cost and Projected success - tell me what you will charge for this application (99 cents or 4.99 or what?) and why it will be successful for your audience---why are they going to buy it. (5 points)
  • Monetization - discuss 2 ways you plan on making money and ONE way must be Advertising. The other could be an in-app purchase of EITHER digital goods or some REAL service or physical goods that make sense in your app (and one you could still deploy with). See Google Play In-App Billing for digital goods for how to do this with google (but, note this is not free you will need to pay $25 to join as google developer to set this up). There are other ways to monetize--see what others are doing --but, maybe you have some unique kind of way. What about recommendations or direct contracts (hard to achieve as beginner --unless you know some one)? What could you do with local ads? I want this 2nd (1st is advertising) to be something you can achieve in this project. (10 points)
  • Interface Mockups - THIS IS SUPER IMPORTANT -- I WANT TO SEE EVERY GUI YOUR APP WILL PRESENT AND HOW YOU TRANSITION FROM ONE GUI TO ANOTHER. I NEED TO SEE EXACTLY IN FULL DETAIL WHAT THE GUIs WILL LOOK LIKE Create GUI drawings (hand drawing is okay ONLY if readable, try out http://balsamiq.com/ ) of interfaces seen by user as they use the application --- you should have more than one as the application must do something (20 points).

    NOTE: if you do not give me ALL the GUIs and in FULL detail you will get a 0 on the proposal and you MUST turn in the proposal again and correct this --- I can not grade this without you showing me these GUIs AND HOW you go from one gui to another.

  • Use Case - Diagram and Description of use of application (by hand or consider argouml.tigris.org) (5 points)
  • References - MINIMUM of one online references you used. ALSO you must find one application that is currently availabe in Adroid market and give URL. (4 points)
  • BACKEND USE - You must describe you will use a Backend (like AWS lambda or possibly Google Cloud) to store date and/or perform computations for you application on the cloud. It nneds to be a non-trivial use of a backend. A good use mihgt be storing top scores from users so that a "leaderboard" of all the top scores in the game could be demonstrated. Another app that might be looking for nearby users for a get-together may store the location of the users currently on the app. Another app might read in some kind of data from a 3rd party service for stocks and using some algorithm, mine the data on the backend server to estimate a future stock price prediction. Okay -the last app is maybe too complex for many but, gives some idea of computation versus only storage use of backend.
  • Device Sensor Processing Routines - brief description of what kinds of device sensor processing /algorithms you will do on the one or more devices sensor readings (possibly with assistance of user). Note that you can not simply display the image taken or say even one that has a single image processing routine done on it (unless you can convince me of some powerful business use for it that does not currently exist)---this is way too trivial of an application. You need to think about the business part and try to come up with an idea that you think will sell. (6 points)

      Describe in sufficient detail the non trivial use of device (hardware like camera, microphone, gyroscope, etc) and give idea of algorithm of how you will process the data and how often or when you will take the data

 

NOTE: IF requested you will need to meet the instructor either during office hours to go over your proposal in detail and make any necessary changes.

 

Code Documenation (50 Points) - PEER Reviewed

    Section Heading Contents you should have

    1) Intro and Purpose, AVD specification

    Evaluation: 0 to 10 points   

    • Name your Application ( 3points)
    • Location of Code and Description of AVD (in detail --all permissions and settings given) (7 points)

    2) Code Description

    Evaluation: 0 to 10 points

    • Give listing of source code files (3 points)
    • For EACH file give a desciption of what it does ( 3points)
    • LINK each filename above to the actual source code ( 4 points Upload Code.zip)

    3) Demonstration of Application working

    Evaluation: 0 to 10 points

    • SHOW A SEPERATE SCREEN SHOT FOR each new screen a user sees in using your application. (10 points for all screen shots, 5 points if any even one missing screen shot, 0 points if nothing turned in here)

    4) Device Feature Demonstration

    Evaluation: 0 to 10 points

    • You must through emulator or on a real physical device demonstrated (and when possible give screen shots of results) of application using your device "feature" (10 points)

    5) Code zipped up

    Evaluation: 0 to 10 points

    • This is a zip file of all your code files described in #2 above.
    • This must include ALL code, xml, images, media and any other supporting files. EVERYTHING! (10 points if everything uploaded, 0 points if ANYTHING even one file missing)

     

     

YouTube VIDEOS: Video 1= (30 points) AND Video 2= (20 points)

You will also be providing a YouTube Demonstration of the app. You should video it using any digital recording device (like a phone) showing your screen shots that you can upload to YouTube as a video. It should include the following in the video:

     

    VIDEO #1 (demonstration and discussion)

    1) Introduction: Showing a page (you can video a typed up page you display on your computer) including:

    • Your Name
    • Course Number
    • Project 1
    • App Name
    • App Purpose: Brief description of purpose of App
    • Status: Breif description of what is and is not working as it relates to your proposal

    2) (5points -- can not grade without this) Go over your proposal: Bring up document of your proposal and show the text and talk about what you were able to achieve and not

    3) Go to either your Android device that has the app deployed on it (in some cases this is necessary) or the Emulator (if it will sufficiently show functionality of app).

    4) (-15 points if missing -- can not grade without this) Now run your app, go over each functionality of your app and fully demonstrate it. If data is stored and retrievable show this. If you are using other web services demonstrate this.

    5) (-10 points if missing) If you had and problems that didn't work, show them (the results if any) and discuss why you think it didn't work

    6) Discuss how you might improve this app

    7) Discuss what you learned from making this app- what were the challenges, what you learned, how you can help others.

    VIDEO #2 (screen recording)

    USE A SCREEN recording APP and record what you are doing also to make a separate higher resolution video of it and post this as a second YouTUBE URL. There are a number of them out there --the one I have used is:

     

     

Application Evaluation Guidelines-

  • see above for points breakdown for proposal and documentation
  • MUST: in documenatation give references to all sources used in coding the app
  • ORIGINALITY: you an not copy large sections of other peoples code. This is cheating and will get you a 0 on the project. If in doubt ask your instructor. You can rely on tutorials to help you understand how to create the functionality you need but, straight out copying large blocks of code is cheating.
  • Applicaiton breakdown contains the following elements: (TOTAL 125 points)

  • APP WORKING: app is fully working according to APPROVED proposal, 60 points

    • 60: all functionality working
    • 56: small item missing not functional --most of application runs well.
    • 52: approximately 1/4 missing but, can run application still to test what is coded and working
    • 46: application is working with 1/3 missing elements.
    • 42: at least attempted 1/2 of the code though applicaiton is not working
    • 38: at least attempted 1/4 of code though application is not working
    • 0: less than 1/4th of the code attempted.

     

     

    APP DEVICE FEATURE: app uses at least device feature in a non-trivial way, 40 points

    • 40: good and effective and non-trivial use of device feature
    • 30: if device feature is not working but, code implmeneted FULLY for non-trivial use.
    • 20: if device features is coded at least 50% of way but, not working
    • 15: trivial use of device feature that works
    • 0: no device feature used.

     

     

    APP USABILITY: app interface is easy to use and quickly understandable, 25 points

    • 25: nice and easy to use interface
    • 23: interface okay to use after some short ammount of time (<3 minutes) without documentation trying to figure it out.
    • 15: very hard to use interface, would need documentation to figure out how to use it.
    • 0: no interface and there should be one

    Evaluation Process

    I have sent each student an invite to the shared google document  we will use to evaluate Project 1 apps.  You will be evaluating evert other student (except yourself). 


    DIRECTIONS on how To DO PEER EVALUATIONS:

    1)  Once the due date is upon us, you must go to Blackboard->Discussion Board ->Project 1-Final Results   where you can view each student's work including documentation, URL to video and code.   You should look at the submission of each student.   Make a review as dictated in items  1-8 which are copied below.   MAKE a review for each student (except yourself) on your local machine and THEN enter it into the shared google document you will be given in class access to (if you missed class it is your responsibility to request via email)

    SPECIAL NOTE:  You may be able to fill out items 1-5 prior to our "DEMO DAY" (see #3 below) and hopefully through demonstration in Youtube be able to also asses items 6-9 --HOWEVER, especially item #8 you may want to save from reviewing or reviewing completely until December 1: 

    Grading: I have setup a rubric for each question in the shared document that evaluates the DOC- documentation, YOUTUBE - video and APP - the application itself. You will be using that rubric as will be demonstrated in class 

  • 1)DOC: Intro and Purpose, AVD specification (0-10pnts) 2)DOC: Code Description (0-10pnts) 3)DOC: Demonstration of Application working (0-10pnts) 4) DOC: Device Feature Demonstration (0-10pnts) 5)DOC: Code zipped up (0 to 10pnts) 6) Youtube Video 1- Intro, proposal discussed, how improve discuss (0-5points) 7) Youtube VIDEO 1 - gave demo of app (15 points) 8) Youtube VIDEO 1 - if app not completed or problems - discussed why (10 points) 9) Youtube VIDEO 2 - use screen recording app to record demo of app working WITH audio (0 to 20 points) 10)APP: app is fully working (0 to 60pnts) 11) APP: app uses at least device feature (0 to 40pnts) 12)APP: app interface is easy to use and quickly understandable (0 to 25 points)

    HOW TO USE SHARED GOOGLE DOCUMENT: you MUST first make a local review and save it ion your and then make a review here in this shared document.   Remember to keep a local copy of all your reviews (in any format you wish even paper) so that you can check if your reviews are correct when I "lock down" (turn off editing to be able to view only) the document.
    REMEMBER if your name is Chen and you want to review Aylesworth's app you go to the Aylesworth tab and only edit the row with yellow that is for "Chen".  Similarly if you name is Chen and you want to review Shah's app, you go to the Shah tab and find Chen name and again in the yello you entery in your reivew of Shah's app.    Note, you never review yourself.   


    2) ATTEND APP PRESENTATIONS (and present your own app) :   You will present your app as well as get a chance to use all your fellow student's apps.

    3) EVALUATE: update any evaluations of other students after having used each student's  app during class. 

    4) LOCKDOWN:   I will lock out editing mode for all students to start stage 5

    5) CONFIRM/CHECK   Confirm your reviews of others are correct (compare to the locally saved reviews you have kept).  If you need changes you must do so by last day of class

     

Deliverables

Deliverables Proposal

  • Turn in proposal on Blackboard ->DiscussionBoard -> Project 1 Android App proposal

Deliverables Final Project (with presentations)

what to turn in to Blackboard->Discussion Board ->Project 1-Final Results

  1. Code.zip: A zip file containing all of the code of the pages that perform shopping and database operations.
  2. URL to YouTube video
  3. Working.doc: create a word document that captures the following

    PDF created from Word Document (click here for template you MUST use) that details the following:

    • Section 0 Introduction and Proposal:

      Give app name, app purpose  AND COPY AND PASTE your proposal here (and any changes you had to make from my review of your proposal)


    • Section 1 Execution Instructions:
      Instructions for me to download and run your code. YOU NEED to show me screen shots of you doing this from your uploaded blackboard code.....this forces you to make sure that I can run your code. You MUST have the following screenshots AND give description on what to do: screenshot 1.1 = screen shot of your files uploaded to Project 1 turn in folder on blackboard

      FIGURE HERE
      screenshot 1.2 = directory view of "temp" directory you unzipped file to showing the unziped files and directory structures.


      FIGURE HERE
      screenshot 1.3 = AndroidStudio running where you have opened up project file in "temp" directory.

      FIGURE HERE
      screenshot 1.4 = AndroidStudio running the application - show screenshot of it running. If I must do something beyond simply hitting the "run" button, you need to give screenshots and step by step instructions.

      MORE screenshots as needed to show the full capability of the application working

      .

    • Section 2 Code Descpription
       A describing how code is structured and the state of how it works. Give a describption for each filename listed.

      .

    • Section 3 Testing:
       here you give screen shots of you running the various stages of the program as detailed here:

      section 3.1: starting application -


      FIGURE HERE
      screenshot 3.1a= showing icon and resulting starting GUI

      .

      section 3.2: use step 1

        You will have sections showing you using different interfaces and results of the application.
      FIGURE HERE
      screenshot 3.2a = screen shot of application

      FIGURE HERE
      screenshot 3.2b = screen shot2 using app

    FIGURE HERE
    screenshot 3.2c AND MORE = more screen shots as needed to demonstrate using this application.

     

    ******Discuss especially how your “hardware feature is used in the app” ******


    • Section 4 Comments
      Optional any comments you have regarding your code (necessary if you code is not working, you need to tell me in detail what the problem is or what is missing)


    • Section 5 YouTube URL

 

© Lynne Grewe