mobile software desisgn

13
Mobile Software Design -GoLo

Upload: sumit-mendiratta

Post on 20-Mar-2017

23 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Mobile software desisgn

Mobile Software Design -GoLo

Page 2: Mobile software desisgn

Feeling left out? or missing your people

in a new city you moved to?

Page 3: Mobile software desisgn
Page 4: Mobile software desisgn

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

How does it work?

1 2 3

Page 6: Mobile software desisgn

The Stack

Node JS

Express JS

MongoDB

OAuth LayerAndroid App

Page 7: Mobile software desisgn

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

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

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

Appium Testing - Testdroid.

Page 11: Mobile software desisgn
Page 12: Mobile software desisgn

@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

Connecting Your People

Go LoGo Local