22
Inventory App Software Development 4th Year Project Research Manual Student: Philip Walsh ID: C00109740 Supervisor: Nigel Whyte Date: 15/4/16

Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

InventoryApp

SoftwareDevelopment4thYearProject

ResearchManualStudent:PhilipWalshID:C00109740Supervisor:NigelWhyteDate:15/4/16

Page 2: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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

Page 3: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 4: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 5: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

ResearchManual

5InventoryApp

Itemscanbedividedintodifferentsectionsdependingonthetypeofitem,location,owner.Someof thecategories in theapplication includebook,clothing,computer,electricalappliance,movie,music,etc.Categoriescanbeeditedandcreated.Ananalysissectionintheapplicationallowstheusertoseealistingoftotalassetswhichwillshowthesumofthepriceforalltheitems.ThelistingoftotalassetscanbeexportedasaCSVfile.

Itemscanbemanuallyaddedtotheapplicationbyselectingacategoryfortheitemandthenfillingouttherelevantdetailsabouttheitem.Thebarcodescannerscansthebarcodeandreturnsanddisplaystheinformationtotheapplicationandgivestheuserthechoicetoaddtheitemtotheinventoryorelsediscardtheinformation.

Page 6: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 7: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 8: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

ResearchManual

8InventoryApp

Whenthebarcodeofanitemhasbeenscannedtheapplicationreturnsthethenameoftheitemandalistofpricesfromthedifferentonlinestoreswhichhavethisitemforsale. Imagesof the itemisalsoreturnedandother informationsuchasrelatedproducts,relatedbooks,websites,etc.Thescanneditemscanbeaddedtoa folderwhichtheusercancreatedtoorganisetheitemsintocategories.Thehistoryoptioninthemenuprovidesalistofall itemsthathavebeenscannedbytheuser.

Page 9: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 10: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 11: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 12: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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>

Page 13: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 14: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 15: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 16: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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

Page 17: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 18: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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.

Page 19: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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

Page 20: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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].

Page 21: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

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].

Page 22: Inventory App - Institute of Technology, Carlowglasnost.itcarlow.ie/~softeng4/C00109740/documents/...Research Manual 3 Inventory App Introduction This is the research manual for my

ResearchManual

22InventoryApp

[27]EbayDeveloperProgram.2016.Ebay.Availableat:<https://go.developer.ebay.com/>[Accessed22January16].