mobile software desisgn final presentation

13
Sumit Mendiratta Mobile Software Design -GoLo

Upload: sumit-mendiratta

Post on 17-Jan-2017

83 views

Category:

Engineering


8 download

TRANSCRIPT

Page 1: Mobile software desisgn    final presentation

Sumit Mendiratta

Mobile Software Design -GoLo

Page 2: Mobile software desisgn    final presentation

Feeling left out? or missing your people

in a new city you moved to?

Page 3: Mobile software desisgn    final presentation
Page 4: Mobile software desisgn    final presentation

Talk to them Make Friends Sell Stuff

Connecting billions of people living abroad find people from their native country or city

Page 5: Mobile software desisgn    final presentation

How does it work?

1 2 3

Page 6: Mobile software desisgn    final presentation

The Stack

Node JS

Express JS

MongoDB

OAuth LayerAndroid App

Page 7: Mobile software desisgn    final presentation

The Architecture

Android UI

Activity (Handler)

Android Service( Async Task)

HTTP (JSON Based Request)

Express Server

Route Layer

Service Layer

DB Layer

HTTP (JSON Based Response)

Page 8: Mobile software desisgn    final presentation

The Frontend - Andriod App

Android UI Activity (Handler) Activity Intent

Material Design

Android Service( Async Task)

SMS Manager

GMaps ApiJSON based HTTP Request

Page 9: Mobile software desisgn    final presentation

The Backend - Node JSJSON based HTTP Request

Modulus

Express Server

-Dev

-Prod

JSON driven configuration service

Config Layer

/login

/users

/friends

/messages

/offers

. . .

Routing Layer

Auth

Messages

Offers

Users

...

DB Service Layer

DB Helper

MongoDBClient

DB Helper LayerJSON based HTTP Response

Page 10: Mobile software desisgn    final presentation

Appium Testing - Testdroid.

Page 11: Mobile software desisgn    final presentation
Page 12: Mobile software desisgn    final presentation

@MobileTest(device = "android:5.1", additionalCapabilities = { "appiumVersion:1.4.16", "deviceType:phone", "deviceName:Android Emulator", "platformVersion:5.1", "platformName:Android", "locale:GB", "language:en" })@Test(singleThreaded = true)public class GoloOffer extends BaseTest { @BeforeClass(alwaysRun = true) public void initialize(ITestContext iTestContext) throws InterruptedException{ printMessage("Running Golo Offer"); } @Test(groups = {"GOLO_OFFER"},priority=1) public void viewOffer() throws Exception{ try{ try{ this.login("[email protected]","en"); WebDriverWaitUtils.waitUntilElementIsVisible(homePage.listOffersButton().getLocator()); }catch(Exception | Error ex ){ throw new SkipException("Login Failed",ex); } TestSteps.record(Priority.Major, "On Home Page"); try{ TestSteps.record(Priority.Major, "Navigating to Offer Page"); homePage.clickSendMoneyButton(); }catch(Exception ex){ throw new SkipException("Offer button not found",ex); } WebDriverWaitUtils.waitUntilElementIsVisible(offerPage.getListItem().getLocator()); sendMoneyIntroPage.clickFirstListButton() WebDriverWaitUtils.waitUntilElementIsVisible(offerDetailPage.getOfferNameTextField().getLocator()); TestSteps.record(Priority.Critical, "On Offer Page"); String offerName = offerDetailPage.getOfferNameTextField().value(); String offerPrice = offerDetailPage.getOfferPriceTextField().value(); SeLionAsserts.assertNotEquals(offerName.length,0); //Testing name is not empty SeLionAsserts.assertGreaterThan(offerPrice, 0); // Testing that price of offer should be grater than 0 offerDetailPage.clickCancelButton(); // Lot more flows to come here... } catch(Exception ex){ ex.printStackTrace(); mobileExceptions.recordAfterFailureException(null, ex,"View Offer Flow Failed",null,interestedUrls); } } }

Page 13: Mobile software desisgn    final presentation

Connecting Your People

Go LoGo Local