Sie sind auf Seite 1von 12

Mobile Friendly Rewards

Target release

Mobile

Epic
Document status

Published

Document owner

Lenny Whitehead

Designer

Aaron

Developers

Lenny, Nino, Aaron

QA

Not sure

Goals
Reproduce the existing functionality of RewardsCorp public website but mobile friendly

Background and strategic fit


Moves toward a PHP front end and .NET API / MySQL back end

Assumptions
JSON will be passed back and forth rather than paramater URLs

Requirements
#

Title

User Story

Importance

ASP.Net Page

New MVP Route

Existing Member Log In

Registered
user logs in
and is
authenticated

Must Have

Members/Login

api/authentication/authenticate

Forgotten Password

User clicks
forgotton
password link
and gets sent
an email

Must Have

Members/RetrieveMemberPassword Email from PHP

New Member Signup

New member
signs up by
entering
details and
cheque

Must Have

Members/AddMember

api/membership/addMember

My Account -> Member Details

Member
views their
stored details

Must Have

Members/MyDetails

api/membership/myDetails

My Account -> Edit Details

Member
updates their
stored details

Must Have

Members/EditMember

api/membership/editMember

My Account -> Reset Password

Member
changes their
password

Must Have

Members/ChangeMemberPassword

api/membership/changePassword

Rewards -> Account Balance

Member
views their
account
balance

Must Have

Members/ManageRewards

api/rewards/accountBalance

New
PHP
page

Done?

Tested?

Rewards -> Account History

Member
views their
account
history

Must Have

Members/AccountHistory

api/rewards/accountHistory

Rewards -> Register Awards

Member
registers new
cheque
rewards via
serial number

Must Have

Members/AssignRewards

api/rewards/registerCheque

10

Rewards -> Transfer Rewards

Member
transfers
reqyrds to
another
member

Must Have

Member/TransferRewards

api/rewards/transferRewards

11

Accommodation/SearchRegion

User
searches for
availability by
region

Must Have

Accommodation/Search

api/search/regions

12

Accommodation/SearchLocation

User
searches for
availability by
location

Must Have

Accommodation/Search

api/search/locations

13

Accommodation/SearchResort

User
searches for
availability by
resort

Must Have

Accommodation/Search

api/search/resorts

14

Accommoodation/SearchCountries User
searches for
availability by
country

Must Have

Accommodation/Search

api/search/countries

15

Bookings/CreateBooking

User to clicks
book to
create a
booking

Must Have

Bookings/CreateBooking

api/booking/create

16

Bookings/CancelBooking

User elects to
cancel a
booking

Must Have

Bookings/CreateBooking

api/booking/cancel

17

Bookings/MakePayment

User pays for


a booking

Must Have

Bookings/BookingPayment.aspx

api/booking/payment

18

Voucher/PurchaseVoucher

Member
Must Have
purchases
movie or flight
vouchers

BuyVoucher

api/productvoucher/orderVoucher

19

Voucher/RetrieveVoucherUsage

Member
requests to
view voucher
usage

BuyVoucher

api/productvoucher/voucherUsage

Must Have

User interaction and design


Not provided so assume free reign other than the slider

JSON
Below is a list of requests and responses for API calls:
Route

Request

api/authentication/authenticate

{
"UserName": "Lenny",

Response

"PassWord": "Password",
"PromotionAlias": "Rewards"
}

"IsAuthenticated": true
}

api/membership/addMember

"MemberId": 0,
"Title": "Mr",
"FirstName": "Lenny",
"Surname": "Whitehead",
"DateOfBirth":
"2015-09-29T11:24:44.7322072+10:00",
"Address": "95 Marine Parade",
"Suburb": "Southport",
"State": "Queensland",
"PostCode": "4215",
"Country": "Australia",
"PhoneNumber": "0435499700",
"AlternativeNumber": "",
"EmailAddress": "lenny.whitehead3@ignitetra
vel.com",
"UserName": "lenny_promo_29",
"Password": "password",
"CurrencyId": 1,
"SerialNumber": null,
"IsActive": true,
"IsReceiveEmail": true,
"PromotionId": 28,
"FavDest": null,
"DateCreated": null,
"CreationMethod": null
}
Members/MyDetails

{
"MemberId": 12345,
"PromotionAlias": "Rewards"

"true"

"MemberId": 123,
"Title": "Mr",
"FirstName": "Lenny",
"Surname": "Whitehead",
"DateOfBirth":
"2015-09-29T11:24:44.7322072+10:00",
"Address": "95 Marine Parade",
"Suburb": "Southport",
"State": "Queensland",
"PostCode": "4215",
"Country": "Australia",
"PhoneNumber": "0435499700",
"AlternativeNumber": "",
"EmailAddress": "lenny.whitehead3@ignitetravel.c
om",
"UserName": "lenny_promo_29",
"CurrencyId": 1,
"SerialNumber": null,
"IsActive": true,
"IsReceiveEmail": true,
"PromotionId": 28,
"FavDest": null,
"DateCreated": null,
"CreationMethod": null
}

Members/EditMember

Members/ChangeMemberPassword

"MemberId": 123,
"Title": "Mr",
"FirstName": "Lenny",
"Surname": "Whitehead",
"DateOfBirth":
"2015-09-29T11:24:44.7322072+10:00",
"Address": "95 Marine Parade",
"Suburb": "Southport",
"State": "Queensland",
"PostCode": "4215",
"Country": "Australia",
"PhoneNumber": "0435499700",
"AlternativeNumber": "",
"EmailAddress": "lenny.whitehead3@ignitetra
vel.com",
"UserName": "lenny_promo_29",
"CurrencyId": 1,
"SerialNumber": null,
"IsActive": true,
"IsReceiveEmail": true,
"PromotionId": 28,
"FavDest": null,
"DateCreated": null,
"CreationMethod": null
}

"MemberId": 123,
"Title": "Mr",
"FirstName": "Lenny",
"Surname": "Whitehead",
"DateOfBirth":
"2015-09-29T11:24:44.7322072+10:00",
"Address": "95 Marine Parade",
"Suburb": "Southport",
"State": "Queensland",
"PostCode": "4215",
"Country": "Australia",
"PhoneNumber": "0435499700",
"AlternativeNumber": "",
"EmailAddress": "lenny.whitehead3@ignitetravel.c
om",
"UserName": "lenny_promo_29",
"CurrencyId": 1,
"SerialNumber": null,
"IsActive": true,
"IsReceiveEmail": true,
"PromotionId": 28,
"FavDest": null,
"DateCreated": null,
"CreationMethod": null
}

{
"MemberId": 12345,

"true"

"NewPassword": "MyPas&&32"

}
api/rewards/accountBalance

{
"MemberId": 12345,

"CurrencyDescription": "Australian Dollars",

"PromotionAlias": "Rewards"

"DisplayRewards": true,

"RewardType": 1,
"ChequePromotions": {
"Rewards.Core.EntityClasses.PromotionEntity":
[
{
"_fieldsData": [
[
100,
100
],
[
"2015-08-18T08:54:00",
"2015-08-18T08:54:00"
],
[
2101,
2101
],
[

100,
100
],
[
"2017-08-19T14:14:00",
"2017-08-19T14:14:00"
],
[
"2018-02-19T14:14:00",
"2018-02-19T14:14:00"
],
[
"9058460018 ",
"9058460018 "
],
[
34361,
34361
]
],
"_fieldsFlags": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"_fieldsState": 1,
"_fieldsIsDirty": false,

"_name": "ChequeSummaryEntity",
"_isNew": false,
"_validator": null,
"_objectID":
"2e6929ee-dbea-465e-a6a7-03e0d40c85c5",
"_relatedEntitySyncInfos": null,
"_field2RelatedEntity": null,
"_concurrencyPredicateFactoryToUse":
null,
"_dataErrorInfoError": "",
"_dataErrorInfoErrorsPerField": null,
"_typeDefaultValueProvider": null,
"_authorizerToUse": null,
"_auditorToUse": null
}
]
},
"Total": 1451
}
api/rewards/accountHistory

{
"MemberId": 12345,

"MemberCurrency": "Australian Dollars",

"PromotionAlias": "Rewards"

"DisplayRewards": true,

"RewardType": 1,
"ChequePromotions": null,
"ChequeTransactionSummary": {
"Rewards.Core.EntityClasses.PromotionEntity":
[
{
"Summary": {
"_fieldsData": [
[
500,
500
],
[
"2015-08-19T14:04:00",
"2015-08-19T14:04:00"
],
[
1,
1

],
[
500,
500
],
[
"2017-08-19T14:14:00",
"2017-08-19T14:14:00"
],
[
"2018-02-19T14:14:00",
"2018-02-19T14:14:00"
],
[
"1144214783 ",
"1144214783 "
],
[
34361,
34361
]
],
"_fieldsFlags": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],

"_fieldsState": 1,
"_fieldsIsDirty": false,
"_name": "ChequeSummaryEntity",
"_isNew": false,
"_validator": null,
"_objectID":
"9cf6421c-07fc-4690-bc8a-9fef7669d45f",
"_relatedEntitySyncInfos": null,
"_field2RelatedEntity": null,
"_concurrencyPredicateFactoryToUse":
null,
"_dataErrorInfoError": "",
"_dataErrorInfoErrorsPerField": null,
"_typeDefaultValueProvider": null,
"_authorizerToUse": null,
"_auditorToUse": null
},
"Transactions": [
{
"Actioned": "2015-08-19T14:04:00",
"BookingId": 0,
"MemberName": "",
"Assignment": false,
"LocationExtrasOnly": false,
"Value": 500
}
]
}
]
},
"TotalRewards": 4451,
"RewardsExpired": 0,
"RewardsRedeemed": 3000,
"RewardsAvailable": 1451
}
api/rewards/registerCheque

{
"MemberId": 12345,

"true"

"SerialNumber": "8787898789878"

api/rewards/transferRewards

{
"TransferringMemberId": 12345,

"TargetMemberId": 23322,
"SerialNumber": "8787898789878",

"A message indicating the results"


}

"TargetMemberSurname": "Whitehead",
"TransferValue": 500
}
api/productvoucher/orderVoucher

{
{
"ProductId": 123,
"A message indicating the results"
"MemberId": 48872,
}
"Quantity": 100,
"CreditCardDTO": [
{
"CardType": "AMEX",
"CardExpiryMonth": 4,
"CardExpiryYear": 16,
"CardName": "LeonardWhitehead",
"CardNumber": "4585944447376642",
"CardNumberSanitized":
"4585XXXXXXX6642",
"CardCCV": 123
}
]
}

api/productvoucher/voucherUsage

{
"MemberId": 12345,

"SerialNumber": "162726211",

"ProductId": 23322,

"AmountAvailable": 100,

"Quanity": 10

"AmountToBeUsed": 20,

"AmountRemaining": 80,
"TotalRewardsAvailable": 100,
"CurrencyDescription": "Australian Dollar",
"CashPartPayment": false,
"CashAmount": 0
}

api/booking/payment

{
"bookingid": 1,

"message": "message",

"advertid": 1,

"issuccess": "false",

"netrateoverride": 100,

"paymentid": "null"

"advertcode": "test",

"bookingresortextras": [
{
"description": "testing1",
"resortextraid": 1,
"totalcost": 100,
"quantity": 1
},
{
"description": "testing1",
"resortextraid": 1,
"totalcost": 100,
"quantity": 1
}
],
"bookinglocationextrarewards": [
{
"description": "testing",
"locationextraid": 111,
"longdescription": "testiiiiiiiiiing",
"maxrewards": 10,
"publishedrate": 10,
"quantity": 2,
"rewardstouse": 1002,
"termscondition": "termsandcondition",
"usefrom": "015-09-30",
"useto": "2015-09-30",
"youpay": 123
}
]
}
api/booking/cancel

bookingid (integer)

boolean

api/booking/create

{
"isupdate": true,
"resortid": 1,
"locationid": 1002,
"roomtype": "room type",
"rewardstypeid": "null",
"memberid": "null",
"selectedpromotion": 0,
"selectedrateid": 0,
"checkin": "2015-12-25",
"bookingid": "null",
"numberofnights": 2,
"adults": 2,
"children": 2,
"infants": 5,
"user": "null",
"title": "Mr.",
"givennames": "Willie",
"surname": "Wonka",
"dob": "2000-01-01",
"address": "ChocolateFactory",
"suburb": "Urbandub",
"state": "UnitedState",
"postcode": "1772",
"country": "Dressrosa",
"contactphone": "09123123123",
"alternatephone": "32132132190",
"email": "email@email.com",
"notes": "thisisanote",
"specialrequest": "request",
"currency": 2,
"promotion": 1,
"advertcode": "ABC",
"advertid": 1

"message": "message",
"issuccess": "false",
"seasonid": "null",
"bookingid": 1
}

api/accommodation/availability

{
"searchfrom": "2015-01-01",

"searchfrom": "2015-01-01",

"resortid": 1,

"resortid": 1,

"ignoreconsultantrate": "false",

"ignoreconsultantrate": "false",

"promotionid": 1,

"promotionid": 1,

"currencyid": 1,

"currencyid": 1,

"availability": [

"availability": [

{
"day": 1,

"day": 1,

"month": 2,

"month": 2,

"year": 2016,

"year": 2016,

"resortid": 1,

"resortid": 1,

"nights": 2,

"nights": 2,

"promotionid": 1,

"promotionid": 1,

"publishedratetitle": "sample",

"publishedratetitle": "sample",

"rewardtitle": "reward title",

"rewardtitle": "reward title",

"yousavetitle": "yousave title",

"yousavetitle": "yousave title",

"resortname": "name of resort",

"resortname": "name of resort",

"locationname": "name of location",

"locationname": "name of location",

"currencydescription": "currency
description",

"currencydescription": "currency description",


"resortimage": "blah_blah.png",

"resortimage": "blah_blah.png",
"resortcollectionimages":
"<img></img><img></img>",

"resortcollectionimages":
"<img></img><img></img>",
"rating": "rating",

"rating": "rating",
"phone": "phone",
"phone": "phone",
"unavailable": "true",
"unavailable": "true"
"rateavailabilities": null
}
}
]
]
}
}

Not Doing
The slider control for availabilty will not be reproduced in the mobile friendly verision

Das könnte Ihnen auch gefallen