Beruflich Dokumente
Kultur Dokumente
Target release
Mobile
Epic
Document status
Published
Document owner
Lenny Whitehead
Designer
Aaron
Developers
QA
Not sure
Goals
Reproduce the existing functionality of RewardsCorp public website but mobile friendly
Assumptions
JSON will be passed back and forth rather than paramater URLs
Requirements
#
Title
User Story
Importance
ASP.Net Page
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
New member
signs up by
entering
details and
cheque
Must Have
Members/AddMember
api/membership/addMember
Member
views their
stored details
Must Have
Members/MyDetails
api/membership/myDetails
Member
updates their
stored details
Must Have
Members/EditMember
api/membership/editMember
Member
changes their
password
Must Have
Members/ChangeMemberPassword
api/membership/changePassword
Member
views their
account
balance
Must Have
Members/ManageRewards
api/rewards/accountBalance
New
PHP
page
Done?
Tested?
Member
views their
account
history
Must Have
Members/AccountHistory
api/rewards/accountHistory
Member
registers new
cheque
rewards via
serial number
Must Have
Members/AssignRewards
api/rewards/registerCheque
10
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
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
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,
"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,
"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",
"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",
"currencydescription": "currency
description",
"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