Version <0.06>
Internal Use Only
Page 1 of 12
Revision History Date
Version
Description
Author
04/11/2013
0.01
First cut draft for the project- based on initial discussion with Eric
Swati
04/12/2013
0.02
Post discussion with Eric on server specific requirements
Swati
0414/2013
0.03
Post discussion and review with Eric on overall SRS
Swati
04/15/2013
0.04
Minor changes as suggested by Eric and also addition of mockups(reviewed with Eric)
Swati
04/16/2013
0.05
Further changes suggested by Eric on mockups and processes which do not have UI
Swati
04/19/2012
0.06
Removing calculations for Modified pricelist from this
Swati
document and moving those to process functionality document, based on inputs from Eric.
Approvals The signatures below indicate the acceptance of this document. Approval Role
Approval Mail Header Name
Internal Use Only
(Paste approval emails below)
Page 2 of 12
Table of Contents 1 System Overview..........................................................................................................................4 2 System Description.......................................................................................................................4 2.1 System Boundaries.................................................................................................................5 3 Scope.............................................................................................................................................5 4 Assumptions..................................................................................................................................5 5 Definitions, Acronyms and Abbreviations...................................................................................5 6 Risks ............................................................................................................................................6 7 Functional Requirements..............................................................................................................6 7.1.1 .......................................................................................................................................6 7.1.2 ........................................................................................................................................8 7.1.3 ........................................................................................................................................9 7.1.4 ......................................................................................................................................10 8 Non-Functional Requirements....................................................................................................11 8.1 Usability Requirements........................................................................................................11 8.2 Performance Requirements..................................................................................................11 9 References...................................................................................................................................12 10 Annexure...................................................................................................................................12 10.1 UI Mock-ups Wire Frames................................................................................................12
Internal Use Only
Page 3 of 12
1 System Overview The project is to create a bot (robot-an automated application) that will automate functions for the game Magic The Gathering Online. Currently the game user downloads game client and via this application user connects to game server to play the game online. User opens up a chat window to interact with other users and begin the game. The game as such does not expose its APIs or code. The automated bot application will have following key functions although detailed functionality is listed in subsequent sections of this SRS. -
Open chat windows Respond to game users chat with preset messages Control the inventory of the account Initiate trades (buy/sell/trade/rent) Maintain pricelist Maintaining User credits Maintaining transaction `details Account leveling .
2 System Description
Admin Interface Web user interface for buying paypal credits
Bot Client1 user1
Bot server
Bot Client2 user2
Bot Client 3 user3
Bot settings on SQL Server
Bot Client 4 user4
Bot Client n userN
Game Client (for game user interaction with bot client)
Game server
Internal Use Only
Page 4 of 12
2.1 System Boundaries -
3 Scope -
4 Assumptions 5 Definitions, Acronyms and Abbreviations Term
Definition
Trade
buying and selling together
Rent
Rent is essentially flat fee per month unlimited usage of cards based on deposit, User is anybody that controls the bot using the predefined commands. User doesn’t have direct access to bot. They interact with bot through their game client
User or game user
trigger
Shortcode
words like buy, sell, ttrade, rent, help, etc are trigger words. t hese are entered by the user in the ingame chat to make the bot do specific actions these are words in database reply text like [user] [balance] [cardprice] [cardname] that will be replaced with the value from the database, as related to the user that the message is going to be sent to. For e.g. when a user types BALANCE the reply in db will be listed like Hi [user], Your current balance is [balance]. he would see Hi John, Your current balance is $12.51.
Internal Use Only
Page 5 of 12
6 Risks •
None specifically stated at this stage
7 Functional Requirements 7.1.1 Requirement Description
Bot Server will have following capabilities: •
Ability to configure/set global price adjustment values o o
•
global BUY value adjustment global SELL value adjustment
Ability to maintain information related to Pricelists for the cards o
Current pricelist ( Unique ID, number, Card name , Buy price and
Sell price). It will be updated with results from third party website, every 15 minutes. Expect a large number around 7K new records getting inserted every 15 minutes into Current Pricelist. o
Price modifiers (Unique ID, Card name, Buy price adjustment, Sell
price adjustment) o
Modified pricelist (Unique ID, Card name, Buy adjustment, Sell
Adjustment) (derived from Current Pricelist and Price Modifiers based on two formulae given below). This pricelist will be inserted, every 15 minutes, with adjustments accordingly to the formulae given in the process functionality document (a supporting doc to this SRS document).
o
Pricelist history Records from Modified pricelist will be moved into
this Pricelist history while overwriting existing records and adding datestamp to it.
Internal Use Only
Page 6 of 12
•
Ability to maintain following user information: - User name(captured by bot client when game user opens a chat window, also called ingame chat) - Password (for future use, not needed as of now) - Email id - Credits (maintained and updated through paypal purchase and buy/sell/trade transactions) - Number of warnings - Number of times they have connected to bot - Blacklisted flag Note: Credits and tickets are for now 1:`1. In future we may need to change cash to credit ratio. Credits may not always translate to equivalent dollars, on game applications credits are called as tickets
•
•
Ability for Bot Admin to able to change the availability of the cards. Admin will be provided with the inventory listing for each bot. Quantity at hand and quantity available for trade for each card on each bot client. These quantities may be different. For each card, number of copies of actual cards, and number of copies available for sale. Ability to record all the transaction details for each user transaction o
o
o
o
•
•
Detail such as -user name -card name -type of transaction (buy/sell/trade/rent) -transaction amount -date of the transaction Note: Record as much statistical data as possible, for each transaction, for future analysis and reporting. Note: A separate table for rental expiration and deposit, return (yes/no) will be required Note: For a rent transaction, for rent buy and sell price needs to be logged when card is checked out, and when card is returned/kept we add to transaction the buy and sell price
Ability to balance accounts when there is excess and deficiency o Each bot will have its own user account and each one will have diff inventory levels for each card. For e.g. Card a has quantity of 100 bot 1, quantity of 0 bot 2, account balancing will mean sending 50 from bot 1 to bot 2 so that both have balanced inventory levels. Ability to automatically flag a user from bot client as Blacklist user. The blacklisting will be based on following criteria o
o
If ingame chat window is open longer than 3 min, post "kick warning text from db" to user in chat, delay 15 seconds, if still no activity from user force close chat window, increment users warning level +1, if warning level exceeds 3, then block user in database, as well as perform ingame block user function. If user does more than 30 add or remove card actions in a trade ,
Internal Use Only
Page 7 of 12
post "add and remove excess warning text from db" to user in chat, force close chat window, increment users warning level +1, if warning level exceeds 3, then blacklist the user in database, as well as perform ingame block(blacklist) user function. Assumption Rule
/
Source
Reference Doc
Dependencies Acceptance Criteria Change History Priority / Scope
High / A
7.1.2 Requirement Description
Bot Client will have following features:
Ability to respond with Preset/automated messages for each bot client, as user types in certain commands (listed below):
•
o
o
o
o
o
o
o
• • •
When game user starts chat, bot server will send specific welcome message. When game user writes word “buy” then trade window gets opened up and bot server will send an automated reply > When game user types word “sell”, then trade window gets opened up and bot server will send an automated reply > When game user types word “trade”, ” then trade window gets opened up and bot server will send an automated reply > When game user types word “rent”, then trade window gets opened up and bot server will send an automated reply > When game user types word “help”, bot server will send an automated reply > When game user types then bot server will send automated reply as “ Hi, username. Your balance is $ xx”
Ability to pause and unpause the bot Ability to login to game client on startup or lost connection Ability to monitor game client offline and reestablish connection
Internal Use Only
Page 8 of 12
Assumption Rule
/
Source
Reference Doc
Dependencies Acceptance Criteria Change History Priority / Scope
High / A
7.1.3 Requirement Description
Assumption Rule
User web interface User should be able to buy paypal credits through this interface
/
Source
Reference Doc
Dependencies Acceptance Criteria Change History Priority / Scope
High / A
Internal Use Only
Page 9 of 12
7.1.4 Requirement Description
Admin interface will have
•
•
•
•
•
Assumption Rule
Ability to remotely control each bot. - Manual account leveling - Check what bots are online and whether they are running properly or are facing any problems - Account balancing for each bot by initiating a transaction in a open up a new trade Ability to provide bot client authentication - bot client will attempt to connect to server until admin approves it - The connectivity between bot client and server will be in encrypted form. Ability to check inventory and update (one colulmn In Stock and other Available) - Listing of name of the card and number of those cards, for each bot client Ability to view the pricing and update the price list - For each card, it will display the price(?s) for which each card is selling for Ability to flag manually flag a user as blacklisted
/
Source
Reference Doc
Dependencies Acceptance Criteria Change History Priority / Scope
High / A
Internal Use Only
Page 10 of 12
8 Non-Functional Requirements 8.1 Usability Requirements The following mockups are only to outline the flow and help with visualizing the user interface oriented features. Detailed design stage would reveal further details and/or changes to them.
As provided in the mockups/wireframes zip file
8.2 Performance Requirements •
It is expected that technically unlimited bot clients should be supported. In reality for the first go-live in general there will be 10 bot clients running at the same time.
Internal Use Only
Page 11 of 12
9 References The direct link to the install exe http://mtgoclientdepot.onlinegaming.wizards.com/setup.exe Alternatively you can get the "WIDE BETA VERSION" (not the current version) at http://www.wizards.com/Magic/Digital/MagicOnline.aspx?x=mtg/digital/magiconline/download
10 Annexure 10.1UI Mock-ups Wire Frames -
Internal Use Only
Page 12 of 12