Академический Документы
Профессиональный Документы
Культура Документы
The topic of this project is the development of a front-end side of a mobile Expense Registration
application for iOS smartphones as part of the SAP Human Capital Management area using the
SAP add-on Neptune Application Designer for the company Evry.
The dissertation presents an introduction to the company, a description of important concepts used
throughout the development. It states the business context, which the development was based upon,
the problem statement and its delimitation. The front-end development follows four phases and their
aim is to focus in a user centered design in order to achieve a good user experience. Also, it
includes a discussion and final conclusions as the final chapter.
TABLE OF CONTENTS
ABSTRACT ........................................................................................................................................................i
TABLE OF CONTENTS ................................................................................................................................... ii
LIST OF FIGURES ........................................................................................................................................... vi
ACKNOWLEDGEMENTS ............................................................................................................................. vii
INTRODUCTION ................................................................................................................................. 1
1.0
1.1.
1.2.
SAP .................................................................................................................................................... 1
1.3.
Mobility ............................................................................................................................................. 2
1.4.
1.4.1.
1.4.2.
1.4.3.
Hybrid applications.................................................................................................................... 3
1.5.
BUSINESS CONTEXT......................................................................................................................... 3
2.0
2.1.
2.2.
2.3.
3.0
3.1.
3.2.
Problem Statement............................................................................................................................. 5
3.3.
Methods ............................................................................................................................................. 5
3.3.1.
Analysis ..................................................................................................................................... 6
3.3.2.
Design ........................................................................................................................................ 6
3.3.3.
Implementation .......................................................................................................................... 6
3.3.4.
3.4.
Tools .................................................................................................................................................. 7
3.4.1.
3.4.2.
PhoneGap ...................................................................................................................................... 7
3.4.3.
ii
3.4.4.
3.4.5.
3.4.6.
3.4.7.
4.0
5.0
ANALYSIS ......................................................................................................................................... 10
5.1.
5.2.
5.3.
5.3.1.
Personas ................................................................................................................................... 10
5.4.
5.5.
5.5.1.
Mission .................................................................................................................................... 15
5.5.2.
Vision ...................................................................................................................................... 15
5.5.3.
Values ...................................................................................................................................... 15
6.0
6.1.
Purpose ............................................................................................................................................ 15
6.2.
6.2.1.
6.2.2.
6.2.3.
6.3.
Content architecture......................................................................................................................... 17
6.4.
Wireframes ...................................................................................................................................... 19
6.4.1.
6.4.2.
6.4.3.
6.4.4.
Usability Testing...................................................................................................................... 20
6.5.
7.0
7.1.
Purpose ............................................................................................................................................ 22
7.2.
Wireframes ...................................................................................................................................... 22
7.2.1.
7.2.2.
iii
7.2.3.
7.3.
Usability Testing...................................................................................................................... 23
7.3.1.
Colors ...................................................................................................................................... 25
7.3.2.
7.3.3.
7.3.4.
7.4.
8.0
8.1.
8.1.1.
8.1.2.
Pages ........................................................................................................................................ 30
8.1.3.
8.1.4.
8.1.5.
Styling...................................................................................................................................... 33
8.2.
8.2.1.
Menu_expenses ....................................................................................................................... 37
9.0
9.1.
Purpose ............................................................................................................................................ 40
9.2.
Results ............................................................................................................................................. 42
10.0
CONCLUSIONS ................................................................................................................................. 44
11.0
BIBLIOGRAPHY ............................................................................................................................... 45
12.0
tra_confirm.html..................................................................................................................... 47
iv
exp_confirm.html .............................................................................................................. 51
history.html
done.html.......................................................................................................................... 52
user.html
about.html ......................................................................................................................... 53
user.html ...................................................................................................................................................... 53
LIST OF FIGURES
vi
ACKNOWLEDGEMENTS
My gratitude goes first and foremost to my parents, Juan and Ruby, who until now have always
supported me when facing new challenges.
I am grateful to my good friend Line Jnson, for her support through the entire education.
Three special gentlemen from Evry deserve to be mentioned and thanked, Per Alm, Jes Hesselbjerg
and Ole Mose, without them this report would not exist.
Finally, I would like to thank to my supervisor Mogens Jacobsen, for his time and wise advices.
vii
1.0 INTRODUCTION
1.1. The Company
Evry is a result of the 2010 merger of Norways two largest IT companies: EDB and ErgoGroup.
This was the largest merger ever seen in the Norwegian and Nordic IT industry, and was the fourth
largest corporate merger in Norway regardless of industry. As consequence of the merging, it
became the largest IT Company in Norway and the second largest IT services company in the
Nordic region. With 10,000 employees, EVRY delivers daily IT services from 21 Norwegian and
50 Nordic towns and cities for more than 14,000 public and private sector customers. Also, the Evry
Consulting Group is the largest Nordic SAP partner and offers a complete range of services in
Denmark, Norway and Sweden.
In Denmark, Evry as well, has customers in both the public and private sectors including such
names as Kbenhavns Lufthavne, Arla Foods, Danfoss, Lejerbo, Novozymes, SAS, Statens Serum
Institute Qdok, Nets and others. They are offering a broad gamma of IT services: Consulting
services, Application services and Solutions, Infrastructure services, and Software and Hardware.
At the moment, Evry Denmark has two offices, one located in Viborg where most of the IT
production and development take place, and the office in Copenhagen where most of business and
meetings are made.
1.2. SAP
SAP stands for Systems, Applications and Products in Data Processing. It was designed and
developed by 5 engineers from IBM during the 70s as alternative software to handle Enterprise
Resource Planning (ERP) software. Nowadays SAP is the worlds leading developer of ERP
products and companies in more than 120 countries are using its applications, which include
managing their day to day operations, logistics, finances, month end, quarter end and yearly
activities, reporting, human resources, etc. SAP integrates all these operations in a seamless system
that is both, easy to use and sophisticated enough to include all kinds of complex activities that are
needed in an enterprise. Examples of some of these activities could be: Running material resource
planning, recruiting and managing an employees lifecycle, disbursing payrolls, recording all
financial transactions and drawing balance sheets and P/L statements of the company, etc.
1.3. Mobility
The world is starting to adopt mobile technology really fast and the spread of smartphones and apps
are accelerating strongly. A new term -mobility- has become a necessary part in the solution of
problems that could not have been solved in the past.
EVRY Denmark are, as many other companies, looking for new ways to increase efficiency and
productivity, to improve processes and to drive down operative costs. This could be achieved by
giving employees the access to correct information delivered to where they are.
Native applications
Mobile native applications are application programs that have been developed for an exclusively
use in a specific platform or device. Developers use development tools and programming languages
that support a respective platform, e.g. Xcode and Objective-C for iOS, Eclipse and java for
Android, Visual Studio and C# for Windows Phone. Moreover the applications can be distributed at
the application store of the mobile phone brand, downloaded and installed on the device.
Native applications have access to all native APIs and they have an improved graphic performance,
therefore it is expected that native applications provide the best performance in usability, features
and overall mobile experience.
Depending on the purpose of a project, to build native applications could become expensive since it
has a single platform affinity.
1.4.2.
Mobile web applications are application programs developed with web technologies (at 2012:
HTML5, CSS3, JavaScript) and a server-side technology (PHP, ASP.NET, etc). Web applications
are stored in a remote server and they are delivered over the internet through an internet mobile
browser, e.g. Safari, Chrome, Internet Explorer, etc.
Compared to native applications, web apps are easier to develop, support, and reach a wider range
of devices, but unfortunately native features can be emulated but not replicated at a hundred
percent.
1.4.3.
Hybrid applications
Mobile hybrid applications are the combination of native and web apps. Primarily built with web
technologies (HTML5, CSS3, and JavaScript) and then wrapped inside a native container that
provides access to native platform features, such as the camera, local storage, geolocation, etc.
The native container is an abstraction layer that exposes the devices native APIs to the hybrid
application as a JavaScript API. This is not possible with web applications due the security
boundary between the browser and the device APIs.
Hybrid applications can be distributed at the application store of the mobile phone brand,
downloaded and installed on the device.
Resources or Finances to fulfill tables and register manually the tickets of other employees. In a
decentralized or distributed process, an employee registers own expenses through a graphic user
interface as front-end that links to a database for data storage of tickets and tables. Today
distributed processes make use of web pages or desktop applications.
At Evry, employees can register expenses such as travel, accommodation, mileage, per diems and
other expenses, through a web interface that connects to a web service to use SAP/ABAP back-end
system.
Employees are limited by only being able to access the registration of expenses application from
a desktop/laptop computer.
The employees need to send the physical receipt plus a written down registration/ticket number
from the online registration to the Finance department.
To not take advantage of employees free time at lunch breaks, waiting times for meetings,
while in public transportation, etc.
Lower productivity and efficiency because of high and inefficient administrative and accounting
tasks.
To not be able to make immediate registration i.e. right after checking out from a hotel,
implicating that employees risk forgetting to register their expenses.
development. Furthermore, in the experience earned during my internship period in the company
Evry, where one of the tasks was to design and develop an application store website with versions
for both a desktop and mobile browsers. And finally, I have studied and followed tutorials to
understand the different features and functionality of the Neptune Application Design software and
jQuery Mobile.
3.3. Methods
There are numerous steps, methodologies and processes regarding the design and development of
mobile applications, from an initial gathering of primary information up to build and maintain the
application. Hence, to face, analyze and solve the problem statement I found it convenient to follow
a mobile project flow based on the book Pro iOS Web Design and Development: HTML5, CSS3,
and JavaScript with Safari by Andrea Picchi from where I will include four phases: Analysis,
design, implementation, and final test.
Also in an attempt to design a user interface oriented to include the needs, wills and limitations of
end users, I will complement the process with the use of key concepts from the book The Elements
of User Experience by Jesse James Garrett. He breaks down the user experience into pieces; these
pieces or layers are called the Five Planes. Even though these planes cover mainly user experience
issues related to Web development, I find it necessary to use the concepts in order to achieve a usercentered design.
Finally, I will be using the book Mobile Design Pattern Gallery by Theresa Neil to cover the User
Interface patterns of applications made for iOS platforms.
Each phase has a purpose and so each one contributes to the problem solving. The description of the
schema to use in the project will be as follows:
3.3.1.
Analysis
It involves a good and solid understanding of the company, the project and the user needs. So I
consider important to approach these sub-topics:
Brand Identity
3.3.2.
Design
The design phase will make of use of an agile methodology; due at it is more effective to divide the
work process of designing into small increments and iterations. This will help to avoid any huge
mistakes at the phase of implementation. To ensure balance between working time and results, the
process will be divided in the following areas:
Information Research
Content Architecture
Wireframes. Here the interface design, navigation design, information design and a usability test
will be covered.
3.3.3.
Implementation
This phase will cover the implementation of an electronic prototype in HTML5, CSS3 and jQuery
Mobile using Adobe Dreamweaver as the code editor, and the migration of the prototype to the
Neptune Application Designer.
3.3.4.
Final Test
The final test will include the electronic prototype built in Neptune software. The plan is the
following statements:
Review the application made in Neptune, this should be made by me comparing the goals and
purposes of the project, and so the functional requirements.
Build PHP and JavaScript pages to test a more real interaction on an iPhone device.
Make the test with 2 users from the target group, and ask questions regarding their user
experience. Take notes of number of touches, number of mistakes and estimated time of arrival.
(Picchi 2011:405)
3.4. Tools
3.4.1.
HTML5 is a markup language for structuring and presenting content for the World Wide Web.
(Wikipedia, HTML5: 2012). HTML5 includes new elements for better structure like <article>,
<section>, <header>, <content>, <footer>. Better form handling like calendar, date, time, email, url.
Drawing like <canvas>, and for media content like <video>, <audio>.
CSS3 is the latest standard for the Cascade style sheets CSS. CSS3 is split up in modules: Selectors,
box model, backgrounds and borders, text effects, animations, etc.
JQuery Mobile is a touch-optimized web framework for Smartphones and Tablets currently being
developed by the JQuery project team. The jQuery Mobile framework is compatible with other
mobile app frameworks and platforms such as PhoneGap. (Wikipedia, jQuery Mobile: 2012).
3.4.2.
PhoneGap
PhoneGap is an open source mobile development framework that allows building mobile
applications by using JavaScript, HTML5 and CSS3, instead of device specific languages.
Currently, PhoneGap supports the native iOS, Android, BlackBerry, webOS, and Symbian
platforms. In addition to the native distribution of PhoneGap capabilities, it also exposes an API
that allows Web applications to interact with device specific APIs including the file system,
notifications, contact lists, camera, and many others.
At the website of PhoneGap there is a step by step guide on how to set up for an iOS environment,
from the installation of Xcode to the activation of PhoneGap. Another way to compile iOS
applications is through the website http://build.phonegap.com, which is a service owned by Adobe.
But notice that for both methods we need to be members of the iOS Developer Program of Apple
which costs 99 USD, this is because to compile applications for iOS we need to have a certificate
(p12 file) and a provisioning file, in order to whether test the application on our own device or to
distribute apps on the app store of Apple.
3.4.3.
The Neptune Application Designer is a native SAP workbench that integrates HTML5, JavaScript
and CSS3. It can be installed through the ABAP add-on process. Neptune does not interfere with
any functionality of existing systems, so it provides a fast and easy way to get started with mobility
within an existing SAP system landscape. Moreover there is no need for extra servers or other
developing knowledge than ABAP; therefore the front-end layer of the application needs to be
delivered as a project file of Neptune Application Designer.
There exist certain limitations and problems at the moment of working with HTML5, jQuery
Mobile, CSS3 and the Neptune software. The main problematic is that even though Neptune
application designer offers a drag and drop interface; it has a big disadvantage of not offering an
option to edit the code directly. This makes the development very slow and clumsy. So it is
necessary to make a prototype with another web editor and import the code and design into a
Neptune project.
3.4.4.
SAP Netweaver is a technology platform that enables the composition, provisioning, and
management of SAP and non-SAP applications across a heterogeneous software environment. It
means that the SAP back end, portals (SAP web applications) and other type of applications exist
together under the same platform.
SAP GUI is the graphic user interface client, and it can be the back end as well as the user interface
in a portal. At Evry, this software runs on a Windows environment and HTML (internet explorer),
and allows a user to access SAP functionality in SAP applications such as SAP ERP and SAP
Business Intelligence.
3.4.5.
Adobe Dreamweaver is web design software and provides an intuitive visual interface for making
and editing HTML websites and mobile applications. Dreamweaver supports HTML5, CSS3 and
the most important is easy to work with jQuery Mobile. Also offers an easy way to export the
project for using it with PhoneGap.
3.4.6.
Adobe Photoshop is a powerful image editor. I will use this software for designing a set of
mockups, and since the program works using multiple layers, it will be easy to re-use the images
created. Adobe Photoshop will also be needed to create images belonging to the final prototype, i.e.
the logo image.
3.4.7.
It is a free and open source prototyping tool that allows easily creating flowcharts, wireframes and
mockups, having an extended library of stencils and templates for android and iOS.
5.0 ANALYSIS
5.1. Project purpose and goals
To develop the front end layer of the mobile Expense Registration application for the company
Evry.
To achieve a user centered design and so take in consideration usability and good/efficient user
experience.
The satisfaction of the stakeholders and end users regarding the final product/prototype.
Personas
The Personas I created for this project are very useful since they create a common understanding of
the target group for which the design process is built around. These fictional characters represent
the typical users at Evry, and they were created after observation and conversation with most of
the target group during the past 4 months. Besides, as a designer, I have observed many times how
to register expenses through their desktop browsers.
10
11
12
has
bachelors
degree
in
Business
13
Figure2. Standard SAP Travel Management process - decentralized process (SAP AG 2001: 17)
With the SAP Travel Management application it is possible to follow all the business travel process,
from Travel Request and Travel Planning, to Travel Expenses.
Travel request
Input of general trip data, required travel services and cost estimates.
Travel planning
Travel expenses
14
Payment of travel expenses via Financial Accounting (FI), Payroll (HR) or via data medium
exchange with banks.
The Evry Expense Registration mobile application will only take in account the Travel Expenses
process.
Mission
The mission of the company is to bring information to life, creating value for their customers to
the benefit of society.
5.5.2.
Vision
The company considers its vision as bold and clear, because by embracing infinite opportunities is
what it takes to be at the forefront, continuously pursuing new opportunities, and inspiring their
clients.
5.5.3.
Values
The values of the company are: to anticipate needs, to go beyond expectations, to perform together
and to empower and inspire.
To define the project requirements I thought convenient to create Scenarios with the personas I
created in the phase of analyses. And so document the functional and content specifications.
15
It is a Wednesday early morning and due to easy traffic, Thejs has arrived 15 minutes earlier to a
meeting at BaneDanmark. He sits down at the waiting room and suddenly remembers that he didnt
register the hotel bill he got in London last week, where he went for a week for a SAP HR extension
course. He checks his watch and sees that he still has 10 minutes left till the meeting and nobody is
approaching yet. He decides to take his iPhone out of the pocket and to open the Expense
Registration app. He logs on and taps the accommodation type of expense. He fills up the fields,
takes a picture of the bill and done. Thejs feels released of having registered the expense that he
kept forgetting for a week.
The metro trip (Persona 3: Anna Jakobsen)
Anna is in the metro on her way to Amager (she normally takes the metro from Frederiksberg to
Femren, which takes 16 minutes), at Forum station she tries the new application from Evry called
Expense registration to register three lunch meals receipts that she got when visiting HCM
Consultants at SAS. Anna opens the Expense Registration application, logs on and chooses the
Expense type from the menu. She fills up the fields and takes a picture of one bill and confirms. She
made so far two registrations while she was on the metro, but unfortunately she did not have time to
register a third one. Later after her lunch break, Anna completes the registration of the third receipt.
By the end of the day she wonders if it was possible to register more than one expense at the same
time.
6.2.2.
Functional Specifications
The application must support the SAP standard expense registration process, and at least minimum
requirements and processes must be implemented, so later on it could be possible to expand the
functionality. To make a description of the functions that the application should have, an HCM
Consultant of Evry and I have analyzed the existing Expense registration website to be able to write
down the functions that would work in a possible mobile application. Here is the description:
The first window/page should be for the user to log on. This means that only authenticated users
(employees of Evry) can make use of the application.
The log-on window should have a logo image on the top, two text fields for filling up username
and password, and a log-on button to confirm authentication.
The system will present a menu with the type of expense to choose, and a view history.
The user has to be able to register one of the five types of expenses at a time.
16
The types of expenses are: Travel, Accommodation, Mileage, Per diems and Expenses.
All types of expenses should include a project identification called Cost Assignment or WBS.
The Travel type should include the following fields: From city and to city, transportation type
(Plane, car, bus, taxi, and parking), Amount of money, Type of currency, and an option to set
Roundtrip.
The Accommodation type should include the following fields: Country, city, Hotel name, From
Date and to date, Amount of money, and Type of Currency.
The Mileage type should include the following fields: From (origin), To (destination), Distance
in kilometers, a 60 days rule, and an option to set Roundtrip.
The Per diems type should include the following fields: Country, City, Start-date, Start-time,
End-Date, and End-time.
The Expenses type should include the following fields: Description, type of expenses (meals,
office, IT equipment, education, and other), Amount of money, and Type of currency.
The five Types of Expenses pages should present a Confirmation, Reset and Cancel Button.
The user should be able to take a picture of the physical receipt and attach it at the expense type
window.
The user should get a ticket number after tapping the confirmation button.
The look of the application will conform to the company brand guidelines document.
6.2.3.
Content Specifications
The size in pixels of the logo-image at the Log-on window should be optimized for an iPhone 5
resolution.
The terminology to use should be according to SAP standards for the company Evry.
17
18
6.4. Wireframes
The goal is to use handmade paper wireframes to depict a first sketch of the application. So it is
time to look up to the graphic user interface, and make use of design patterns for iPhone devices.
This means to put together all necessary elements that will allow having a good user experience
while using the Expense Registration application.
6.4.1.
Interface Design
An interface is the means by which the user makes use of the application. Interface design is about
choosing the right elements so that the user can be able to accomplish a task successfully. This
includes the action buttons, text fields and dropdown lists, for example in figure4 and figure5, is
possible to recognize the action buttons, such as log on, log off, confirm, ok and others.
6.4.2.
Navigation Design
As seem from the site map, the application has three main pages: a log-on page, a menu page and a
type of expense page.
In order to do registrations one needs to choose or navigate to a specific type of expense page. I
decided to use the pattern called Springboard. Since there is only one menu (Main menu of figure4),
the user would understand that there is only one path to take, which could improve the navigation
experience.
As another design pattern for iOS, the title of a page is always showed at the top (see figure5), this
will provide an accurate orientation to users through all the pages.
6.4.3.
Information design
Information design is basically about how to arrange and group the information. For the application,
I took in consideration to keep the default order of the type of expenses and their internal features
and fields. As mentioned at the navigation design, there are three main pages but when choosing a
type of expense (for example the Travel type) I needed to consider how to arrange the fields shown
on figure5.
19
Figure4. Wireframes, to the left the log-on page, and to the right the main menu page
Figure5. Wireframes, to the left the Travel type page, and to the right the Confirmation page of the Travel type
6.4.4.
Usability Testing
This test included a user (a random consultant) who represents the target group and I who
participated as an observer.
20
Usability goals
The user should be able to identify the process of registration of travel expenses: log-on, choose
the Travel type, understand the Travel expense fields, continue to the get a confirmation and
identify the take a photo button.
Scenario
The location was the education room of the company, where I sat in front of the user. The user was
told that this was a very basic sketch of the Expense registration application and that we were going
to go through a registration of a Travel expense. The questions asked were (see figure4 and 5 to
understand the questions asked with the wireframes):
Could you tell me which button would you press to log on?
Which button would you press to continue after filling up the fields?
Could you tell me what would you do in this page (Confirmation page)?
Results
The user was able to identify rapidly the log-on page and the purpose of the button Log-on.
The user found the Travel button at the Menu page with no problems.
At the Travel page, the user was familiar with the terminologies of the fields. And it was easy to
identify the button Confirm.
At the Confirmation page, the user identified the Take a picture and Ok button.
The user identified successfully the process of registration of Travel expenses, recognized the
different action buttons and fields and understood the terminology of them.
This iteration covered successfully the start of the design by the use of wireframes.
After the usability test, it is obvious the need of a second iteration to cover error handling, a
possible change to the pattern of the navigation menu, and to work the visual design.
21
7.2. Wireframes
These wireframes were made using the free software called Pencil, which it includes a large library
of drag and drop UI stencils elements for iOS, so I ended up with an improved set of wireframes as
to go next to the visual design part.
7.2.1.
Navigation Design
I changed the primary navigation pattern to a List Menu, due it will be possible to add new
items to the main menu and it will give enough space to write a brief description of each type of
expense and maybe an icon. See figure 6
The different back buttons will have the name of the page to go back.
7.2.2.
Information Design
I changed the arrangement of the log-off button at the menu page and the logo. See figure6.
The arrangement of the Travel expense page has changed, now there are two options after the
title of the page to choose between one way and round trip. See figure6.
At the functional specifications part from chapter 6, it was stated that each page of type of
expense should have a Confirm, Reset and Cancel button. Those specifications work fine on a
desktop website or application, but in the reduce screen size of an iPhone I thought convenient
to only use the Confirm button.
About how to handle errors, when logging on, there should be a message warning if the
username or password are empty or bad filled up. A similar warning message should be shown
when one of the fields are not filled up correctly or empty. I think a transparent light dark screen
containing the message should be enough for that, and should the user be able to tap anywhere
to go back to the previous screen.
22
Figure6. Wireframes, to the left the Log-on page, center the menu page, and to the right the Travel expense type.
Figure7. Wireframes, to the left the Confirmation page of the Travel expense type, center shows attach receipt, and
to the right the Reference number page.
7.2.3.
Usability Testing
This test included a user (a random consultant) who represents the target group and I who
participated as an observer. The procedure was very similar to the one at first iteration.
23
Usability goals
The user should be able to identify the process of registration of travel expenses: log-on, choose
the Travel type, understand the Travel expense fields, continue to the get a confirmation,
identify the take a photo button, and upload the picture of a receipt.
Scenario
The location was the education room of the company, where I sat in front of the user. The user was
told that this was an improved sketch of the Expense registration application and that we were going
to go through a registration of a Travel expense. The questions asked were: (see figure6 and 7 to
understand the questions asked with the wireframes)
Could you tell me which button would you press to log on?
Which button would you press to continue after filling up the fields?
Could you tell me what would you do in this page (Confirmation page)?
Could you tell me what would you do in order to attach a picture of the receipt?
Were you able to understand the process (registration of the Travel expense)?
Results
The user was able to identify the log-on page and the purpose of the button Log-on.
The user found the Travel button at the new Menu page with no problems.
At the Travel page, the user was familiar with the terminologies of the fields. And it was easy to
identify the button Confirm.
At the Confirmation page, the user identified the Take a picture and Ok button.
The user was able to understand that the process was done correctly when the reference number
was given.
The user identified successfully the process of registration of Travel expenses using the new
wireframes, recognized the different action buttons and fields and understood the terminology of
them. The user was able to acknowledge that the process was over at the reference number page.
24
Colors
During my internship I had a conversation with the Marketing Manager of the company. She
mentioned that Evry is looking to transmit a clean and simple brand expression, meaning that the
colors should regard the nature and a clean environment. Therefore, the colors of the different
backgrounds, fonts, buttons, and icons should not be darker than the primary color (#063954) used
in the EVRY logo. For this application I will only use the primary colors.
Figure8. The color palette with primary and secondary colors (Brand guidelines page 85)
Header
The header background area uses a gradient of: #D6D3CF and #EFEDEC
25
The small buttons for navigation at the header (previous page, user button): #00ADD3
The background of the arrows of navigation at the main menu page: #B7B3B0
The buttons of form pages (log-on, type expenses forms) uses a gradient of: #006293 and
#063954
The font color for all the select menu and check box fields: #222
7.3.2.
According to the brand guidelines the font type ITC Avant Garde Condensed is used for headings,
Arial is used for text in general, and the Evry Script is the font used for the EVRY logo
Header
The title of the headers: ITC Avant Garde Condensed, 18px bold.
The small buttons for navigation at the header (previous page, user button): Arial, Sans-Serif;
12.5px.
The font used at buttons at form pages (log-on, type expenses forms)
The font color for all the text and select menu fields (not bold).
7.3.3.
Having in mind that the focus of the design is for iPhone devices, it is obvious to think that buttons
and field elements should not be too small, Apple recommends that they need to be at least 44x44
pixels. But in Photoshop I applied the following sizes:
The navigation buttons (back buttons and top buttons) are 52 x 32 pixels
26
7.3.4.
In figure9, it is presented the logo of the application. It was created it by putting the existing logo of
the company next to the name of the application using the ITC Avant Garde Book Condensed font
type. There was also a consideration of space between the word EVRY and the name of the
application; this can be observed in figure10.
Figure10. To the left the Logo of EVRY with measurements regarding space, to the right the scale X
27
Figure11. Final mockups, to the left the Log-on page, and to the right Menu page
Figure12. Final mockups, to the left the Travel page, and to the right the User page (includes a log-off button)
28
I created successfully a new set of wireframes and so they brought a better perspective and
understanding of the functionality of the application. These wireframes were tested by a user
and they passed the test.
I made a detail of the report of the visual design elements, such as, colors, font types and sizes,
buttons and fields, and of the logo. This will be of a lot of help when implementing the HTML
and CSS code within jQuery Mobile.
I did not make any wireframe design to show how errors would be handled. But at least I made
a description of them.
8.0 IMPLEMENTATION
8.1. Electronic Prototype
In order to implement the user interface in Neptune, I thought convenient to first make de HTML5
and CSS code using Adobe Dreamweaver. The software also makes it easier to work with the
syntax
of
the
architecture
of
jQuery
Mobile.
The
pages
are
hosted
at
http://evryapp.byethost13.com/expenses/log-on.html
8.1.1. Basic HTML5 and jQuery Mobile
Here is a very brief description of a HTML5 document working with jQuery Mobile. From figure13:
The viewport Meta tag allows the page to be adapted to the mobile and disables zooming (line 5). I will
use this configuration for all the pages.
JQuery Mobile requires linking its script and CSS code, either from CDN hosted versions or by hosting
the files in our server (line 6 to 8). At the moment January 2013, the latest stable version is 1.2.0.
Normally, it is used a div-based markup to work with jQuery Mobile, but this practice is a bit
old and busted. Nowadays, it is possible to markup content using the HTML5 tags <section>,
<header>, <article>, <footer>, <div>, and others. I find it a bit confusing yet to use the new tags
<section> and <article>, so I will use the <section> tag to wrap pages and <div> tags to refer to
the content and body parts.
JQuery Mobile does not need a specific markup but it needs us to indicate the role of the content
area. To do this, jQuery Mobile uses a custom data attribute: data-role, and it includes: page,
header, content, and footer (line 11 to 16).
29
For better understanding of my approach, I divided the coding part in a description of the number of
pages created, the different page elements used, and finally the styling part.
8.1.2. Pages
I created the following html pages based on the final mockups and completed with the information
from the functional specifications detailed in chapter 6.
Menu.html (main menu page, listing the five types of expenses and a the history of expenses)
User.html (log off page, about page, help page, links to evry.dk and to the Evry app store)
The header holds the title of page and in most of the pages a back button. As an example I will take
the code of the header of Travel.html
30
From figure14:
In line 15 we can see the HTML5 <header> tag and the jQuery Mobile data-role attribute
belonging to the header. The data-theme attribute is used for theming specific areas, in this case
the header.
In line 16, I activated it the back button and the arrow icon. This means that when tapped or
clicked it will go to a previous page. Note that in order to achieve that functionality the attribute
data-rel should be set up to back
I used only form elements at the body of pages, specifically at the Log-on page and the different
expense type pages. I will take as examples the log-on and travel pages to show most of the form
elements I used.
Forms need to be wrapped inside a form tag and must be specified an action and method that will
handle the form data processing on the server. It is also very important that id attributes for each
form are unique across the entire site. This is because jQuery Mobile will load the origin and
destination page into the DOM at the same time to make a smooth transition. It is also important to
establish a relationship between a form field and its label, so the for attribute of a label element
should correspond to the id attribute of an input element (see lines 23 and 24 from figure15).
31
Input types
In figure12 we can observe the text, password, and submit input types. An important feature of
jQuery Mobile is that we can hide the label of some input types by adding the class attribute uihide-label and setting it up to true (see results in figure 17). I have also used the input types date
and number, their syntax is very similar to the ones mentioned above.
Select Menus
JQuery Mobile will automatically enhance all native select elements with no additional markup
required. To make a Select Menu, we simply need to call a select element through the jQuery
Mobile <select> markup and a set of option elements with a value; note that the attribute for at
the label element and the attribute id of the <select> element are identical because they need to be
semantically associated. (figure16 lines 24 to 33)
Figure16. Part of the HTML code of travel.html (form elements SELECT and CHECKBOX)
32
Figure17. Screenshots (iPhone 4), to the left the log-on.html page, and to the right the travel.html page
Checkbox
Checkboxes are As with Select Menus, checkboxes are automatically enhanced by jQuery Mobile
and they are styled by default to be more touch-friendly. When creating a single checkbox as in
figure 13, we need to add an input with an attribute type checkbox and a corresponding label.
8.1.5. Styling
The theming system of jQuery Mobile takes advantages of CSS3 properties so we can add rounded
corners, box and text shadows and make nice gradients without the use of any images.
JQuery Mobile has a group of themes and calls them swatch, by default there are five themes (a,
b, c, d, and e) and each consists of a header bar, content body, footer, and button states that can be
mixed This was of great help, specially theme d has similar styling to the brand guidelines of
Evry. As when I started styling the Html pages, I did not know how to customize properly the datathemes, therefore the form buttons use the c theme, while everything else works with the d
theme.
33
I will take as examples of explanation three pages. In some of them I made inline styling since there
were things that only needed to be changed for certain elements, but for most of the big
customizations I used external styling (expenses.css).
Log-on.html
The result is shown in figure17. The page is composed only of a body, which in jQuery Mobile
terms is data-role=content. The modified style of this page corresponds to the logo-figure, to join
both input text fields to show them as one block and reduce the round borders, and to modify the
color of the input submit button.
The CSS code from figure18 shows that border radiuses are reset, the top radius borders of the user
field are kept rounded, and so the bottom borders of the password field. So we end up with a block
of input text fields. Note that one em unit corresponds to 16 pixels, but this relation belongs only
for this example, since one em unit is related to the font size.
In order to style the borders of all the buttons (except input submit buttons) I modified the class .uibtn-corner-all. For the submit buttons the class .ui-btn-up-c had to be modified. In figure 19
line60, we can see how the gradient was applied.
34
Menu.html
The menu page is composed of a header and a body-content (as all the others, except log-on.html).
The header has two small navigation buttons to the sides and in the middle the logo of the
application. JQuery Mobile allows us to do all this with no extra CSS but just adding the correct
classes.
From figure20 we can see that I added the classes ui-btn-left and ui-btn-right, also at line 28 I
added the data theme d. It finally worth mention that the attributes data-transition and datadirection defines the type of transition between the menu page and the user.php page.
35
Figure22. Part of HTML code of the menu.html page (Body part menu list)
The code from figure22 denotes the data-role list view; this will bring a set of list items, and
together with a link will active an interaction. Each list can be styled to contain an image by editing
the CSS class .ui-li-thumb (images are 36x36 pixels), and by adding several headings or
paragraphs. These lists can also accept the data-transition attribute.
Neptune Application Designer, where applications (pages) are built using HTML5, CSS3 and
JQuery Mobile.
Neptune Application Class, that handles the business logic part. Allows the creation of ABAP
object classes. Public attributes in the application class can be used for binding in the
Application Designer.
Neptune Application Builder, that organizes projects and contains the applications created with
the designer. Also offers the great tool to translate all field labels of each application into
another language.
Export to Phonegap, this component provides a user interface for preparing the application,
splash screens, icons and Phonegap API features.
To be able to install Neptune in my computer, I had to first install SAP GUI of Netweaver v 7.0 for
Windows on my personal computer. After that I was able to access the system DE5 where the
Neptune software was installed (see figure23).
36
The first thing to do was to create the exact same pages I created in Dreamweaver, add a description
and title for each of them, and select the plugin to be used (jQuery Mobile). As example I will
explain the application MENU_EXPENSES (menu.html), and show how to import the HTML and
CSS code created in Dreamweaver.
8.2.1.
Menu_expenses
First of all, as I mentioned before and as I would recommend, I created all the applications and kept
them empty, this because Neptune needs to recognize existing applications when choosing the
option to navigate to another application. Then, I created a project EXPENSE_REGISTRATION
using the Neptune Application Builder, and added all the applications to this project.
In order to replicate what was done in Dreamweaver, there were two choices, either to create the
application from scratch by dragging the HTML5 library included in the Application Designer and
then manually adding all the attributes and style to the elements, or to import the HTML code by
right clicking under HTML5 Document.
37
Figure24. Screenshot of the Application Builder showing all the applications created
I used the last option, but implicated some customization of the document. By default the
Application Designer adds text-tags to all imported div-tags and some of the classes and id
attributes are not imported. Also, it is a good idea to add a name attribute to all the objects (tags)
in order to understand the structure of the Application.
38
The custom CSS can be attached to the Stylesheet area as code, or uploaded it as a .css file at
MIME repository folder, which handles all files like images and customs CSS sheets. I preferred
to add the CSS code to the Stylesheet area window; Neptune creates then a file called app.css.
Figure26. Screenshots, to the left Stylesheet window, and to the right the MIME repository folder
Figure27. Screenshots from the Chrome browser, to the left the application made in Dreamweaver, and to the right
made in Neptune
39
I compared the purposes and goals of the project from chapter 5, and the scenarios and functional
requirements from chapter 6 with the final prototype compiled in Neptune Application Designer by
making a list.
Phase 2: Extra code
I added some server-side scripts in PHP to the form pages to allow the participants to have a closer
interaction to a complete application by simulating the interaction of the backend
Phase 3: Scenario
I made the test with a user from the target group (Consultants from Evry). The test was made
between the participant and I who sat in front of him at the education room of the company. The
participant was told that this was an improved electronic prototype of the Expense registration
application and that he was going to go through a registration of a Travel expense. Fortunately, the
participant was used to do the process at his desktop computers, and there was no need of extra
lecturing about explanation of the application. So I let the user to go through using his intuition and
40
I started to take notes regarding his number of touches/taps, number of mistakes and estimated time
of arrival (Picchi 2011:405), also about his emotional response towards the experience.
Regarding the minimum number of touches/taps is fifteen (15) considering from the Log-on page
until reach the Reference number page where the registration is done, and there are six screens
involved, see figure30.
Was there anything that made you doubt regarding labels, fields, and buttons?
Do you think there could be any necessary improvement to the functionality or information
design?
41
9.3. Results
Result phase 1: Self-test
The application fulfills main purpose which was to deliver which was to deliver a final
product/prototype in Neptune, applying a user centered design.
The application covers all the functional specifications, which briefly includes: a Log-on page, a
Menu page, five types of expenses pages and their respective forms and confirmation pages with
option to take pictures of the physical receipts, and finally a reference number page. Also, includes
a User page with the ability to log off and find technical help, link to the website of Evry and their
applications store.
Result phase 2: Extra code
I created five PHP/HTML5 pages to handle temporary string text-data when filling up the fields of
the five types of expenses; this creates the experience as if there were a backend system already
implemented. From figure29, the $_POST variable is used to collect values in a form with
method="post", in our case is the form from the Travel expense type travel.html. Later this values
are called (<?php echo $project; ?>).
The confirmations pages have also been updated to handle access to the iOS camera through safari
as a web app. <input type="file" accept="image/*" capture="camera">
42
43
Yes I do, and I believe it does. I hope they will implement this app soon, looks like a really
good idea to have at the company.
Was there anything that make you doubt regarding labels, fields, and buttons?
In the beginning I doubted whether I could understand it, but I do the travel expenses all the
time so I think I adapt it very fast to the pattern.
Do you think there could be any necessary improvement to the functionality or design?
I think it would be nice to make the take a picture-button a bit bigger, but besides that I think
everything looks nice.
10.0 CONCLUSIONS
The main goal of this project was to achieve usability and a good user experience when using the
Expense Registration application. I believe that this goal has been achieved. From the start of this
report, I focused on describing the limitations in use of the actual system and the tendency to
implement mobile applications. These mobile applications of course need to have a foundation, and
therefore first, they should be looked from a business context perspective; by analyzing the target
group, and the pros and cons and the main necessity of implementing one.
Further, the project describes the tools and methodologies to use in order to analyze, design,
implement and test what is now the graphic user interface of an Expense registration application,
44
always oriented in the needs, wants and limitations of the end users. For this, I started identifying
the target group and creating fictional characters that helped to understand what mentioned above.
The approaches of designing required to research and analyze the requirements and functions of the
actual desktop system. Afterwards, two iterations were made, which helped to not stress the work
under only one phase, which made the process faster, more agile and less stressful. In addition,
designing tools like wireframes and mockups have played a very important role, each of them being
made at their respective iteration, were submitted to a usability test performed by a SAP Consultant
from Evry and observed by the author of this report.
The implementation of the user interface was divided into two phases, the first by creating and
editing the HTML and style code in Adobe Dreamweaver and hosting the pages in a free-server, to
later on import the pages to the Application Designer of Neptune. This method proofed to be very
efficient.
As the last phase, the final test confirmed that the design and final product/prototype of the user
interface fulfilled the goals of the project in mention, and the expectations of the stakeholders.
During the project process I have acquired new knowledge and experience regarding the use of
image editor and web tools like Adobe Photoshop, Adobe Fireworks and Adobe Dreamweaver.
Moreover, it has been a very educational experience having learnt a basic introduction to the SAP
systems, and to be part of this little contribution of designing and implementing the user interface of
an application using the Neptune software.
Finally, I hope this report will be useful to other designers/developers to recreate or find inspiration
with the approach I took on the development of a business oriented application.
11.0 BIBLIOGRAPHY
Picchi, Andrea (2011) Pro iOS Web Design and Development: HTML5, CSS3, and JavaScript
with Safari. Apress.
Garret, Jesse James (2011) The Elements of User Experience: User-Centered Design for the
Web and Beyond. New riders, 2nd edition.
Neil, Theresa (2012) Mobile Design Pattern Gallery. Oreilly, 1st edition.
45
log-on.html
#problems
46
menu.html
travel.html
tra_confirm.html
47
accommodation.html
acc_confirm.html
48
mileage.html
mile_confirm.html
49
perdiems.html
diems_confirm.html
50
expenses.html
exp_confirm.html
51
history.html
done.html
52
user.html
about.html
user.html
53