Upload
francis-hardy
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
As a user who is hiking in the Black Hills, I would like to… Report a landscape change event Provide details about the event Include pictures I have taken
So that I can.. Improve public knowledge about my
environment Report events that pose threats / cause
concern
Primary User Story
Citizens able to submit/view landscape events
Event information and pictures Robust search Data gathered for research Toolset for scientists Anonymous or registered Extend to new technology
Goals
Proof of Concept Crowd Sourcing Citizen Science Mobile Applications Open Source Software/Data USGS “Did You Feel It”
Background
Agile Model – Sprints and evolving requirements
Atlassian Jira – Issue tracking, Sprint planning and storyboarding
Atlassian Stash (Git) – Version control and code repository
Project Management
Bootstrap HTML/CSS Javascript JQuery
Async POST requests JSON - Serialization Leaflet.js
Leaflet.draw
Mapbox PHP Apache Amazon Web Services MongoDB
Technologies Used
http://54.244.242.86/search.html Feel free to try it yourself
Small Demonstration
Database has Collections(tables) Event – Submitted event info Files –Uploaded images (gridFS) User – User information. Happen – Happening now events (described later) GoogleAuth – Links user table with google API
Oauth2 (for Glass) All database reads / writes through php driver
Passes queries using php arrays.
Database
Relatively new trend Allows previously unheard of flexibility
“Schemaless” means that data can be inserted regardless of previous records.
Generally has an “implied” schema rather than an “explicit”
Great for rapid prototyping and key-value stores. Not so great for data security and data consistency.
NoSQL Database
Same functionality/database as website Increase crowd sourcing Keep it simple Mobile concerns
Network connectivity Battery life Screen size
Phase 2 – Android App
Android Studio User friendly (suggestions/auto completion) Version control built in Powerful emulator Debug on physical devices
Layouts in XML Rest in Java
IDE
Stack of activities (screens) User quits activity with back arrow Suspends activity with home button Navigation add layers Programatically
Don’t keep login/register activity Intent starts new activity
Android Lifecycle
Android permission to view connectivity Check network is enabled Check if network has internet access Error if not connected If valid connection enable login or register
button
Network Connectivity
All fields filled out Passwords match if registering Email validation
Built in android pattern matcher
Form Validation
Persistent key value pairs stored to phone Each app has own storage Not secure, but hard to access Used to remember login Encrypt password stored on phone
Shared Preferences
Application not responding in 5 seconds Important for network tasks Thread off of main UI thread Used frequently in app Asynch built in with return methods
Asynch Task
Similar to login/register activities Validate all fields filled in Build JSON object Async post to server Check return data
Create Event
Three different ways to make app Traditional android app installed on device Glass Development Kit installed on device Mirror using google API service
Phase 3 – Google Glass App
Built same as cell phone app Familiar Great documentation and samples Layouts might not work correctly Can’t use glass features
Text to speech Gestures Timelines/cards
Traditional Android App
Android 4.4.2 (API 19) and glass development kit preview in the SDK
Compile with GDK Works in most Android IDE’s No theme Has glass features available Not full network support
Glass Development Kit
Nothing installed on device Data accessed through RESTful API Code is stored on server
Support for most languages (PHP) User’s google account gives permission LCM linked to google account and stored in server Service inserted into glass Picture is sent to google API Server requests updates from API node
Mirror (What we used)
JSON object that glass sends to API Contains all information about picture
Date, speakable text, attachments, location, etc Has everything we would want Stored in Google’s API server Timeline is sent to server when requested Create scheduled task on server “Happening Now”
Timeline Card
App on Android phone paired with Glass Helps pair and setup Screen mirrors Glass display on phone Device info Last known location
My Glass