Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
InventoryApp
SoftwareDevelopment4thYearProject
ResearchManualStudent:PhilipWalshID:C00109740Supervisor:NigelWhyteDate:15/4/16
ResearchManual
2InventoryApp
TableofContentsIntroduction..............................................................................................................................3SimilarApplications...............................................................................................................4MyInventoryManager....................................................................................................................4InventoryScanner.............................................................................................................................6Barcode.................................................................................................................................................7
Platform......................................................................................................................................9iOS...........................................................................................................................................................9Android.................................................................................................................................................9ApacheCordova/Phonegap........................................................................................................10Website..............................................................................................................................................10Conclusion........................................................................................................................................10
Technologies..........................................................................................................................11BarcodeScanner.............................................................................................................................11OCR......................................................................................................................................................11Flask....................................................................................................................................................12ItemLookup.....................................................................................................................................12Amazon.............................................................................................................................................................12eBay....................................................................................................................................................................13Scandit...............................................................................................................................................................13
Conclusion........................................................................................................................................14ProgrammingLanguages...................................................................................................15HTML5................................................................................................................................................15CSS.......................................................................................................................................................15JavaScript..........................................................................................................................................15Python................................................................................................................................................15
CloudPlatforms.....................................................................................................................16DigitalOcean.....................................................................................................................................16GoogleAppEngine.........................................................................................................................16AmazonAWS....................................................................................................................................16Kinvey................................................................................................................................................16Parse...................................................................................................................................................17Conclusion........................................................................................................................................17
IntegratedDevelopmentEnvironment(IDE).............................................................18Eclipse................................................................................................................................................18Xcode..................................................................................................................................................18SublimeText2.................................................................................................................................18Conclusion........................................................................................................................................18
Conclusion...............................................................................................................................19Features.............................................................................................................................................19Overview...........................................................................................................................................19
References..............................................................................................................................20
ResearchManual
3InventoryApp
IntroductionThis is the research manual for my Inventory App project. In this manual I willdiscuss the technologies available to develop this application and provide aconclusion towhich of these technologieswould be best suited to implement thefunctionality ofmy application and the chosen target platform. Iwill also look atsomesimilarinventoryapplicationswhichareavailabletodownloadonthemarketandprovideananalysis of the functionality that these applicationsprovide to theuser.
ResearchManual
4InventoryApp
SimilarApplications
MyInventoryManagerThis application is very similar to the application outlined in the projectspecificationformyinventoryapplication.Thisapplicationallowstheusertoscanabarcodeusing abuild inbarcode scanner andautomatically retrieves informationontheitemandpopulatesfieldssuchastitle,price,author,publisher,genre,ISBN,category,etc.Thesefieldscanalsobeeditedmanuallybytheuser.Inthecasewhereinformation for the barcode is not available the user can add items to theirinventorybymanuallyfillingoutfieldsdescribingtheobject.
The applicationprovides a very simpleuser interfacewith threemainoptionsonthelandingscreen.
1. Showalistofitemsintheinventory.2. Manuallyaddanitemtotheinventory.3. Addanitemtotheinventorybyscanningthebarcode.
Ausercanalsosearchtheinventoryforanitembytyingthenameoftheitemintothesearchbaratthetopofthescreen.
ResearchManual
5InventoryApp
Itemscanbedividedintodifferentsectionsdependingonthetypeofitem,location,owner.Someof thecategories in theapplication includebook,clothing,computer,electricalappliance,movie,music,etc.Categoriescanbeeditedandcreated.Ananalysissectionintheapplicationallowstheusertoseealistingoftotalassetswhichwillshowthesumofthepriceforalltheitems.ThelistingoftotalassetscanbeexportedasaCSVfile.
Itemscanbemanuallyaddedtotheapplicationbyselectingacategoryfortheitemandthenfillingouttherelevantdetailsabouttheitem.Thebarcodescannerscansthebarcodeandreturnsanddisplaystheinformationtotheapplicationandgivestheuserthechoicetoaddtheitemtotheinventoryorelsediscardtheinformation.
ResearchManual
6InventoryApp
InventoryScannerThis application has some of the functionality of the application proposed in theproject specification. This application is mainly targeted towards companies forkeeping a record of stock rather than a general user to keep an inventory ofpersonalitems.
Thelandingpageoftheapplicationprovidesalistofinventories.Aninventorycanbeaddedbypressingtheplusbuttoninthetopleftcornerofthescreen.Themenuisintabformalongthebottomofthescreenbuttheseoptionsarenotveryclearastowhatthedifferentoptionsdo.The application has a barcode scanner which provides options such as bulkscanning and configuring light settings. The scanner will return the upc numberfromthebarcodebuttheapplicationdoesnotprovideinformationonthescanneditemandtherelevantinformationmustbefilledinmanuallybytheuser.
ResearchManual
7InventoryApp
BarcodeThis application is quite similar to the application outlined in the projectspecificationformyinventoryapplication.Themainfunctionalityoftheapplicationistoprovidetheuserwiththepricesfortheitemfromdifferentstoresbyscanningthebarcodeoftheitem.
The initial screen when the application is opened is the barcode scanner. Theapplicationallowstheuser touseeither the front facingcameraor thecameraonthebackofthephonetoscanthebarcodeontheitem.Theapplicationmenucanbeaccessedbypressingtheicononthetopleftofthescreen.Themenuisaslideoutmenuwhichappearsfromthelefthandsideofthescreen.The user interface is very straight forward to use and themenu icons are clearlylabeled.Theusercanchoosetoscananitem,searchforapreviouslyscanneditem,viewahistoryofscanneditemsandanoptiontoconfigureapplicationsettings.
ResearchManual
8InventoryApp
Whenthebarcodeofanitemhasbeenscannedtheapplicationreturnsthethenameoftheitemandalistofpricesfromthedifferentonlinestoreswhichhavethisitemforsale. Imagesof the itemisalsoreturnedandother informationsuchasrelatedproducts,relatedbooks,websites,etc.Thescanneditemscanbeaddedtoa folderwhichtheusercancreatedtoorganisetheitemsintocategories.Thehistoryoptioninthemenuprovidesalistofall itemsthathavebeenscannedbytheuser.
ResearchManual
9InventoryApp
Platform
iOSiOS[1] is a mobile operating system created and developed by Apple. iOS wasoriginallyreleasedintheyear2007.ThisoperatingsystemisexclusivelydistributedforApplehardware.OriginallythisoperatingsystemwassupportedfortheiPhonebutnowitalsopowersotherAppleproductssuchasiPodtouch,iPadandAppleTV.iOS is the second most popular mobile operating system in the world behindAndroid.ApplicationsforiOSaredevelopedusingamacintoshcomputerandmustbewrittenandcompiledusingXcodewhich isan integrateddevelopmentenvironment (IDE)containingasuiteofsoftwaredevelopmenttools.ApplicationsforiOSarewrittenintheObjective-Cprogramminglanguage.DeveloperswhocreateiPhoneapplicationsmust pay a developers fee of $99.00 before they can test their applications on aphysical device or upload their applications to the App Store for release to thegeneralpublic.
AndroidAndroid[2]isanopensourcemobileoperatingsystemwhichisdevelopedbyGoogle.This operating system was designed primarily for touchscreen devices such assmartphones and tablets, and is now also available for Android TV and Androidwearforwatches.TheAndroidoperatingsystemwasunveiledin2007. ThelatestversionoftheoperatingsystemisMarshmallowversion6.0,whichwasreleasedon5thofOctober2015.Applications forAndroid arewritten using theAndroid software development kit(SDK)usingthejavaprogramminglanguage.TheSDKincludesadeviceemulator,adebugger, software libraries, documentation, tutorials and sample code. Google’ssupported integrateddevelopment environment (IDE) for developing applicationswas initially Eclipse using the Android Development Tools (ADT) plugin. Googlereleased Android Studio in 2014, as its primary IDE for Android applicationdevelopment,whichisbasedontheIntelliJIDEA.
ResearchManual
10InventoryApp
ApacheCordova/PhonegapBuilding applications for different devices such as iPhone, Android andWindowsmobile requires different frameworks and languages. Phonegap[3] is platformindependent,applicationscanbedevelopedformanymobileplatformsusingHTML,CSSandjavaScript,insteadofrelyingonplatformspecificAPIs.Phonegapapplicationsarehybrid,meaningthattheyareamixtureofanativeappandawebapp.Layout rendering isdoneusingwebviews (HTML,CSS)andnotaplatform specific UI framework. A hybrid application can still interact with thecamera, GPS, contacts, files, storage of a device as it has access to all the nativedevicesAPIs.PhonegapprovidesabuildservicethatallowstheprogrammertouploadtheircodetoacloudcompilerthatgeneratestheapplicationforeverysupportedplatformsuchasiOSandAndroid.
WebsiteAlongwiththesmartphoneapplication,awebsitewillbeavailablefortheappusertoaccessandmanagetheitemsintheir inventory.Theuserwillbeabletomodifytheitemsintheinventoryordeletetheitemsfromtheinventory.ThewebsitewillbebuiltusingFlask,HTML,CSS,javaScriptandPython.
ConclusionThe platform I have decided to develop for is Apache Cordova/Phonegap.Developing the applicationusingCordovawill allow the application to run acrossmanydifferentplatformsasitisplatformindependent.
ResearchManual
11InventoryApp
Technologies
BarcodeScannerGiventhattheapplicationmustbeabletoscanabarcodeandretrieveinformationon the item, barcode scanning software must be integrated into the application.SincetheapplicationwillbebuiltusingphonegapIstartedtoresearchiftherewasanypluginsavailableforbarcodescanningforthisplatform.BarcodeScanner[4]isacross-platformandanofficialpluginforphonegapwhichcanbeeasilyintegratedintotheapplicationusingJavaScript.Thisplugincanscanmanydifferent types of barcodes and get themetadata encoded in them for processingwithintheapplication.
OCROpticalCharacterRecognition[5]is theprocedureof creatingmachine-encoded textfromscanningandconvertingtyped,handwrittenorprintedtext.Thistechnologyistobeintegratedintotheapplicationforthesituationwhenthebarcodeofanitemdoes not generate the required detailed information for it to be stored in theinventory.Theuseroftheapplicationwillbeabletoscantextfromtheitemwhichwill be converted to machine encoded text and automatically populate a specificfieldfortheitem.Tesseract[6]isanopensourceOCRenginewhichisdevelopedbyGoogle.Itcanreadawide variety of image formats and convert to text inmany different languages.This engine works in association with Leptonica image processing libraries. Aversionofthisengineisavaiableforintegrationwithandroidcalledtess-two.[7]Python-tesseract[8]is an OCR tool for the python programming language. Python-tesseract isawrapper forGooglestesseract-OCRenginewhich isdescribedabove.ThistoolworksinconjunctionwiththePythonImagingLibraryandsupportsimageformatssuchasjpeg,gif,png,bmp,tiff,andothers.
ResearchManual
12InventoryApp
FlaskFlask[9]isamicrowebapplicationframeworkwritteninPython.Flaskdoesnotforcethe developer to use a particular tool or library. There is no native support foraccessingdatabases,validatingforms,orotherhighleveltasks.Flaskwasdesignedas an extensible framework which supports extensions that add features to theapplication.
ItemLookupAspartof therequirements for theapplication,whenan item isscannedwith thebarcodescanner,thedetailsoftheitemmustberetrievedsothattherelevantfieldscan be automatically populated which eliminates the need for the user to enterthesedetailsmanually.Someofthewebsitesthatprovidefunctionalityforretrievingiteminformationareasfollows:
AmazonAmazonprovidesaProductAdvertisingAPI[10]whichcanbeusedforsearchingforanitemusinganISBNorabarcode.Amazoncoversahugerangeofproducts,wouldreturninformationonthevastmajorityofitemsscanned,whichwouldbebeneficialtotheproject.TousethisAPI,youmustposttheitemidentifier(barcode)andtheItemLookupoperationwillreturnsomeoralltheitemsattributes.Asampleresponsewouldbeasfollows:<Items><Request><IsValid>True</IsValid><ItemLookupRequest><ItemId>B00008OE6I</ItemId></ItemLookupRequest></Request><Item><ASIN>B00008OE6I</ASIN><ItemAttributes><Manufacturer>Canon</Manufacturer><ProductGroup>Photography</ProductGroup><Title>CanonPowerShotS4004MPDigitalCameraw/3xOpticalZoom</Title></ItemAttributes></Item></Items>
ResearchManual
13InventoryApp
eBayEbay[27]providesdifferentAPI’ssuchas,FindingAPI,ShoppingAPIandTradingAPI.TheFindingAPIsuitstheneedsofthisprojectasanitem’sbarcodenumbercanbeusedtoqueryeBay’splatformwhichcontainsahugenumberofproducts.TherequesttotheAPIismadebyconstructingaURLwhichcontainsinformationsuchasthebarcodenumber,itemcondition,listingtype,returnformat,andotherfilters.TheiteminformationcanbereturnedinJSONformat.Anexampleresponsewouldbe:_cb_GetSingleItem({"Timestamp":"2016-04-12T16:12:04.569Z","Ack":"Success","Build":"E949_CORE_APILW_17769283_R1","Version":"949","Item":{"ItemID":"361512863605","EndTime":"2016-04-16T00:10:52.000Z","ViewItemURLForNaturalSearch":"http://www.ebay.com/itm/NEW-Second-Half-Doyle-Roddy-Keane-Roy-Paperback-/361512863605","ListingType":"FixedPriceItem","Location":"Peacehaven","PictureURL":[],"PrimaryCategoryID":"171279","PrimaryCategoryName":"Books,Comics&Magazines:Non-Fiction:Biographies&TrueStories","BidCount":0,"ConvertedCurrentPrice":{"Value":4.27,"CurrencyID":"USD"},"ListingStatus":"Active","TimeLeft":"P3DT7H58M48S","Title":"NEWTheSecondHalf,Doyle,Roddy,Keane,RoyPaperback","ItemSpecifics":{"NameValueList":[{"Name":"ReturnsAccepted","Value":["ReturnsAccepted"]},{"Name":"Afterreceivingtheitem,yourbuyershouldcancelthepurchasewithin","Value":["14days"]},{"Name":"Returnpostagewillbepaidby","Value":["Buyer"]},{"Name":"Returnpolicydetails","Value":["We'rehappytoacceptreturnsforanyreason,within14daysofreceipt.Refundswillincludeallshippingcosts,butwewillonlyrefundreturnpostageforanerrorinthelisting."]},{"Name":"Author","Value":["RoyKeane","RoddyDoyle"]},{"Name":"Subject","Value":["Biographies&Autobiographies"]},{"Name":"Subject2","Value":["Autobiography:Sport"]},{"Name":"PublicationYear","Value":["21/05/2015"]},{"Name":"Format","Value":["Paperback"]},{"Name":"Language","Value":["English"]},{"Name":"EAN","Value":["9781780228822"]},{"Name":"ISBN","Value":["9781780228822"]}]},"Country":"GB","AutoPay":false,"QuantityAvailableHint":"MoreThan","QuantityThreshold":10}});
ScanditScandit[11]isanotherwebsitewhichprovidesaproductAPIforlookupofUPCs.Thescanditproductdatabasefeaturesmorethan25millionUPCs.Someofthedetailsthatcanbereturnedontheitemscannedare,productnames,andcategories.Thisservicesdoesnotprovideapriceforthescanneditem.
ResearchManual
14InventoryApp
Conclusion
TheitemlookupproviderIinitiallychosetointegratewiththeapplicationwastheAmazonProductAdvertisingAPI.Amazonhasahugedatabaseofitemsandreturnsrelevantinformationoneachitem.AmazonrequirespermissiontousetheProductAdvertisingAPIinconjunctionwithamobileapplicationwhichIwasdenied.AfterbeingrefusedpermissionuseAmazon’sAPI’sforitemlookup,Idecidedtogowith Ebay’s Finding API and Shopping APIwhichworks in a very similarway toAmazon’s API. Ebay also has a huge collection of items which provides all therelevantinformationIneedforthisproject.Thebarcodescannerfortheapplicationwillbeacordovapluginwhichisbasedonthezxingbarcodeimageprocessinglibrary.
ResearchManual
15InventoryApp
ProgrammingLanguages
HTML5HTML5[12]isusedontheworldwidewebforstructuringandpresentingcontentinaweb browser. HTML stands for Hyper Text Markup Language. HTML5 waspublishedonthe28thOctober2014.Itisthe5threvisionoftheHTMLstandard.
CSSCSS[13]standforCascadingStyleSheet.Thisstylesheetlanguageisahighlypopulartechnology used by most websites used for describing the presentation of adocument written in a markup language such as HTML5. CSS was designedprimarily for the separation of document styling and document content. SomeaspectsofthestylingCSSprovidesarelayout,colour,fonts,etc.
JavaScriptJavaScript[14], along with HTML and CSS is one of the essential technologies forcontent production on the world wide web. JavaScript supports object-oriented,functionalandimperativeprogrammingstyles.ThemostcommonuseofJavaScriptisforaddingclient-sidebehaviourforcreatingdynamicHTMLpages.JavaScriptcanalso be used in game development, creation of desktop and mobile applications.Server-side web applications can be developed using the Node.js[15] runtimeenvironment.
PythonPython[16] is a high-level programming language which emphasises on codereadability. Like JavaScript, Python supports object-oriented, functional andimperativeprogrammingstyles.Python is freeandopensource.Pythonprogramsareplatformindependentwhichmeanstheycanrunonanyplatform.Pythonhasavery large and comprehensive standard library. This language was developed byGuidovanRossumandinitiallyreleasedin1991.Thelatestversionofthis is3.5.0which was released on the 13th of September 2015. Python can be used as ascriptinglanguageforwebapplications.
ResearchManual
16InventoryApp
CloudPlatforms
DigitalOceanDigitalOcean[26] is a cloud infrastructure provider of virtual servers for softwaredevelopers. The company is based in New York and has data centers around theworld.ItwasoneofthefirstcloudhostingcompaniestoprovideSSD-basedvirtualmachines. Pricing plans start at $5 permonthwhich offers 512MBofRAM, 20GBSSD,1CPUand1TBtransfer.
GoogleAppEngineGoogleAppEngine[17](GAE) isaplatformasaservice[18](PaaS) fordevelopingandhostingwebapplications.Thisserviceisfreeuptoacertainlevelofusage.Automatic scaling isprovidedby this service forwebapplications.Additional feesare charged for extra bandwidth or instance hours thatmay be required by yourapplication. Data storage, queries and transactions are provided as part of theservice.Some of the supported programming languages are Python, Java, Go and PHP.Python web frameworks such as Django and Flask can run on the Google AppEngine.
AmazonAWSAmazon Web Services[19] is a cloud computing web service provides a largecollectionofservicessuchasEC2whichprovidesscalablevirtualservers,S3whichis Amazon’s simple Storage Service, Networking, Content Delivery, Database,Deployment,Managementetc.Similar to Google App Engine AWS provides free usage up to a certain level andautomaticscalingforcopingwithhighlevelsoftraffic.Some of the programming languages supported are Java, PHP, Python, Ruby,Windowsand.NET.
KinveyKinvey[20]isa(MBaaS)MobileBackendasaService[21]thatprovideswebandmobileapplicationdeveloperswith a backend cloud storage,APIs andSDKs. Someof the
ResearchManual
17InventoryApp
services provided are push notifications, file storage, user management andintegration with social media networks. Kinvey is a paid service with a range ofpricingpackages.SupportisavailableforallmobileplatformssuchasiOS,Android,PhoneGap.
ParseParse[22]isaMobileBackendasaServiceproviderwhichwasfoundedinJune2011andwaspurchasedbyFacebookin2013for$85million.ProvidesSDKsformobile,desktopandIoTdevices.ParseprovidescomprehensivedocumentationandAPIReferenceforeachplatform.Parse provides its services for free up to a certain usage level. This free servicewouldbemorethanenoughforthescopeofmyInventoryApplication.
ConclusionThe cloud platform that I initially chose for the back end of the application wasParse.ThereasonIchoosethisplatformwasthatitwasfreeandhascomprehensivedocumentation and API references for all platforms. From reading through thedocumentationthisservicelookedquitestraight-forwardtouse.In January 2016 it was announced that Facebook was closing this developerplatformwhich itpurchased in2013.Parsewill remain inoperationuntil January2017. As a result of this announcement, I decided tomove away from using thisserviceforthebackendoftheproject.IdecidedtouseDigitalOceantohostabackendsolution.DigitalOceanprovideveryreasonablepricingoptions,allplansarestandardwithsolidstatedrivesandboastsa 99.99% uptime. Using DigitalOcean would allowme to create a Ubuntu virtualprivate network to implement my own backend system for the application bydeploying a python flask application on the server and creating my own API forinteractingwiththemobileapplicationandsending/receivinginformationto/fromthemysqldatabasewhichwillalsobehostedonthevirtualprivatenetwork.
ResearchManual
18InventoryApp
IntegratedDevelopmentEnvironment(IDE)SincePhoneGapiscompiledinthecloud,atexteditorcouldbeusedforwritingthecodefortheproject.
EclipseEclipse[23]isaverypopularIDEwhichcontainsabaseworkspaceandmanyplug-insare available for customising the environment. Eclipse is written in Java andprimarily used for developing Java applications. It can be used to developapplicationsinmanyotherprogramminglanguagesthroughtheuseofplugins.Eclipse was initially released in November 2001. The latest Version of Eclipse isMarswhichwasreleasedinJune2015.
XcodeXcode[24]isanIDEdevelopedbyApplethatcontainssoftwaredevelopmenttoolsfordeveloping software for iOS and OS X. It was initially released in 2003 and thecurrent stable release is 7.1.1 which was released in November 2015. Xcode iswritteninC,C++andObjective-C.XcodesupportsmanyprogramminglanguagessuchasC,C++,ObjectiveC,Objective-C++,Java,Python,RubyandSwift.
SublimeText2Sublime Text[25] 2 is a source code editor that has a Python API. It has syntaxhighlightingandsupportsalargecollectionofprogramminglanguagesandmarkuplanguages.Pluginsareavailabletoextendthefunctionalityofthiscodeeditor.ThissoftwareiswritteninC++andPython.
ConclusionAstheapplicationwillbedevelopedforuseondifferentplatforms,bothXcodeandEclipse will be used to develop the application on iOS and Android. To test theapplication,theemulatorwillbeusedonbothXcodeandEclipse.
ResearchManual
19InventoryApp
ConclusionFeaturesTheInventoryApplicationwillhaveanumberof featureswhichwillbedevelopedusing the technologies outlined in this document. Some of the featureswill be asfollows:
• BarcodeScannerwhichwillreturntheUPCofascannedbarcode.• Automaticallyretreive informationonthescanned itemandpopulate fields
inadatabasewiththesedetails.• Intheeventthatthedetailsofanitemcannotbefound,theusercanchoose
to input details about the item manually or by using optical characterrecognition.
• Reportscanbegeneratedforallitemsintheinventoryandthenexported.
Overview
ResearchManual
20InventoryApp
References[1]Wikipedia.2015.iOS.Availableat:<https://en.wikipedia.org/wiki/IOS>[Accessed15October15].[2]Wikipedia.2015.Android(operatingsystem).Availableat:<https://en.wikipedia.org/wiki/Android_(operating_system)>[Accessed15October15].[3]Wikipedia.2015.PhoneGap.Availableat:<https://en.wikipedia.org/wiki/PhoneGap>[Accessed15October15].[4]PhoneGap.2015.BarcodeScanner.Availableat:<https://build.phonegap.com/plugins/951>[Accessed16October15].[5]Wikipedia.2015.Opticalcharacterrecognition.Availableat:<https://en.wikipedia.org/wiki/Optical_character_recognition>[Accessed20October15].[6]Google.2015.tesseract-ocr.Availableat:<https://code.google.com/p/tesseract-ocr/>[Accessed22October15].[7]GitHub.2015.tess-two.Availableat:<https://github.com/rmtheis/tess-two>[Accessed22October15].[8]Python.2016.Python-Tesseract..Availableat:https://pypi.python.org/pypi/pytesseract/0.1.6>[Accessed22February16].[9]Wikipedia.2015.Flask(webframework).Availableat:<https://en.wikipedia.org/wiki/Flask_(web_framework)>[Accessed24October15].[10]Amazon.2015.ProductAdvertisingAPI.Availableat:<http://docs.aws.amazon.com/AWSECommerceService/latest/DG/Welcome.html>[Accessed24October15].[11]Scandit.2015.UPCLookup.Availableat:<http://www.scandit.com/product-api/upc-lookup/>[Accessed24October15].[12]Wikipedia.2015.HTML5.Availableat:<https://en.wikipedia.org/wiki/HTML5>[Accessed26October15].
ResearchManual
21InventoryApp
[13]Wikipedia.2015.CascadingStyleSheets.Availableat:<https://en.wikipedia.org/wiki/Cascading_Style_Sheets>[Accessed27October15].[14]Mozilla.2015.JavaScript.Availableat:<https://developer.mozilla.org/en-US/docs/Web/JavaScript>[Accessed02November15].[15]Node.js.2015.AboutNode.js.Availableat:<https://nodejs.org/en/about/>[Accessed02November15].[16]Python.2015.AboutPython.Availableat:<https://www.python.org/about/>[Accessed02November15].[17]GoogleCloudPlatform.2015.AppEngine.Availableat:<https://cloud.google.com/appengine/features/>[Accessed03November15].[18]Wikipedia.2015.Platformasaservice.Availableat:<https://en.wikipedia.org/wiki/Platform_as_a_service>[Accessed03November15].[19]Amazon.2015.AmazonWebServices.Availableat:<https://aws.amazon.com/?nc2=h_lg>[Accessed04November15].[20]Wikipedia.2015.Platformasaservice.Availableat:<https://en.wikipedia.org/wiki/Platform_as_a_service>[Accessed04November15].[21]Kinvey.2015.BackendServices.Availableat:<http://www.kinvey.com/platform#backend-services>[Accessed04November15].[22]Wikipedia.2015.MobileBackendasaservice.Availableat:<https://en.wikipedia.org/wiki/Mobile_Backend_as_a_service>[Accessed02November15].[23]Parse.2015.Documentation.Availableat:<https://parse.com/docs>[Accessed02November15].[24]AppleDeveloper.2015.XcodeFeatures.Availableat:<https://developer.apple.com/xcode/features/>[Accessed04November15].[25]Wikipedia.2015.SublimeText.Availableat:<https://en.wikipedia.org/wiki/Sublime_Text>[Accessed04November15].[26]DigitalOcean.2016.DigitalOcean.Availableat:<https://www.digitalocean.com/>[Accessed22February16].
ResearchManual
22InventoryApp
[27]EbayDeveloperProgram.2016.Ebay.Availableat:<https://go.developer.ebay.com/>[Accessed22January16].