Requirements
The localization features of MoneyClip Mobile will provide customers with targeted advertisement, coupons, and loyalty networks that will be an additional feature to an existing web-based payments infrastructure. Below, the Problem Statement, Functional and Non-Functional Requirements, Environmental Requirements, Potential Risks, and the Project Plan can be found.
Problem and Solution Statement
MoneyClip Mobile (MCM) is a web-based payments infrastructure providing fee-free transactions to customers and merchants using through the use of mobile smartphones. Mr. Joshua Cross of Hermes Commerce, Inc. is planning to make this mobile payment system more robust by providing targeted advertisements, coupons, and managing customer’s royalty programs.
This capstone project will develop the localization features for the MCM advertisement, coupons, and loyalty network. The software will be developed for the existing MCM network and database to ease the transition of integration this feature. The team will be developing the same copy of the existing network and database on a local server to develop in and test the added feature. The prototype of the localization features implemented on the database, webservice, and iOS/Android applications will be presented to Mr. Cross at the end of this project.
Functional Requirements
This section outlines the expectations of the MCM localization feature. Below is a list of the functional requirements of this system.
I. iOS/Android Application
A. User Application
1. Pushing advertisements and coupons.
i. The localization feature pushes advertisements and coupons to the user.
ii. The localization feature integrates with the database to provide targeted advertisements to the user.
iii. Users must be able to opt in to various levels of participation.
2. Loyalty programs
i. Users must be able to access their loyalty programs from the application.
ii. Users must be able to modify their settings for loyalty programs.
II. Webservice
A. Users
1. Users must be able to perform the same tasks that are available in the application.
B. Merchants
1. Merchants must be able to create new coupons and advertisements.
2. Merchants must be able to modify existing coupons and advertisements.
C. Administrator
1. Administrator must be able to approve new coupons and advertisements.
III. Database
A. Administrator
1. Administrator must be able to integrate new coupons and advertisements into the existing database.
2. The location of the merchants must be integrated into the database.
Environmental Requirements
Existing Infrastructure
The team must use the existing MCM infrastructure, so the transition of adding the localization feature will be seamless. Thus, a Mac computer will be required for iOS/iPhone programming. iOS deployment on a physical device requires a subscription to the Apple Developer Network, which costs $99 annually.
Content Filter
Initially, merchants will be able to create any advertisements that they choose to. However, in the case that advertisement content is found to be inappropriate, the system will need to allow for a content filter to be easily added.
Google API Limitations
Geocoding is the process of converting addresses into geographic coordinates which you can use in Google Maps to place markers or position the map. Geocoding is a time and resource intensive task. Google recommends designing a cache for all systems that use geocoding to store addresses that have been pre-geocoded whenever possible. This is particularly crucial to implement because Google API has a query limit of 2,500 geolocation requests per day. If the limit is exceeded too often, Google will block access to the Geocoding API. Furthermore, our implementation of the system is limited to the inputs and outputs used by the Google API.
Java and XML
Android applications must be developed using the Java programming language along with XML. Our client has asked us to create an android application that showcases our localization capabilities, therefore, Java and XML must be used in the implementation of our project.
Android devices
There are several differing Android devices currently on the market. The most crucial difference to understand while implementing our project is the difference in screen size and screen density between the devices. Due to this, we must implement our Android application so that our interface is displayed relative to each device screen rather than one particular screen size.
Android OS
There are several different Operating Systems that are being used on Android devices. Our application will have to be implemented so that it can be accessed on as many different OS versions as possible. The application should also be developed using an API high enough to fully and correctly implement the system, but the API should be as low as possible so that more devices can be compatible with the application.
xCode
iPhone applications must be developed using xCode. Our client has asked us to create an iPhone application that showcases our localization capabilities. Therefore, xCode must be used in the implementation of our project.
Potential Risks
- Security of localization integration
- Privacy protection makes geolocation impossible
- Merchants push too many advertisements and coupons
- No cell service
- Inaccurate geolocation
- MCM server failure
- More than one merchant in user proximity