706 research outputs found

    Unit testing of AngularJS : A look into writing tests for web application

    Get PDF
    This task was assigned by Protacon Solutions Oy with the objective set to study and implement unit testing in AngularJS JavaScript framework as part of the development process of the customer’s application. The thesis focuses on studying the AngularJS framework and if and how its design philosophy complements the unit testing principles. The focus was on studying unit testing via developing unit tests iteratively onto the application created beforehand. The tests were created with Jasmine testing framework, a tool recommended by the AngularJS development team. Other testing frameworks were studied before the thesis, however Jasmine was chosen to be examined more closely. The thesis results in several unit tests created for the customer’s application, and knowledge was provided for the company about the unit testing of a modern JavaScript web application to be distributed among the co-workers in the company. In addition, the backbone for developing and expanding the unit tests for the application and other future applications developed with AngularJS was laid down. The tests were created with trial-and-error method, and best practices were recorded to be expanded upon, determined by the nature of the application and what was best suited for it.Opinnäytetyön toimeksiantajana toimi Protacon Solutions Oy. Tehtävänä oli tutkia ja kehittää yksikkötestejä AngularJS- sovelluskehyksellä kehitettyyn web-pohjaiseen asiakkaalle toteutettuun sovellukseen. Työ keskittyi AngularJS-sovelluskehyksen ominaisuuksien tutkimiseen ja miten niitä pystyi hyödyntämään sovelluksen yksikkötestejä kehitettäessä, ja kuinka AngularJS sovelluskehyksen rakenne tuki yksikkötestien suunnitelun teesejä. Testit kehitettiin käyttäen Jasmine-testaussovelluskehystä, mikä on AngularJS-kehittäjien suosittelema työkalu testien kehitykseen. Muita testaussovelluskehyksiä tutkittiin pikaisesti ennen työn aloittamista, mutta niistä päätettiin luopua ennen työtä. Tuloksena syntyi useita yksikkötestejä asiakkaan AngularJS-sovellukseen, ja osaamista ja tietotaitoa yritykselle yksikkötestien tekemisestä AngularJS-sovelluskehyksellä kehitettyyn sovellukseen. Tarkoituksena on jakaa tätä tietotaitoa eteenpäin. Lisäksi tuloksena oli pohjustus uusien testien tekemiseen ja vanhojen lisäkehitykselle asiakkaan sovelluksessa. Testit kehitettiin yrityksen ja erehdyksen kautta, josta voi jatkaa parhaaksi todetuin menetelmin testien kehitystä. Testit suunniteltiin ja toteutettiin juuri kyseiseen sovellukseen sopiviksi

    A Mobile Money Solution for Illiterate Users

    Get PDF
    Existing mobile money platforms have text based interfaces and target literate people. Illiterate people, without the assistance of literate individuals, cannot use such platforms. Applying user-centered requirements gathered in an Ethiopian context, this paper presents the design and development of a mobile money solution that targets illiterate people. Particular emphasis is given to how illiterate users deal with cash money in their everyday life and how such practices can be mapped into financial technology design. Given the ubiquity of mobile telephony in Africa, our solution is based on the widely available, relatively inexpensive and open source Android mobile web platform. The proposed system enables illiterate individuals to count money bills, while providing the facility to accept and make payments. In so doing, we provide an example of how a pervasive technology such as smartphones can empower a hitherto often neglected user category of illiterate users

    MEAN vs. LAMP Stack

    Get PDF
    JavaScript has always been the scripting language for client-side programming that runs in the browser. The most crucial part in a web development project is choosing the right combinations of front-end framework, back-end server, and database environment. The main intent of this paper is to show the strength of the JavaScript-based framework, the MEAN stack (M for MongoDB, E for Express.js also termed Express, A for AngularJS or Angular and N for Node.js or Node) for building web applications. We compare the MEAN stack with the popular framework, the LAMP stack (L for Linux, A for Apache, M for MySQL and P for PHP), with respect to their components, strength, and environment configuration. We develop two similar applications built by MEAN and LAMP. We compare and analyze their respective real-time scenarios, data structure flexibilities, web performance, scalability, performance enhancements, and we perform load and data transfer tests

    Internship Portfolio

    Get PDF
    My one-year internship program work was with Mayo Clinic, Rochester. I was involved in the software development as part of a work term, all of which will be outlined in this report. The report will cover some background information on the projects I was involved in, as well as details on how the projects were developed. The report also states how and what academic courses and projects helped me in overall internship experience so far. At the beginning of the internship, I formulated serval learning goals, which I wanted to achieve: To understand the functioning and working conditions of the organization; To explore working in a professional environment; To explore the work environment for the possibility of a future career; To utilize my gained skills and knowledge; To find skills and knowledge I still need to work in a professional environment; To learn about software development life cycle; To learn about the development methodologies; To obtain fieldwork experience/collect data in an environment unknown for me; To obtain experience working in multicultural and diverse environment; To enhance my interpersonal and technical skills; To network with professionals in the industry. There are five major projects that I had a significant role in. The first project was Space Tools, involved gaining a good understanding of a javascript framework called Angular. My task was to study its working, develop wireframes from the view point of developing an application using that technology. My task was to Understand working with Angular framework, Understand working with Git, Develop wireframes. As this was my first project with Mayo Clinic, particularly at Development Shared Services (DSS) as a team project, I also had a large scope of understanding Agile Methodology - Scrum Process in particular. The second project was BAMS which was a rewrite of existing application in Windows Presentation Framework(WPF) and .Net backend. In this project my tasks were Understand using WinForms and WPF, Develop pages using WPF- MVVM Framework. The third project was DSA, where I acquired knowledge of working on Angular4 and frontend Unit testing in Karma using Mocha and Chai frameworks. The fourth project is MML Notification and Delivery, which started with an analysis phase in which were asked to analyze the data flow and system integrations the current Mayo Access and Mayo Link (MML Internal Operations) are dependent upon. We are to provide a new functionality to Mayo Access users of Notification and Delivery of tests results. The current project that I’m working on now is “MML Database Analysis”. This project is in the analysis phase. We were given a task to analyze MML databases to write an API instead of frontend calls to the database. I acquired many new technical skills throughout my work. I acquired new knowledge in Front-end development using various versions of Angular framework and Unit testing using Mocha and Chai framework in Karma. I also brushed my HTML/HTML5, CSS/CSS3, Javascript, Java, C# skills while working on various projects. Then I was introduced to the area of research and analysis and how to approach it. Most importantly, the work included good fellowship, cooperative teamwork and accepting responsibilities. Although I spent much time as a learning curve, I found that I was well trained in certain areas that helped me substantially in my projects. Many programming skills and Software Development Life Cycle understanding that I used in my internship, such as programming style and design, were the skills that I had acquired during my studies in Computer Science. This report also includes advantages of using Angular framework over other Javascript frameworks. The report concludes with my overall impressions of my work experience as well as my opinion of the Industrial Internship Program in general

    A JavaScript Framework Comparison Based on Benchmarking Software Metrics and Environment Configuration

    Get PDF
    JavaScript is a client-side programming language that can be used in multi-platform applications. It controls HTML and CSS to manipulate page behaviours and is widely used in most websites over the internet. JavaScript frameworks are structures made to help web developers build web applications faster by offering features that enhance the user interaction with the web page. An increasing number of JavaScript frameworks have been released in recent years in the market to help front-end developers build applications in a shorter space of time. Decision makers in software companies have been struggling to determine which frameworks are best suited for a specific project. This work investigates the actual state-of-the-art of JavaScript framework comparison, and it proposes metrics and methods that could help developers when choosing a JavaScript framework. In this work, a benchmark framework executes tasks to test the efficiency of three JavaScript frameworks (AngularJS, Aurelia, and Ember). The research shows the impact of the environment (CPU usage and network connectivity) on JavaScript frameworks

    From Business Understanding to Deployment: An application of Machine Learning Algorithms to Forecast Customer Visits per Hour to a Fast-Casual Restaurant in Dublin

    Get PDF
    This research project identifies the significant factors that affects the number of customer visits to a fast-casual restaurant every hour and proceeds to develop several machine learning models to forecast customer visits. The core value proposition of fast-casual restaurants is quality food delivered at speed which means they have to prepare meals in advance of customers visit but the problem with this approach is in forecasting future demand, under estimating demand could lead to inadequate meal preparation which would leave customers unsatisfied while over estimation of demand could lead to wastage especially with restaurants having to comply with food safety regulations whereby heated food not consumed within 90 minutes has to be discarded. Hourly forecasting of demand as opposed to monthly or even daily forecasting is important to help the manager of the fast-casual restaurant optimize resources and reduce wastage. Approaches to forecasting demand can be broadly categorized into qualitative and quantitative methods. Quantitative methods can be further divided into time series and regression-based methods. The regression-based approach which is used for this study enabled the researcher to gather data on several factors hypothesized to have an impact on the number of customer visits to the fast-casual restaurant every hour, carry out an experiment to test for the significance of these factors and to develop several predictive machine learning models capable of predicting the number of customer visits every hour. The results of the experiments carried out shows that hour, day, public holidays, temperature, humidity, rain and windspeed are significant factors in predicting the number of hourly customer visits. Multiple linear regression, regression tree, random forest and gradient boosting machine learning algorithms were also trained to predict the number of customer visits with the Gradient boosting algorithm achieving the lowest Mean Absolute Percentage Error(MAPE) of 18.82%

    An Automated Negotiation System for eCommerce Store Owners to Enable Flexible Product Pricing

    Get PDF
    If a store owner wishes to sell a product online, they traditionally have two options for deciding on a price. They can sell the product at a fixesd price like the products sold on sites like Amazon, or they can put the product in an auction and let demand from customers drive the final sales price like the products sold on sites like eBay. Both options have their pros and cons. An alternative option for deciding on a final sales price for the product is to enable negotiation on the product. With this, there is a dynamic nature to the price; each customer can negotiate with the store owner on the price which allows the final sales price to both change over time and on a customer by customer basis. The issue with enabling negotiation in the context of eCommerce is the time investment needed from the store owner. A store owner cannot negotiate every time an offer comes in from a potential customer, the potential time investment would not be acceptable. Using software agents to automate the process of negotiation for the seller is a potential solution to enabling negotiation in eCommerce for store owners. In this research, a system such as the one just described is developed in a way that mirrors real life negotiations more closely and after evaluation, is found to be a potential solution for the enabling of negotiation in eCommerce

    XANUI: A Textual Platform-Independent Model for Rich User Interfaces

    Get PDF
    In recent years, several model-driven proposals have defined user interface models that can represent both behavioural and aesthetic aspects. However, the software industry has ignored the majority of these proposals because the quality of the rich user interfaces generated out of these models is usually low and their code generators are not flexible, i.e., the UI templates cannot be customised easily. Furthermore, these proposals do not facilitate the separation between the visual design of the UI, normally performed by graphic designers in the industry, and the visualisation of data, which has been previously modelled using another domain-specific language. This paper proposes a new textual domain-specific language called XANUI, which could be embedded in XML-based UI pages, e.g., HTML or XML. The designed language provides the mechanisms to bind visual components with data structures already existing, and to define the behaviour of these components based on events. In this paper, XANUI is integrated in two OOH4RIA development processes, i.e., the traditional data-intensive and the new design-first process, thus reusing the OOH4RIA models and transformations to generate a complete rich Internet application for any platform or device. In order to validate this approach, the XANUI solution is applied to the development of a RIA with two UI types: a) the administration view of a Web application using HTML5 and AngularJS, and b) a catalogue application for e-Commerce using Windows RT in a Tablet PC

    ユーザー開発や保守が可能なWebアプリケーションフレームワークの開発

    Get PDF
    データベース連動のWeb アプリケーション向けのフレームワーク「INTER-Mediator」では,宣言的な記述で開発を進められる.手続き的なプログラミングに比べて,学習コストが低下し,その結果,業務システムのエンドユーザーなど,現場でシステムを利用する立場のユーザーが開発の一部や保守作業をできるようになる.初期開発と同程度の費用がかかるとされる業務システムの保守開発をユーザーが行うことでコスト削減が可能となり,システムの継続的進化をより低いコストで実現する.本論文では,フレームワークを利用した開発方法や実装手法を説明し,保守作業を宣言的な記述の範囲で行えることを示す.さらに,開発手法の学習がエンジニアリングの専門家でなくても可能なことを,被験者実験を通じて検証する.電気通信大学201

    Mobile client for collecting sport activity statistics

    Get PDF
    Vývoj mobilních aplikací může být poměrně náročný v případech, kdy je vyžadována dostupnost aplikace na více platformách. Cílem této práce bylo prozkoumat možnosti pro vývoj multiplatformních mobilních aplikací, seznámit se s technologií Apache Cordova a použít ji k vývoji mobilního klienta pro uživatele portálu Jäsenverkko.fi. Aplikace umožňuje uživatelům spravovat jejich data uložená na vzdáleném serveru. Pokud je zařízení připojeno k internetu, aplikace data automaticky synchronizuje za použití aplikačního rozhraní portálu, je však schopna pracovat i bez připojení díky implementaci lokálního úložiště. Aplikace umožňuje ukládání vzdáleně definovaných tréninkových statistik pomocí snadno rozšiřitelných modulů. Výsledkem práce je přenositelná aplikace otestovaná na platformách Android a Windows Phone.ObhájenoMobile applications development can be rather demanding in cases where it is required to users on multiple platforms. The goal of this thesis was to investigate methods of mobile multiplatform development, get acquainted with and utilize Apache Cordova to implement a mobile client application for Jäsenverkko.fi portal users. The application allows its users to manage their data stored on a remote server. It automatically synchronizes them using portal's RESTful API when connected to the internet but is able to work even when offline as it contains a local storage facility. The application makes it possible to collect custom sport statistics specified remotely with a module that is easily extendable. A result of the work is a portable application tested on Android and Windows Phone platforms
    corecore