Development of Cross-Platform Cloud Application with Angularjs and Nodejs

Total Page:16

File Type:pdf, Size:1020Kb

Development of Cross-Platform Cloud Application with Angularjs and Nodejs MASARYK UNIVERSITY FACULTY}w¡¢£¤¥¦§¨ OF I !"#$%&'()+,-./012345<yA|NFORMATICS Development of cross-platform cloud application with AngularJS and NodeJS DIPLOMA THESIS Matouš Havlena Brno, Spring 2015 Declaration I hereby declare that this paper is my original authorial work, which I have written on my own. All sources, references and literature used or excerpted during the elaboration of this work are properly cited and listed in complete reference to the due source. Matouš Havlena Advisor: Ing. RNDr. Barbora Bühnová, Ph.D. ii Acknowledgement I would like to express my special appreciation and thanks to my advisor Ing. RNDr. Barbora Bühnová, Ph.D. for her useful comments and remarks, and her commitment throughout the learning process of this master thesis. I would also like to thank my project external guide Stacy F. Hobson from IBM Research and all the people working on my team. I would like to express special thanks to my beloved ones, who have supported me through- out the entire process, both by keeping me harmonious and by helping me to put the pieces together. I will be forever grateful for your love. iii Abstract The goal of this thesis is to implement a cross-platform mobile event application to be used by attendees during client workshops in IBM Research. The thesis documents the phases of the application development process, starting with the initial project description, through the requirements analysis and design, to implementation of the application. Special empha- sis is put on the design phase where mobile development approaches, technologies used during development, and application architecture are discussed. iv Keywords event application, mobile hybrid application, cloud, Apache Cordova, REST, WebSocket, Node.js, AngularJS v Contents 1 Introduction .........................................1 2 Project Initiation ......................................2 2.1 Project Background . .2 2.2 Project Purpose . .2 2.3 Project Scope . .3 2.4 Project Resources . .4 2.5 Project Stakeholders . .5 2.6 Project Risk . .5 3 Analysis ...........................................6 3.1 Functional Requirements . .6 3.1.1 Event Application . .6 3.1.2 Administration Application . .7 3.1.3 SocialWall Application . .8 3.1.4 Use Case Diagram . .9 3.2 Non-functional Requirements . .9 3.3 Similar Solutions . .9 3.3.1 Guidebook . .9 3.3.2 Doubledutch . 11 3.3.3 CrowdCompass . 11 3.3.4 Bizzabo . 12 3.3.5 Conclusion . 13 4 Design ............................................ 14 4.1 Frontend . 14 4.1.1 Mobile Development Approaches . 14 Native . 14 Web....................................... 15 Hybrid . 15 Conclusion . 18 4.1.2 Round-Trip vs Single-Page Applications . 18 4.1.3 Hybrid WebView Frameworks . 19 Apache Cordova / PhoneGap . 19 Trigger.io . 21 Conclusion . 21 4.1.4 JavaScript Frameworks . 21 jQuery . 21 AngularJS . 22 Comparison of jQuery and AngularJS . 23 Conclusion . 25 4.1.5 Responsive Web Design and CSS Preprocessors . 25 Sass....................................... 26 LESS ...................................... 29 Conclusion . 29 4.1.6 UI Frameworks . 29 Ionic . 29 vi Famo.us . 31 Onsen UI . 31 Conclusion . 31 4.1.7 Frontend Architecture . 32 4.1.8 Design Mockups . 32 4.2 Backend . 33 4.2.1 IBM Bluemix as a Computing Platform . 35 4.2.2 Node.js as a Runtime Environment . 36 4.2.3 MySQL as a RDBMS . 37 4.2.4 MongoDB as a NoSQL DB . 38 4.2.5 Backend Architecture . 38 4.3 Overall System Architecture . 39 4.4 Entity-relationship Model . 40 4.5 REST API Model . 43 4.5.1 REST Methods for the Administration Application . 43 4.5.2 REST Methods for the Event Application . 44 4.6 WebSocket model . 46 4.7 Conclusion . 47 5 Implementation ....................................... 49 5.1 Administration Application . 49 5.1.1 User and Event Management . 51 5.1.2 Native Push Notifications . 51 5.1.3 Data Analytics . 53 5.2 Event Application . 54 5.2.1 iBeacon Micro-location . 54 5.2.2 Real-time Multi-user Collaboration . 56 5.3 SocialWall Application . 57 6 Conclusion .......................................... 59 6.0.1 Future Directions . 59 A Lab Equipment ....................................... 69 B Design Mockups ...................................... 70 C Accompanied Data ..................................... 79 vii 1 Introduction Research & Development divisions of global technology companies can not afford to operate in isolation from the outside world, as they used to many years ago. Listening to clients is more important now than ever before. With markets becoming global and filled with startup companies that are able to deliver new solutions rapidly, Research & Development divisions of large companies must adapt. They must open themselves to the outside world, allowing researchers to meet with clients and exchange their insights and ideas and the challenges they face. Furthermore, they must be able to clearly communicate which particular capa- bilities they offer and what their area of expertise is. By doing so, researchers are able to better understand the needs and problems of their clients, and clients are able to understand the capabilities and solutions deliverable by Research & Development divisions. As a result, new ideas and solutions can emerge. In IBM Research, we try to create a collaboration space where clients and researchers can share their expertise and work together on new ideas. We intend to create a window in the imaginary wall that separates researchers and clients. With this goal in mind, we recently opened a lab where we run interactive workshops and allow clients to explore the capabili- ties of IBM Research. Part of this initiative is the creation of a mobile event application that allows for more interactive collaboration and better information sharing. We believe that the event application can fuel the process of innovation and collaboration during client workshops and allow us to leverage the cutting-edge technology available in our labs. The goal of this thesis is to implement a cross-platform mobile event application that would be used during client workshops. The text of this thesis documents the phases of the application development lifecycle, such as project initiation, requirements analysis, design, and implementation. The following chapter introduces the topic of the thesis in project management terms and briefly touches on areas such as project background, project purpose, project scope, and project risk. The third chapter covers the analysis of requirements. At the beginning, the functional requirements are defined and a use case diagram representing typical user interactions with the system is presented. The rest of the chapter is dedicated to non-functional requirements and similar solutions available on the market. The fourth chapter describes the design phase of the development process. It includes a description of the technology used together with the reasoning behind its selection. Follow- ing this, system architecture and entity-relationship diagrams are presented. Towards the end of the chapter, REST API and WebSocket model are described. The fifth chapter demonstrates how the most important parts of the application were implemented. I show several code snippets together with screenshots of the application. 1 2 Project Initiation 2.1 Project Background This diploma thesis is written as part of my internship at IBM Thomas J. Watson Research Center in Yorktown Heights, USA. IBM Research is the Research & Development division of IBM and the largest industrial research organization in the world, with twelve labs in six continents. [1] “For more than sixty years, IBM Research has been the innovation engine of the IBM corporation. From helping the Apollo space missions land on the moon to the discovery of fractals; from the technology behind laser eye surgery to a question answering computer called Watson now being applied to health care.”[2] The thesis reflects on a project that implements a mobile event application. The project is undertaken in the THINKLab department. THINKLab is a worldwide network of labs specifically designed for inventing with clients. The goal of THINKLab is to match IBM Research’s innovation capabilities with the expertise of industry leaders who want to tackle challenges that cannot be solved through existing commercial products. The labs provide a space equipped with advanced visualization and interaction tech- nologies that make collaboration possible. Every THINKLab is equipped with an Oblong Mezzanine1 collaboration system and the custom made Galaxy Application built on top of the g-speak platform2. Oblong Mezzanine allows multiple users and their devices and data to be connected in one shared collaboration workspace. Spatial wands can then be used to manipulate data on multiple screens. The Galaxy Application was built specifically to demonstrate IBM’s research capabilities. It is a catalogue of research projects from where individual project presentations can be launched and displayed on several large screens. Spatial wands or touch gestures can be used to interact with the system. Pictures of the Mezzanine Oblong system and the Galaxy Application can be seen in Appendix A. 2.2 Project Purpose THINKLab runs multi-day workshops with clients that want to discuss the challenges they face, brainstorm ideas that could potentially turn into new innovations, and make connec- tions with researchers. The challenge of the lab is to continuously improve the process of innovation and client engagements, and establish long-term partnerships with clients that have a desire to experiment
Recommended publications
  • Analisis Perancangan Prototipe Sistem Informasi Biaya Studi Mahasiswa Menggunakan Framework Mobile Onsen Ui (Studi Kasus: Stt Terpadu Nurul Fikri)
    ISSN 2477-0043 Jurnal Teknologi Terpadu e-ISSN 2460-7908 Vol. 3, No. 2, Desember 2017 ANALISIS PERANCANGAN PROTOTIPE SISTEM INFORMASI BIAYA STUDI MAHASISWA MENGGUNAKAN FRAMEWORK MOBILE ONSEN UI (STUDI KASUS: STT TERPADU NURUL FIKRI) Muhammad Nazih, Zaki Imaduddin Teknik Informatika STT Terpadu Nurul Fikri Abstrak Sistem informasi biaya studi mahasiswa atau bisa disebut juga dengan modul keuangan yang ada di dalam Sisten Informasi Akademik (SIAK) sangat dibutuhkan oleh perguruan tinggi, karena system tersebut sangat membantu dalam penyelenggaraan proses pendidikan. Pada penelitian ini penulis akan membahas mengenai proses analisis dan perancangan Prototipe Sistem Informasi Biaya Studi Mahasiswa dengan Menggunakan Framework Mobile Onsen UI dengan metode pengembangan perangkat lunak Unified Process, dan didalam pengumpulan data penulis menggunakan metode observasi dan wawancara, Serta pengujian aplikasinya menggunakan Black-Box Testing, Adapun hasil yang didapat dari penelitian dan perancangan ini adalah Sistem Informasi Biaya Studi Mahasiswa yang lebih efektif, dan ramah pengguna. Kata Kunci: Framework, Onsen UI, Sistem Informasi Biaya Studi Mahasiswa, Unified Process. potongan biaya dan sebagainya. Namun selama ini, 1. PENDAHULUAN SIAK STTT-NF hanya dapat diakses secara online di 1.1. LATAR BELAKANG komputer melalui browser seperti Mozilla Firefox, STTT-NF merupakan salah satu lembaga Internet Explorer dan Google Chrome, namun belum pendidikan perguruan tinggi swasta yang berada di kota mendukung secara optimal untuk tampilan smartphone, Depok, tepatnya di provinsi Jawa Barat. Lembaga ini sehingga user merasa kurang nyaman untuk telah memiliki beberapa sistem untuk membantu layanan mengoperasikan aplikasi tersebut pada tampilan device operasional bagi civitas akademik, kemahasiswaan, mobile yang berukuran relatif lebih kecil dari komputer. keuangan dan kepegawaian. Segala bntuk layanan Sementara itu seiring dengan meningkatnya operasional tersebut dapat diakses melalui sistem pengguna smartphone di kalangan masyarakat indonesia, informasi akademik.
    [Show full text]
  • DEVELOPMENT of HYBRID MOBILE APPS Using Ionic Framework
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Theseus Andrea Sánchez Blanco DEVELOPMENT OF HYBRID MOBILE APPS Using Ionic framework Bachelor’s Thesis Information technology May 2016 DESCRIPTION Date of the bachelor's thesis 23.05.2016 Author(s) Degree programme and option Andrea Sánchez Blanco Information Technology Name of the bachelor's thesis DEVELOPMENT OF HYBRID MOBILE APPS Using Ionic Framework Abstract The purpose of the current study is to analyse the advantages and disadvantages of web-based hybrid apps. This thesis explains from the beginnings of mobile phones how and why it has been created this solution, and how mobile’s history has evolved to need an intermediate approach. It is also studied the general principles of good mobile user interfaces, in order to create a full good user experience from appearance to performance and usability, and how to implement the server side in an Ionic mo- bile application. These have been done providing a general context about the first mobile phones to the latest ones, going through the different mobile OSs and focusing on an intermediate approach, hybrid web-based apps. After that I have explained Ionic Framework and the User Interface guidelines. Finally I have documented my practical part, associating it with the theoretical part, and explaining how I did the server side implementation on my app. The conclusions I took are more general than I thought at the beginning. I have studied this solution with Ionic Framework, with which I have had an overall good experience.
    [Show full text]
  • Downloads O License: GNU Gplv3 O Has Proprietary Features: Yes
    1.0 ﺑﺮﻧﺎﻣﺞ اﻟﺘﻌﺎﻣﻼت اﻟﻜﺘﺮوﻧﻴﺔ اﻟﺤﻜﻮﻣﻴﺔ ّ(ﻳﺴﺮ) 2019 ................................................................................................................................................. ................................................................................................................................ .............................................................................................................................................. ................................................................................................................................... ......................................................................................................................... CMS ..................................................................................................................... DMS ................................................................................................................ .................................................................................................................................... ........................ ...................................................................................................... ............................................................................................. ................................................................................................................. ........................................................................................................................... ......................................................................................................................................
    [Show full text]
  • All Special Packages Programming and Data Science Tools
    Emperor-OS All Special Packages Programming and Data science tools Editor: Hussein Seilany [email protected] www.Emperor-OS.com Emperor-has 5 package management system for installing, upgrading, configuring, and removing software. Also providing access over 60,000 software packages of Ubuntu. We per-installed several tools are available for interacting with Emperor's package management system. You can use simple command-line utilities to a graphical tools. Emperor-OS's package management system is derived from the same system used by the Ubuntu GNU/Linux distribution. We will show you the list of installed packages on Emperor-OS. The packages lists is long. Having a list of installed packages helps system administrators maintain, replicate, and reinstall Emperor-OS systems. Emperor-OS Linux systems install dependencies all the time, hence it is essential to know what is on the system. In this page you can find a specific package and python modules is installed, count installed packages and find out the version of an installed package. Download lists as PDF file or see them as html page in the following: Are you looking for all in one operating system? 70 Packages: Installed Special Packages 120 Tools: Installed Utility 260 Modules: Installed Python2 and 3 Modules 600Fonts: Installed Fonts 5 Desktops: Desktop Manager Packages 22Tools: Extra Development Tools 270 Themes: Installed Themes 40 Icons: Installed Icons 40Games: Installed Games 2533scanners: supports Scanners 2500 Cameras: supports Camera 4338Packages: All Installed Packages 2 [email protected] www.Emperor-OS.com A) Programming tools 1) Python 2.7 and 3.7.4 Description: Python is an interpreted, interactive, object-oriented, high-level, general-purpose, versatile and popular programming language.
    [Show full text]
  • Apache Cordova 4 Programming
    Apache Cordova 4 Programming Apache Cordova 4 Programming John M. Wargo Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales department at [email protected] or (800) 382-3419. For government sales inquiries, please contact [email protected]. For questions about sales outside the United States, please contact [email protected]. Visit us on the Web: informit.com/aw Library of Congress Cataloging-in-Publication Data Wargo, John M. Apache Cordova 4 programming / John M Wargo. pages cm Includes index. ISBN 978-0-13-404819-2 (pbk. : alk. paper) 1. Mobile computing—Computer programs. 2. Application program interfaces (Computer software) 3. Application software—Development. 4.
    [Show full text]
  • Onsen UI 2.0 Released
    Source: Monaca September 15, 2016 06:01 ET Onsen UI 2.0 Released Framework-Agnostic Hybrid Mobile App Development Platform Supports Pure JavaScript, AngularJS, Angular 2, React, Vue.js, Meteor SAN FRANCISCO, CA--(Marketwired - Sep 15, 2016) - Monaca, the HTML5 mobile app development company, has released Onsen UI 2.0. Onsen UI provides a full-stack ecosystem for developing beautiful cross-platform mobile apps. Onsen UI apps have shipped on over 100 million mobile devices. With version 2.0, Onsen UI can now be used with any popular Javascript framework, providing a framework- agnostic development environment as JavaScript development continues to expand from web to mobile platforms. Onsen UI supports pure JavaScript, AngularJS, Angular 2, React, Vue.js, and Meteor. The free open source download is available now: http://onsen.io According to Stack Overflow, JavaScript is now the most popular way to develop full-stack, frontend, and back- end applications. Onsen UI is helping to convert these developers into mobile developers. "Onsen UI is the key to making JavaScript the best choice for mobile, for both app and web. JavaScript enabled hybrid apps will help you make the jump into mobile app development and build your resume quickly," said Masa Tanaka, CEO of Monaca and head of Onsen UI open source project. "Mobile app development with Onsen UI can save you time and effort compared to traditional Android and iPhone SDKs. Onsen UI provides incredible benefits for new mobile developers." "Tools for developing sharp, useful mobile apps are a key part of any developer toolkit. A framework-agnostic full- stack tool like Onsen UI can go a long way in helping developers build mobile apps that matter," said Brian LeRoux, Creator of PhoneGap/Apache Cordova.
    [Show full text]
  • Microsoft Platform and Tools for Mobile Application Development
    Microsoft platform and tools for mobile application development White paper Microsoft Corporation PUBLISHED BY Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399 Copyright © 2016 by Microsoft Corporation All rights reserved. This document is provided "as-is." Information and views expressed in this document, including URL and other Internet website references, may change without notice. You bear the risk of using it. Some examples are for illustration only and are fictitious. No real association is intended or inferred. This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. Contents Summary ...................................................................................................................................................... 1 Purpose ........................................................................................................................................................................................ 2 Who should use this guide ............................................................................................................................................. 2 Key benefits ........................................................................................................................................................................... 2 Introduction to the Microsoft platform for mobile app development .............................................
    [Show full text]
  • Smartphone Based Citizen Complaint System for Urban Maintenance Using GIS Mohd Sohel Deshmukh, Swapnil R.Rajput
    International Journal of Scientific & Engineering Research, Volume 7, Issue 5, May-2016 1591 ISSN 2229-5518 Smartphone Based Citizen Complaint System for Urban Maintenance Using GIS Mohd Sohel Deshmukh, Swapnil R.Rajput Abstract— Today different countries have civic bodies that are the local governing bodies which help to maintain cities. Pointing to the complaints of the citizens in urban areas is a prime factor that can ensure trust of different citizens. This Smartphone application will help the common people under the jurisdiction of Municipal Corporation to register their grievances day to day complaints in their ward through a mobile application. This application provides an interface to register one’s complained and follow it up. It will provide a common man to deliver his complaints and problems to municipal authority as well as let the municipal authorities to address the problem in a short period of time. It provides a camera module which helps clicking up a picture of any problem that people are facing and upload its image along with the complaint. The location of complaint is tracked by Global Positioning System (GPS) unit. Reverse-geocoding is used to find the address from GPS provided co-ordinates. Application display list of complaints registered which are get from server. Once the complaint is submitted it can also be share onto the social media, complaint shared in the form of complaint register location which is latitude and longitude along with description Index Terms— Non-Emergency, Urban areas, Geographical Information system (GIS), Local Government, Smart city —————————— —————————— 1 INTRODUCTION irect and common Communication between the local making the process very complex and inefficient so sometime D governing body and the citizen of that city is a very effi- people don’t even file the complaint to save them from this cient in solving the issue related to the citizen, in India Process.
    [Show full text]
  • Hybrid App Approach: Could It Mark the End of Native App Domination?
    Volume 14, 2017 HYBRID APP APPROACH: COULD IT MARK THE END OF NATIVE APP DOMINATION? Minh Huynh* Southeastern Louisiana University, [email protected] Hammond, LA USA Prashant Ghimire Southeastern Louisiana University, [email protected] Hammond, LA USA Donny Truong George Mason University, [email protected] Arlington, VA USA *Corresponding Author ABSTRACT Aim/Purpose Despite millions of apps on the market, it is still challenging to develop a mobile app that can run across platforms using the same code. Background This paper explores a potential solution for developing cross platform apps by presenting the hybrid app approach. Methodology The paper first describes a brief evolution of the different mobile app develop- ment approaches and then compares them with the hybrid app approach. Next, it focuses on one specific hybrid app development framework called Ionic. Contribution The paper presents the hybrid app approach as an emerging trend in mobile app development and concludes with the highlight of its advantages and teaching im- plications. Findings The hybrid app approach reduces the learning curve and offers tools to allow the reuse of code to create apps for different mobile devices. Recommendations The experience that the paper describes in using Ionic framework to create a hy- for Practitioners brid app can be adopted in a web design or mobile app development course. Impact on Society The advance in hybrid framework in general and the growing acceptance of open source framework, such as Ionic in particular, may provide an alternative to the native app domination and may trigger the rapid rise of hybrid apps in the years to come.
    [Show full text]