Final Presentation - UHCL SCE DCM Server

advertisement
TEAM 9 : JAILBREAKERS
RENDEZVOUS
Instructor: Dr . Perez Davila
Mentor: Mr. Todd Guillory
Members:
Twinkle Agarwal
Anjana Bhirde
Ravi Madaiah
David Hodgson
Why iPhone?
 Not desktop, not web app. Mobile development
not usually offered as a course.
 New programming language
 Learn about Mac OS
 Learn about Model-View-Controller (MVC)
pattern
 Resume building
Requirements
 Must call a web service
 Must perform basic database operations
 This had a huge influence on what we decided to
do
What is a web service?
 A method of machine-to-machine communication
 A way of calling a procedure/function/method on
another machine
 Interoperability: can use different languages,
different operating systems
Web services
 Two types: “Big web services” and RESTful
 Big web services use HTTP, and SOAP. Easier to
consume with proxy classes. Click here for
sample web service.
 RESTful services use existing HTTP operations of
GET, PUT. Really just parsing a well-formed web
page.
No
SOAP
involved.
http://www.geoplugin.net/extras/postalcode.gp?
lat=29.577637&long=-95.104244&format=xml
What does our application
do?
 Divided into three features, to satisfy different
requirements
 First feature: gets the weather.
 Second feature: invite friends to a restaurant.
 Third feature: find directions to a friend, using
Google Maps.
 All features assume that there is internet
connectivity.
Feature One: Weather
 The view that loads with the application launch is
the weather for the user’s present location
 It also comes with a search option to get weather
update for particular zip code
 It also has an image that depicts the weather
description (sunny, etc.)
 Uses response of one web service (zip code) as
input for another web service (weather ): like
function composition in math
Feature One: Weather
Sequence Diagram
Notes on feature one:
 The user does not need to know where he is
 Does not accept invalid input
 It consumes data from an existing web service
 Demonstrates interoperability (between Apple
OS and Microsoft OS, and objective c to C#).
Same is true for feature 2 and feature 3
Feature One: Weather
screenshots
Feature Two : Fix Meeting
 On launch of this feature displays a list of
restaurants for present location
 Also has a search option for getting restaurants
for a particular zip code
 Shows list with 10-12 restaurants with respect to
user’s present location (limitation of XML?). This
might be because users give long reviews of
restaurants, so the service chops off the results.
Feature Two : Fix Meeting
 Uses two web services
Consume existing web service for getting list of
restaurants (Yahoo! API)
II. Create a web service for sending invitation
message via email. Deployed on DCM web
server.
I.
Feature Two : Fix Meeting
Sequence Diagram
Notes on feature two:
 User does not need to know where he is
 User does not have to do any typing
 Does not accept invalid input
 Retains value when there are view switches
 User choices are stored in a singleton object
 Interoperability
Feature Two : Fix Meeting
screenshots
Feature Two : Fix Meeting
screenshots
Feature Two : Fix Meeting
screenshots
Feature Three : Get
directions
 On launch of this feature, displays a list of friends
and their respective distance from the user
 Also has update location option that updates
user’s location in database
 Created web service that calls a stored procedure
that return relative distance between user and
his friend
 Performs database operations (INSERT, UPDATE,
SELECT)
Feature Three : Get directions
Sequence Diagram
Notes on feature three
 Gives map as well as textual route
 Interoperability
 Illustrates web service performing database
operations
 Database is prepopulated with users’ locations.
 The application does assume that a group of
friends all have and use the application.
Feature Three : Get directions
screenshots
What is unique about our
application?
 Two people in a new city can find each other
without knowing each other’s current location.
 Inviting a friend to a restaurant does not need
any typing on the user’s part.
Ideas of how this can be
extended in future semesters
 On restaurant feature, can get results based on
current location and radius.
 Other types of events:
1. Movies
2. Concerts
3. Sporting events
More stuff to do
 Web service authentication and encryption
 HTTPS
 Token
More to do: privacy concerns
 Need to authorize friends to see where I am
(could stalk someone otherwise)
 Web service needs to check that they are actually
friends before sending results
More to do: Identity
 Using a phone number to represent identity,
which can change
 Need to have a way for users to update their
information (name, phone number, email
address)
Things we could have done
better
 Comment code as we go, instead of at end
 For commercial applications, if you don’t, it won’t get
done
 More time consuming otherwise
 Don’t use comments to comment out code, and
especially don’t commit it into source control
 Break down objects more
 View controllers were doing a lot of work. Could move
parsing XML and calling web services into another
class.
 Makes for more reusable code.
Conclusion
 The requirements that we had to meet for the
course are met by this application
 Successfully implemented the three features that
we intended to implement at the start of the
course
 Get legitimate outputs
Download