Table of Contents INTRODUCTION ............................................................................................................................................. 3 PURPOSE OF THE DOCUMENT ................................................................................................................................... 3 OVERVIEW ............................................................................................................................................................ 3 BUSINESS CONTEXT ................................................................................................................................................ 3 OVERVIEW .................................................................................................................................................... 4 APPLICATION USER CHARACTERISTICS ........................................................................................................................ 4 PRODUCT FUNCTIONS ............................................................................................................................................. 4 CONSTRAINTS ........................................................................................................................................................ 4 FUNCTIONAL REQUIREMENTS ....................................................................................................................... 5 REGISTRATION OF USER ........................................................................................................................................... 5 SEARCH FUNCTIONALITY .......................................................................................................................................... 5 GOOGLE APPLICATION PROFILE INTERFACES (GOOGLE APIS) .......................................................................................... 6 FILTER FUNCTIONALITY ............................................................................................................................................ 6 GEO-LOCATION...................................................................................................................................................... 7 NOTIFICATIONS FUNCTIONALITY ................................................................................................................................ 7 NON-FUNCTIONAL REQUIREMENTS ............................................................................................................... 8 APPLICATION AFFINITY/COMPATIBILITY ...................................................................................................................... 8 SECURITY .............................................................................................................................................................. 8 PERFORMANCE REQUIREMENTS ................................................................................................................... 9 SYSTEM ................................................................................................................................................................ 9 SCALABILITY .......................................................................................................................................................... 9 NON-FUNCTIONAL ATTRIBUTES ..................................................................................................................... 9 EXTENSIBILITY ........................................................................................................................................................ 9 SECURITY .............................................................................................................................................................. 9 BIBLIOGRAPHY ............................................................................................................................................ 11 Introduction Purpose of the Document The purpose of this document is to provide a detailed description of the Kwathu android application. This document will provide a general description of the development of the application, the functional and non-functional requirements, performance requirements and the interface of the application. This document will also include use case diagrams and other relevant application attributes. Overview The Kwathu android application is being developed in order to address one of the main challenges that is being faced by the Transport and Tourism Industry in Malawi1. The Kwathu android application will provide its users with the fully functional system that will provide the necessary information that will assist in connecting them to attraction sites within the country of Malawi. The application is intended on making the process of finding adequate information concerning attraction sites easier and time efficient. Business Context The Kwathu android application is not only means of providing a source of relevant information for its users but it is also a means by which businesses can reach out to their customers. This creates an opportunity for the application to have a means of generating revenue through the provision of prime advertising space for companies and businesses that are looking to have their services and products hosted on the application. This means of generating revenue can be used to promote the application and help strengthen ties between the application and the business partners that are interested in the application. 1 “Lack of efficient connectivity to attraction sites in terms of air and road transport and ICT” (Malawi National Tourism Conference, Sunbird Capital, Lilongwe6th April, 2017) Application User Characteristics The users of this application can be generalized into two groups, local native users and visiting tourists. The purpose of categorizing the users of the application is to allow us to create user specified content. When the user is registering their user account with the system they will be prompted to submit their nationality so that the application my present them with information that takes into consideration whether or not they’re a tourist or a local user. The administrators of the application will also be considered as users of the system. Their input is paramount to the application being able to function in the intended manner that the application is being developed. They will be responsible with ensuring that the management and maintenance of the application are kept within the intended scope of the application. They will also be responsible with making sure that they keep up to date with trending technological developments that can be used to improve the user experience and functionality of the application. Product Functions The Kwathu Android application will allow its users to find out information about local events, tourist attraction sites and service providers within Malawi. Users of the application will have access to a live feed that will be adapted to their preferred interests. The user will have the options of rating places that they have visited and leave reviews. Constraints The application is being developed to help challenge the current economic state of the nation of Malawi by creating a means by which the Transport and Tourism industry can gain exposure to the general local public and international community too so as to increase the interactions, information and data exchange within the industry. The application’s greatest challenge is caused by the one thing that it is being built to help overcome. The current economic state of the nation Malawi makes resources hard to come by and service provision poor. Internet rates are high in the country but the core operations of the application are pivoted on the need to have internet access so that the application can make use of Functional Requirements The following requirements are not presented in any operational order but are given a rating in terms of criticality: Extremely Critical Very Critical Critical Less Critical Non-Critical Extreme Very Normal Less Non Registration of user Description - Having installed the Kwathu application on their device the user will be prompted to register as a user by inputting their email address and creating a user name and password for their account. Once the user has signed up and registered an account they will then be allowed access to the system and its functionalities. Criticality – Extreme Dependencies – The user will need to have a working email address so that they can be able to register to the system otherwise they will not be able to access the applications functionalities. Search Functionality Description – The application should be able to allow the user to search for any events or attractions that are stored within the application database. The search functionality must be presented in a manner that allows the user to find it easy to use without having to go through many pages/activities to get to it. The search functionality should be developed so as to work with Google APIs Google Custom Search2 that can be setup so as to Criticality – Extreme Dependencies – The search functionality and usability will rely mainly on the setup of the database and how it will work in conjunction with the Google APIs. Google Application Profile Interfaces (Google APIs) Description – The Kwathu applications ability to interact with the user in a seemingly intelligent manner will be largely because of the use of Google Application Profiles Interfaces. Making use of APIs allows us to add a lot of important functionalities and services to the application without making it a bulky system. The APIs also provide the application with the provision of making use of googles user metadata so as to make the application seem to be tailor made for each individual based on their user metadata. Criticality – Extreme Dependencies – In order for the application to make adequate use of the API services it needs to have an internet connection that allows it to connect with the API services online. The API service is fully dependent on there being an internet connection. Filter Functionality Description – The filter functionality allows the user to be able to refine their search based on whether they would like their search to be location, price, rating or service specific. What this does is that it allows the user to have their results given to them by the application in a very specific and precise way. The filter functionality works in hand with the search functionality and acts as a second means of refining the information that the application has to present to the user. The filter functionality is very important to the system because it allows the 2 Google Application Profile Interfaces (APIs) user to avoid having to go through so many results before they can get to the result that they are looking for. Criticality – Very Dependencies – The means by which the filter will be developed will really depend on the form in which the database will be setup so as to ensure that there are no conflicting requests made by the user when they are filtering out the information they need. Geo-location Description – The application should be able to adapt the notifications that are on the home page in accordance with the current location of the user. This allows the user to stay up to date with the events and attractions worth visiting that are within actual visiting reach. This makes the application more efficient in relaying information that is relevant. When the user first installs and initializes the application they will be prompted by the application and requested to allow the application to be able to locate the devices location when in use so that the home page is update as needed. In the instance that the user does not want to user geo-location feature they will be allowed to manually choose the location that they are interested in. Criticality – Very Dependency – In order for this functionality to be operational there is need for the user to allow the application to use the users location to make such choices and so if the user does not allow the application to do so then the user will not have the privilege of using such services. Notifications Functionality Description – The notification functionality is mainly meant to keep the user of the application up to date with the events that are happening within a certain range of their current location. The user of the application will be able to turn the notifications on or off as the prefer. In order for the system to be able to identify what events or places the user of the application is interested they will have to undergo a rather short survey upon first signing up to the application. Criticality – Normal Dependency – The notifications functionality depends on to main features, the first is whether or not the user of the application has turned on their location option which allows the application to identify the current location of the user so that it can make reference to nearby places that are within the users vicinity. The second dependency is whether or not the user chose to take the short survey when signing up for the application. The results of that survey will provide the system with a means of filtering out the notifications so as to notify the user about places that they would be most interested in Non-Functional Requirements Application Affinity/Compatibility Considering the demography of the users of the application it is important to make sure that the application is compatible with as many users of the system as possible. This is why it imperative that the application work on Android 5.1 (Lollipop) or higher. This will ensure that we have the largest possible number of users of the system whilst also maintaining a higher level of performance as possible. Security In order to ensure that the users that are giving ratings and reviews are actual users every user will be required to have a user account so that we can authenticate and confirm the identity of the user. This is why unless a user registers to the application via their email they will be restricted from using the application allowing the administrator to trace activity that happens within the application. Performance Requirements System The application will on any android device that is using Android 5.13 or greater. The application will be developed so that it can work on the device that it is installed on. The application is going to respond to the devices screen in terms of resolution and window sizing. Scalability With the purpose of reaching as many users as possible the application should be developed so as to facilitate an increase in the user count so as not to have the application lagging or straining due to the number of users on the system. Non-Functional Attributes Extensibility In order to be able to keep users of the application up to date and well informed of the many options that the application offers to them there is need for the application to be largely extensible. This improve the range of options that the application can facilitate therefore allowing the application to be as inclusive and variant a s possible. Security In regards to the information and user data that are related to the user’s interactions with the application it is important that we keep such data and information safe do that the user’s data does not end up being used for malicious. This data should be kept safe form any unauthorized personal. The integrity and authenticity of the data is also an important aspect of the systems security. 3 Android 5.1 Lollipop (API 22) Bibliography Kendall, K. E., & Kendall, J. E. (2014). Systems Analysis and Design. Pearson. Davidson, A. (2009). The Law of Electronic Commerce. Cambridge University Press. Schneider, G. (n.d.). Electronic Commerce (11th Edition ed.). Stamford.