mobile software project : android application

Post on 17-Jan-2017

130 Views

Category:

Engineering

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sumit Mendiratta

Mobile Software Design -GoLo

Feeling left out? or missing your people

in a new city you moved to?

Talk to them Make Friends Sell Stuff

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

How does it work?

1 2 3

The Stack

Node JS

Express JS

MongoDB

OAuth LayerAndroid App

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)

The Frontend - Andriod App

Android UI Activity (Handler) Activity Intent

Material Design

Android Service( Async Task)

SMS Manager

GMaps ApiJSON based HTTP Request

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

Appium Testing - Testdroid.

@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("testuser@gmail.com","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); } } }

Connecting Your People

Go LoGo Local

top related