Download - Mobile software desisgn final presentation
![Page 1: Mobile software desisgn final presentation](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/1.jpg)
Sumit Mendiratta
Mobile Software Design -GoLo
![Page 2: Mobile software desisgn final presentation](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/2.jpg)
Feeling left out? or missing your people
in a new city you moved to?
![Page 3: Mobile software desisgn final presentation](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/3.jpg)
![Page 4: Mobile software desisgn final presentation](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/5.jpg)
How does it work?
1 2 3
![Page 6: Mobile software desisgn final presentation](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/6.jpg)
The Stack
Node JS
Express JS
MongoDB
OAuth LayerAndroid App
![Page 7: Mobile software desisgn final presentation](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/10.jpg)
Appium Testing - Testdroid.
![Page 11: Mobile software desisgn final presentation](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/11.jpg)
![Page 12: Mobile software desisgn final presentation](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/12.jpg)
@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](https://reader035.vdocuments.net/reader035/viewer/2022070514/587e460c1a28ab9f5d8b85fd/html5/thumbnails/13.jpg)
Connecting Your People
Go LoGo Local