Giter Club home page Giter Club logo

lab3's Introduction

##Mobile Proto Lab 3

###Learning Objectives

By the end of this lab, you should be able to:

  • Developing universal and relevant Android development skills, including:
    • Improve abilities to create code that uses third party libraries
    • Demonstrate ability to use asynchronous sensors on cell phone
    • Improve ability to work with SQL relational database
    • Become closer to creating Android code that would be considered professional
  • Organize your time effectively over the span of a project
  • Work effectively with a partner
  • Design an intuitive user interface

###Application Objectives

Students will create a scavenger hunt app that will guide a user on a video scavenger hunt. Using the GPS on their phone they will determine if the user has arrived at the next clue location. Once at the next location the user should use the camera to upload an image to Amazon S3 and then download a video showing the next clue.

To accomplish these goals you will have to learn, use or improve:

  • Switching between fragments
  • Saving infromation to a web SQL database
  • Make HTTP Requests using Volley
  • Understand setup process for third party APIs
  • Reading device sensor data
  • Upload, download, and display media including photos and videos

###App functionalities

###Weekly benchmark goals

You need to meet the following goals by the following dates:

  • 8/8 - Your interface should be designed
  • 8/15 - Two of the above functionalities should be implemented

###Implementation Tips

Since this lab is longer we will give you some guidance on implementation:

  • We expect you to separate the functionalities logically into separate classes.

####Using the database

  • We have created a database on a web server that everyone can connect to. This database will contain a table that holds the UUID of the video, the latitude, longitude and clue id. This table is called SCAVENGER_INFO and contains the columns LOCATION_ID, LATITUDE, LONGITUDE, and VIDEO_ID. These should be pretty straight forward as to what they contain. DO NOT ADD OR DELETE INFORMATION FROM THIS TABLE
  • You will also create your own table that should contain atleast columns for the UUID of the photo you upload to S3 and also the ID of the location the photo was uploaded at. Please name this table something identifiable, ie CHRIS_PHOTOS
  • Speaking of UUID, heres a description http://www.tutorialspoint.com/java/util/uuid_randomuuid.htm you should give each of your photos a UUID and store them in S3 using that UUID.
  • To log into the database: Its IP is 45.55.65.113, you can use the default port name. The database name is mobproto. Your username is student and your password is MobProto.
  • This tutorial gives you a good way to get a Connection to a SQL database. The URL that is referenced in this tutorial would look like jdbc:mysql://45.55.65.113/mobproto
  • Once you have a connection, you should be using a PreparedStatement to run your SQL queries. This shows a decent example of doing that.

####Using S3

  • The s3 bucket name you will be using is olin-mobile-proto.
  • The API key will be emailed to you.
  • You must get the S3 URL of the videos in order to easily play the video in a VideoView.
  • The database contains the S3 unique ID of the file. You need to use the Amazon SDK to get the URL from the unique identifier
  • upload your images with a UUID.

####Video download

####Image upload

  • We're using the Android S3 SDK. A super-relevant code example can be found here: https://github.com/aws/aws-sdk-android. You can include the SDK in gradle with the line compile 'com.amazonaws:aws-java-sdk:1.10.0'

####Device hardware

Note: we're intentionally giving you less information. You should be adept at googling issues and finding documentation for classes on your own.

###Grading:

  1. Functionality (65%):
  • Correctly view GPS data and trigger event when within specific location range (15%)
  • Upload/download to a class SQL database (15%)
  • Display video from S3 (20%)
  • Successfully take picture, upload image to S3 (15%)
  1. Code Quality (20%):
  • Android guidelines (10%)
  • Java best practices/ general MVC guidelines/ comments (10%)
  1. Effective and intuitive user interface (15%)

lab3's People

Contributors

shrutiyer avatar cwallac avatar dcelik avatar

Watchers

James Cloos avatar Yuzhong Huang avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.