Team 23 Design Document Customer Loyalty Program For

2y ago
118 Views
23 Downloads
709.84 KB
26 Pages
Last View : 1m ago
Last Download : 2m ago
Upload by : Cade Thielen
Transcription

Team 23 Design DocumentCustomer Loyalty Program forSmall BusinessesClients - Jay NamboorAdviser - Dr. GovindarasuMembers:Christopher WatersVan NguyenWilliam Tran1 Loyalty Program

ContentsSystem Functional Requirements. 3System Non-Functional Requirements. 3Functional Decomposition.4System Analysis.5Input/Output Module Specification. 7User interface specification.18Software Specification.26System Requirements2 Loyalty Program

Functional RequirementsFR-1The system shall allow the user to login and logout.FR-2The system shall allow the user to create an accountFR-3The system shall allow merchants to create loyalty cardsFR-4The system shall allow merchants to expire existing loyalty cardsFR-5The system shall allow merchants to verify customer punchesFR-6The system shall allow merchants to verify customer rewardsFR-7The system shall allow customers to search for local businessesFR-8The system shall allow customers to select loyalty cardsFR-9The system shall allow customers to download loyalty cardsFR-10The system shall allow customers to redeem punchesFR-11The system shall allow customers to redeem rewardsFR-12The system shall allow the database to store a history of completed punch cardsFR-13The system shall allow the merchant to view card history for their businessThe system shall allow the customer to view personal card history for completedrewardsNon-functional requirementsNFR-1The system shall be developed using the Appcelerator SDKNFR-2The system shall use an encrypted SQLite database for local storage to preventother applications from interacting with a user’s card dataNFR-3The system shall utilize hashing for punch a reward verificationFunctional Decomposition3 Loyalty Program

The figure above shows the client and server sides interact.4 Loyalty Program

System AnalysisThe way our system is designed is based mainly on a client-server architecture. However it issomewhat unique in that both the server and client side will house some of its own data. Thereason for this is to provide some offline functionality. The offline functionality is needed whenthe user is “punching” the card. If we were to depend on an internet connection, that may slowthe checkout process for the customer and the merchant. We do not want the application tocause the business to lose customers because it is trying to connect to the internet.That is why cards can be downloaded on to the client locally. The client itself will be responsiblefor keeping track of the punch cards. It will handle everything from punching the card toredeeming the reward.Because of the offline capability, we proposed a cloud synchronization solution. If the user wereto ever lose their phone, they would not lose all of their punch cards. The Card sync module willinteract with the History Manager on the server side to ensure data on both the client and theserver are up to date.Server SideNotice how every module within the same layer can interact with one another. Same goes forthe client layer. For example if Business Manager needs to get the card that is owned by it, itcan call on the card manager to get that card from the database.The responsibilities of the server include storing all of the user and the businesses. The wayeach module is setup is based on their specific responsibilities. For example if a user wantsto download a card, it will eventually have to go through the card manager to get that card. Formore information on a module, please refer to the input/output specifications.5 Loyalty Program

Software Design Patterns1. Model–view–presenterWe are using the model-view-presenter design pattern in order to separate logic from the viewfrom the model. A picture below describes the mvp structure.Fig (Source : MVP-and-MVVM-Patterns-Part-1.aspx)In this case, the view is all of our UI. Whenever their UI needs to update/request information,they will need to call a specific controller(presenter) assigned for handling certain jobs. Thatcontroller will then update/retrieve the data and do any logic/format changes to the data beforeit is passed back to the View. The Model ‘s only job is to update/retrieve data. The Views job isonly to display data. The controller will handle all the logic. Once again because of the clientserver architecture along with the offline capability, we almost have two-part controllers inthis case. Think about this, when the user attempts to create an account, the GUI will need tointeract with the account controller on the client side. The account controller on the client sidewill then quickly do input checking .etc , before sending the data to the Account managercontroller on the server side to store and verify the account has been created.Input/Output Module Specification6 Loyalty Program

ModulesServer SideCard ManagerThe card manager module will handle creation of cards and also retrieving cards.Module FunctionInputOutputStore created loyalty cardonto the serverTitle/Description/Number ofpunches/Level/ExpirationDate/Place IDVerification that loyalty cardis created and added it to theserverRetrieving loyalty cards fromserverPlace IDList of loyalty cardsinformation that match withthe Place IDTest CaseSuccessFailUser(merchant) Createloyalty cards for theirbusinessLoyalty card does notalready exist for specificbusiness in the database.Loyalty card already existedin the databaseUser(Customer) Selectedloyalty card from specificbusinessLoyalty card is not expiredand it placeID match withspecificLoyalty card exists or placeIDdoes not match with specificbusiness ID.Account ManagerThe account manager will contain code to create, lookup accounts, & reset passwords. Whencreating an account, users will input an email and password combination. If a user already hasan account, they can login by submitting their email and password combination.Module FunctionInputOutputUser loginEmail/PasswordVerification that a user islogged in (Session?)User creates accountEmail/PasswordStores account in databaseand notifies user.User resets passwordReset passwordPassword is reset and sent touser’s usernameTest CaseSuccessFail7 Loyalty Program

User creates account.email does not already existin the database.email already exists in thedatabaseUser loginemail and passwordcombination exists in the userdatabaseemail and passwordcombination does not exist inthe userUser resets passworduser password resetsHistory ManagerThe History Manager will be responsible for maintaining a history of cards that have beendownloaded to a user’s phone. When the card is redeemed, the database entry correspondingto that card will be marked as completed. It will also be able to sync up with a user’s phoneto keep track of partially complete cards so a user can download their cards in case they loseaccess to their phone (e.g. phone breaks and they get a replacement phone or they upgradephones).Module FunctionInputOutputAdd CardCard ObjectConfirmation Card wasAddedUpdate CardCard ObjectConfirmation Card wasUpdatedRetrieve Card none Uncompleted CardsView HistorySearch CriteriaCards Matching SearchCriteriaTest CaseSuccessFailAdd CardCard is added to DatabaseCard is not added to DatabaseUpdate CardCard is updated in DatabaseCard is not updated in DatabaseRetrieve CardUncompleted cards aredownloaded to a user’s phoneUncompleted cards are notdownloaded to a user’s phoneView HistoryUser receives a list of cardsmatching search criteriaUser does not receive a list of cardsmatching search criteriaBusiness Manager8 Loyalty Program

The business manager module will handle creating and linking up business to users. It will alsohandle request for anything information involving businesses.This module must :1. Create a business and link up to user account2. Link up other accounts to business3. Retrieve businesses of a user4. Search request for business based on name5. Search for businesses based on locationModule FunctionInputOutputCreate a business and link upto user accountUserID/Place Name/LocationVerification that business iscreated and linked up to anaccountLink up other accounts tobusinessUserIDs/Place/BusinessIDVerification that the businessis linked up to those accountsRetrieve businesses of a userUserIDList of business informationlinked up to the UserIDSearch request for businessbased on namePlace nameList of businesses matchingwith place name withlocations.Search request for businessbased on locationGPS locationList of businesses near GPSlocation.Test CaseSuccessFailUser(Merchant) Creates abusinessBusiness must be validatedbefore it is created. User willbe linked up to business.Business creation request isdeclined.User(Merchant) Links upother users to help managebusiness.User has the role(linked tobusiness already) to managethe business.User does not have therole(linked to businessalready) to manage thebusiness.User(Merchant) retrieves his/her businesses to manage.User is linked to anybusinesses.User is not linked to anybusinesses.User Search request forbusiness based on nameBusiness matches that namewith in the database.Business does not match thename with in the database.User searches for businessbased on a his/her location.There are businesses withina range of that locationThere does not exists not anybusinesses with a range ofthat location.Encryption/Verification9 Loyalty Program

This module is responsible for encryption ( sha-256 ) of input from the user such aspasswords. It will also have the responsibility of generating a QR code (with http://phpqrcode.sourceforge.net/) for a specific card for a merchant to do punches.Module FunctionInputOutputHash a user passwordUser passwordHashed (password)Generate a QR codeMerchant Name MerchantIDQR code of hashed MerchantName Merchant IDTest CaseSuccessFailUser password inputPassword is hashednoneGenerate QR codeQR code is generatedfrom hashed(MerchantName Merchant Id cardId)noneDatabase*history now have card states (0 not complete, 1 completed, 2 reward redeemed, 3 expired) and remove completed10 Loyalty Program

Business module - add location (lat and lon)Client SideAccountThe account module will be responsible for the login/logout process of the user. It will alsohandle the creation of accounts.1. Login2. Logout3. Create AccountsModule FunctionInputOutputUser loginusername and passwordVerification if user issuccessful or not, and open asession to the userUser logoutuser clicks logoutlogs user out by closing asession to the userCreate accountsemail, password, and confirmpasswordsend information to serverside to create an accountTest CaseSuccessFailUser log into the systemusername and passwordmatch with username andpassword on the servermismatching username andpasswordUser logout of the systemthe system close usersessionuser session still runCreate new accountemail and password doesn’texist on the serveremail and password exist onthe server11 Loyalty Program

Loyalty CardThis module will be use when the customer downloads a selected loyalty card. Once thedownload card is complete, it will be store onto the phone database. The module will then berequired to handle punches of the a card. It will also mark the card is completed when puncheshave been filled.Cards have have only have one of four states1. Not completed2. Completed3. Redeemed4. ExpiredModule FunctionInputOutputDownload Loyalty CardCard Template IDDownload the new loyaltycard and store it the phonePunches cardQR code and timestamp oflast punch.Loyalty point to the card andupdate the phone database ifQR code matches.Last punch of cardQR code,Update history module andand mark card as completedin database.Get current loyalty cardsSelected loyalty cardGets a list of current loyaltycards.Get completed loyalty cardsSelected completed loyaltycardGets a completed list ofloyalty cards.Test CaseSuccessFailQR code verificationhashed value of QR codematches the one in thedatabase with the specifiedcard id.hashed value of QR codedoesn’t match the one in thedatabase.12 Loyalty Program

Reward VerificationThis module is responsible for the verification of a punch. When the user scans a QR code, thismodule check the QR code’s value against the one in the database.Module FunctionInputOutputScan and Verify QR codeCard id, hashed value fromQR codeSuccess or failTest CaseSuccessFailScan QR code verificationhashed value of QR codematches the one in thedatabase with the specifiedcard id.hashed value of QR codedoesn’t match the one in thedatabase.13 Loyalty Program

BusinessThe business module will mainly interact with the business manager module on the server sideto get requested information based on a search criteria.Module FunctionInputOutputCreate a businessUserID, Place name, andlocationVerification that business iscreated and linked up to anaccountRetrieve businesses of a userUserIDList of business informationlinked up to the UserIDSearch request for businessPlace nameList of businesses matchingwith place name withlocationsTest CaseSuccessFailUser(merchant) creates abusinessBusiness must be validatedbefore it is created. User willbe linked up to businessBusiness creation request isdeclinedUser(merchant) links upother users to help managebusinessesUser has the role to managethe businessUser does not have the ruleto manage the businessUser(merchant) retrieves his/her businesses to manageUser is linked to anybusinessesUser is not linked to anybusinessesUser search request forbusiness based on nameBusiness matched that namewithin the databaseBusiness does not match thename within the database14 Loyalty Program

HistoryThe history module will interact with the history manager on the server to add and update cardsstored in the server’s database, download non-completed cards, and view a user’s history.Module FunctionInputOutputAdd CardCard ObjectConfirmation Card wasAddedUpdate CardCard ObjectConfirmation Card wasUpdatedRetrieve Card none Uncompleted CardsView HistorySearch CriteriaCards Matching SearchCriteriaTest CaseSuccessFailAdd CardCard is added to DatabaseCard is not added to DatabaseUpdate CardCard is updated in DatabaseCard is not updated in DatabaseRetrieve CardUncompleted cards aredownloaded to a user’s phoneUncompleted cards are notdownloaded to a user’s phoneView HistoryUser receives a list of cardsmatching search criteriaUser does not receive a list of cardsmatching search criteria15 Loyalty Program

Client DatabaseThe client database will consist of :loyaltycard table time stamp - When the card was downloaded card meta data - refer below punches - Number of punches a card (Default of 0) last punched - timestamp of last punch completed - if the card is completed or not redeemed - if the reward has been collected or notcard meta data will be a string version of this JSON object template id - the id of the downloaded cardplace id - the id of the card’s businesstitle - title of the carddescription - description of the rewardmax punches - max number of punches needed to redeem a rewardlevel - level of the cardverification - the verification code for this cardexpiration Date - the expiration date of this card16 Loyalty Program

Card SyncThis module shall be responsible for keeping the data on the phone and the server up to date.That way, if the user were to switch to a new phone, the application should automaticallydownload the information they had when using the old phone to their new phone. To accomplishthis the module must:1. Keep server up to date with local information.2. It must also handle updating even if there is no connection to the internet.3. Check at login to see if local information matches with server. (i.e. check number of currentcards and number of completed cards match). If it doesn’t match, it must download informationfrom the server.Module FunctionInputOutputUpdate server with localinformationUser ID, # of punches,Timestamp of LastPunch(YYYY:MM:DDhh:mm:ss) and, rewardclaimed (True/False)Send request to historymanager with punch cardtransaction informationUpdate event without internetconnectionCurrent and previous punchcard transactions.Send request to historymanager with punch cardtransaction informationCheck for matchinginformation with server atloginLoginSend over local informationsuch as number of currentcards and number ofcompleted cardsTest CaseSuccessFailUpdate server with localinformationPunch card transaction islogged on to serverPunch card transaction is notlogged onto serverUpdate event without internetconnectioncard transactions savedlocally when there is nointernet, all local savedtransactions will be log ontoserver database when thereis a internet connectioncard transactions not savedlocally without internet, orall local saved transactionsis not logged onto serverdatabase with internetconnectionCheck for matchinginformation with server atloginLocal information from phoneand server matchesmismatching information17 Loyalty Program

User interface specificationThis section will show all the different mock ups for each screen.Shows the login page for a user when they first open the applicationThe user may create an account if they are not a user.18 Loyalty Program

First time login verification - Users can go ahead and create a business to link.If they are a merchant they will proceed to this screen.19 Loyalty Program

Users will be shown a homescreen once they are logged in. The home screen can containfeatured ads as well as various other tabs.Search for businesses20 Loyalty Program

This screen will allow the user to select a card they want to use.Once selected, the user can punch the card by clicking on collect.21 Loyalty Program

When the user hits collect, the QR scanner will automatically pop up. If it is successful, the cardwill get punched.When the card is full, the user may try to redeem the reward once again by QR code.22 Loyalty Program

The QR scanner will once again pop up for redeeming a reward.The setting page will allow the user to view previous completed cards or change email/password.23 Loyalty Program

If the user wants to view their history, they will be redirected to this screen.This screen will allow the user to change their email/password.24 Loyalty Program

A merchant will have different options than a regular user. This screen shows how they cancreate a punch card.A merchant can also see track their progress each month based on the number ofpurchases, rewards redeemed etc.25 Loyalty Program

Software SpecificationTechnologiesLanguages: PHP, JavaScript, MySQL, and sqlite.Libraries: php qr code, JSONSDK: Appcelerator TitaniumServer : Apache, MySQLAppcelerator Titanium SDKUsing appcelerator, we are able to code once yet have it available for multiple platforms such asandroid and iOS. We write our client side code in JavaScript and it is compiled to native androidand iOS code.26 Loyalty Program

Download Loyalty Card Card Template ID Download the new loyalty card and store it the phone Punches card QR code and timestamp of last punch. Loyalty point to t

Related Documents:

team xl team 2. t050710-f xl team 3. t050907-f xl team xl team 4. t050912-f xl team xl team 5. t050825-f xl team xl team 6. t050903-f xl team. 2 7. t050914-f xl team xl team 8. t061018-f xl team 9. t061105-f xl team name xl team 10. t060717-f xl team xl team 11. t070921-f xl team xl team xl team 12. t061116-f xl team. 3 13. 020904-f name/# xl .

Customer satisfaction has identified as an important influencer on customer loyalty. Further, customer trust impacted by customer satisfaction which proved that customer satisfaction is an antecedent of customer trust. Moreover, an indirect relationship between customer satisfaction and loyalty through customer trust was observed.

Round 3 Game 1 Game 2 Game 3 Game 4 Team 1 Team 7 Team 8 Team 2 Team 6 Team 5 Team 4 Team 3 Continuing the method, which team plays Team 7 in Round 4? Team . 14 Infection Model This is a simple example of how people in a community might become infected with a disease. O

team members throughout the contest with each team member losing at least 10 pounds, the team name will be placed in a drawing for one of three grand prizes. The First Team drawn will win 250 each, The Second Team drawn, 500 per team member, and the Third Team drawn will win 1,000 per team member. Team CAVHCS is already off to a great start. The

U13 GIRLS DIVISON 1 6 teams 3 game round-robin with one cross-over After round-robin, 1 v 1, 2 v 2, 3 v 3 Game 1 Game 2 Game 3 Total Place Field Home Score Away Score Team Pts /- Saturday 10:30am Burnett 1 Team A Team B Orange Pool 10:30am Burnett 2 Team D Team E A Richmond FC Strikers 12:00pm Boyd Red Team C Team F B CMF Xtreme 3:30 pm Burnett 1 Team F Team D C Comox

Tim Moore 2006 (Third Team) Todd Ptacek 2007 (Second Team) Patrick Smyth 2009 (First Team) Andrew Hills 2012 (Third Team) Logan Renwick 2013 (Second Team) 2013 - 60m Hurdles, Indoor 4x400m Relay, 2014 (First Team) Women Theresa Rice 2009 - 3,000m, 10,000m1989 (First Team - XC) Alison Klemmer 1999 (Third Team) 2000 (Second Team)

of the customer. We define customer needs and we indicate briefly how they are tied to design goals and design actions. We then focus on each of the three steps in the measurement and analysis of QFD's customer input: (1) identifying customer needs, (2) structuring customer needs, and (3) setting priorities for customer needs.

Game Design Document Template Team Name Team Code Team Member #1 Team Member #2 Team Member #3 Team Member #4 Game Title What will your game be called? How does the name of your game help potential players to recognise what the game might be about? Game Description Think of this as a marketing exercise: