www.RiotGames.com Software Requirement Specifications v1.0.0 Phase 1
Confidential © 2008 Riot Games
LeagueofLegends.com LeagueofLegends.com Software Requirements Specifications
Ver. No.: 1.0.0
Date: 09/02/2008
Riot Games Inc
RiotGames.com
DOCUMENT RECORD LIST
Version v1.0.0
Date
Mod By
Comments
09/02/2008
Robert Hornbek & Eric Han & Billy Leung & Steve Mescon
Initial Document
The enclosed material is proprietary to Riot Games. This material is presented for the purpose of evaluating services and may not be disclosed in any matter to anyone other than the addressee and employees or authorized representatives of Riot Games Inc.
Table of Contents Software Requirement Specifications v1.0.0.doc
2
LeagueofLegends.com
1.0 Introduction 1.1 Overview of the Requirement Specifications Document This document specifies the software requirements for LeagueofLegends.com which will form the base for further design and development of the League of Legends community portal 1.2 Scope of the Project The objective for this project is to create an online community to support the League of Legends game General Description
2.0
2.1 Assumptions The following assumptions will be made when considering bids •
Log-in and SSI (Single-Sign-in) API and documentation will be provided
•
A development environment will be provided
•
Any required software packages will be provided
•
Development environment will be pre-configured. Server configuration and administration will not have to be done
•
Back-end API information and documentation will be provided
•
Graphic designs may be provided
2.2 Environment Imposed •
LeagueofLegends.com will operate on a cluster running a Linux operating system, using the nGinx web-server through a FastCGI implementation
3.0 Requirement Specifications 3.1 Operational Requirements •
The LeagueofLegends.com application client will operate on the following browsers on all common operating systems •
Internet Explorer (6.x, 7.x)
•
Firefox (1.5.x.x, 2.0.x.x, 3.0.x.x)
•
Safari (3.x)
Software Requirement Specifications v1.0.0.doc
3
LeagueofLegends.com 3.2 Security Requirements •
Security configuration must be present to provide granular user and group access permissions. Proper authentication will be done for various levels of guests, various levels of staff members, and registered users
•
All input must be sanitized and flexible
•
No information will ever be removed or deleted from the database. Changes will result in new records being created
3.3 Reliability •
Graceful exit on abnormal inputs and conditions
•
Maintain consistency of system data
3.4 Maintainability •
Must use development standards for the entire site
•
Availability of documentation from design phase to completion phase
•
Site configuration system must be developed, no hard-coded configuration elements
•
All applications will use MySQL 5.x as the standard database engine
•
All HTML code must conform to XHTML 1.0 standards
•
All server-side scripts must be written in PHP, and follow the Zend coding standard and PHPDocumentor documentation standards
•
Any client-side scripts must be written in standards compliant JavaScript
3.5 Technical Requirements •
All back-end and server-side scripts must be written in PHP 5.x using a mainstream, pre-approved PHP development framework, (CodeIgnite, Zend, Symfony, etc)
•
All PHP must be written to Zend standards and be object-oriented
•
Website search must be powered by Lucene SOLR or Lucene
•
All systems must be supported by a secure API that can be exposed to other applications
Software Requirement Specifications v1.0.0.doc
4
LeagueofLegends.com
3.5.1User Interface/Presentation Layer Localization: Current system will be designed in the English language and in such a way that it can be easily localized into other languages. All error messages, normal messages, alerts, UI text, and other information will be stored in localized data sets Performance: The application must be optimized for performance from the perspective of both the enduser and hardware infrastructure. Tables must be efficiently designed with indexes on necessary fields. SOLR or Lucene will be used instead of MySQL full-text search for all search-related functionality. OPCode caching will be used to cache compiled PHP scripts in memory. All output must be cached in memory or on disk for efficient delivery UI Scripting: All XML/XSL/XSLT/CSS/HTML/JavaScript must be optimized for cross-browser support
Software Requirement Specifications v1.0.0.doc
5
LeagueofLegends.com
3.6 Functional Requirements 3.6.1Login Requirement Description ID 1 Type Component
Software Requirement Specifications v1.0.0.doc
6
LeagueofLegends.com Description
1) To log in, members must enter an account name and password combination 2) If the account name and password entered do not match the account
name/password retrieved by the API, an error will be displayed and the member will not be allowed to log into the website 3) User log-in and log-out will be handled using PHP sessions 4) Once logged in, a user will have their appropriate group permissions 5) “Remember me” will be available to the user for easy and fast log-in if the user sets or selects this option. Whenever a user visits the website to log-in, they will be logged in automatically 6) Users will have an option to retrieve their username and password if they do not remember their information
3.6.2Register Requirement Description ID 2 Type Component
Software Requirement Specifications v1.0.0.doc
7
LeagueofLegends.com Description
New User Signup
1) Will be used when the user does not already have a League of Legends account
2) Any user can register a new account. The age limit for web participation is 13 years old for COPPA compliance
3) Username and password provided by the user during registration will be used to log-in to the system in the future 4) CAPTCHA images will be used during registration 5) Registration form must have real-time AJAX validation. Server must process additional validation after submission 6) After creating an account, the user will receive a registration confirmation EMail. The user must confirm their account by clicking a link that is contained within the confirmation E-Mail 7) Upon completion of registration process, the user will receive another E-Mail welcoming them to the community 8) The user will automatically be logged into the website after confirming their E-Mail address 9) Each E-Mail address will be unique, where only one E-Mail can be associated to an account and cannot be connected to multiple accounts 10) Registration elements Registration Element
Mandatory/Optional
First Name
M
Last Name
M
Password
M
Confirm Password
M
Age Check
M
Security Question
M
Security Answer
M
Address 1
M
Address 2
O
City
M
State
M
Zip
M
E-Mail Address
M
Confirm E-Mail Address
M
Username
M
3.6.3Images & Gallery 3.6.3.1
Show and Browse Images
Software Requirement Specifications v1.0.0.doc
8
LeagueofLegends.com Requirement Description ID 3 Type Component Description
Official Galleries
1) When a user enters the gallery section, they are shown a list of all galleries
2) 3) 4) 5) 6)
with a title, teaser information, and thumbnails for each gallery. The gallery section must be paginated to support additional galleries. n galleries are shown initially with the user being able to increase the number of galleries displayed per page The user will be able to search and sort galleries that contain images that match certain criteria such as the name or date of an event Upon selecting a gallery, the user will be shown up to n thumbnails of images within that gallery, with the ability to choose additional images per page Each thumbnail will have some descriptive information such as the date the image was added to the gallery, the image rating, and which staff member added the image to the gallery Once an image is clicked, the visitor is taken to the “show single image” page. The single image page will be the same for official images as user submitted images Images will be searchable by tags, date, rating, the user who uploaded the image, image name, number of comments, etc.
Show Single Image 1) Once a user selects an image to view, they will be taken to a single image page 2) The single image page will have all of the relevant information about the image including the image title, description, tags, rating, uploader, comments, any relevant content of which the image is part of: guides, replays, etc. 3) Users will be able to comment on and rate each image 4) Moderators will be able to disable comments and rating on an image. If comments are not enabled, the UI will adjust to completely remove the comment option 5) Images will have an embed feature, so they can easily be embedded into other websites and social network pages
3.6.4Video
Software Requirement Specifications v1.0.0.doc
9
LeagueofLegends.com Requirement Description ID 5 Type Component Description
Official Galleries
1) When a user enters the gallery section, they are shown a list of each gallery
2) 3) 4) 5)
with a title, teaser information, and thumbnails for each gallery. Ten galleries are shown initially, with the user being able to increase the number of galleries displayed per page The user will be able to search and sort galleries that contain images that match certain criteria such as the name or date of an event Upon selecting a gallery, the user will be shown up to 12 thumbnails of videos within that gallery with the ability to choose additional videos per page Each thumbnail will also have some descriptive information, such as the date the video was added to the gallery, the video rating, and which staff member added the video to the gallery Once a video is clicked, the visitor is taken to the “show single video” page. The single video page will be the same for official videos as user submitted videos
Show Single Video
1) Once a user selects a video to view, they will be taken to a single video page 2) The single video page will have all of the relevant information about the video including the video title, description, tags, rating, uploader, comments, any relevant content which the video is part of 3) Users will be able to comment on and rate each video if the users have the appropriate permissions to do so 4) Moderators will be able to disable comments or ratings on a video. If comments are not enabled, the UI will adjust to completely remove the comment option 5) Videos will have an embed feature, so they can easily be embedded into other websites and social network pages 6) When a user selects to watch a video, a video player will be launched with controls for the user such as play or pause 7) The user will have the ability to download the video in full quality format
3.6.5News, Articles, and Interviews
Software Requirement Specifications v1.0.0.doc
10
LeagueofLegends.com 3.6.5.1
News Posting System
Requirement Description ID 12 Type Component Description
1) News, articles, and interviews require approval. All news items will require
2) 3) 4) 5)
approval of two appropriate level staff members before they are openly visible on the website, (appropriate will be a user-group white-list). This requirement can be overridden by a root level Administrator Adding news, articles, and interviews will have a full WYSIWYG editor All items will have the ability to be saved as a draft in the CMS Users will be able to browse, sort, rate, filter news Users will be able to comment and tag news, articles, publish date, and interviews when required permissions are met
3.6.6Account Management 3.6.6.1
Account Information & Profile
Requirement Description ID 15 Type Component Description
1) Users will have the ability to edit any of their profile information such as the fields used during registration
2) Changes to password or E-Mail information will require E-Mail validation and secret question confirmation 3) More info TBD
3.6.7Game Information 3.6.7.1
Champion List
Software Requirement Specifications v1.0.0.doc
11
LeagueofLegends.com Requirement Description ID 19 Type Component Description
1) The initial champion page will show the user a list of champions 2) When the user selects a champion it then takes the user to the single champion page
3) The “single champion page” will elaborate on the champion with additional information including:
•
Animated image of the champion Name
•
Champion type Difficulty
• •
Stats (strength, toughness etc. confirm with design)
•
Abilities Bio
•
Play stats
• •
4) There will also be a button that will cross link the viewer to a list of guides, images, video, and forums that relate to the champion
3.6.7.2
Item List
Requirement Description ID 21 Type Component Description
1) The initial item page will show the user a list of items by category 2) When a users mouse hovers over an item, a DHTML popup will list information about the item, such as the item cost, requirements, and basic description 3) When the user selects an item it then takes the user to the single item page 4) The single item page will list the following additional information about the item: • Name of item
• •
Class of item (consumable, basic, legendary)
•
Cost of item Components required to make that item Items that require the specific item as a component
•
Recommended companion items and champions Any relevant media
• • • • 3.6.7.3
Item stats (health booster, spell damage, attack speed) Lore
Summoners
Requirement Description
Software Requirement Specifications v1.0.0.doc
12
LeagueofLegends.com ID Type
22 Component
Description
1) The summoner section will show all information about the summoners in League of Legends 2) More information about summoners will come at a later date
3.6.7.4
Maps
Requirement Description ID 23 Type Component Description
1) The maps page is intended to generate knowledge on our maps and their fine details 2) When the users first enter the maps page they will be given a list of maps accompanied by thumbnail images. They can sort the maps by the following
•
Name (alphabetical) Players/Teams (1v1, 2v2, 3v3 etc)
• • • •
Size (small, medium, large etc)
•
Scenario (destroy the base, capture the flag, death-match etc) Times played by player (based on logged in user profile) Popularity (number of times played by everyone online)
3) After selecting one of the maps, the user will be sent to a map specific page that further defines its qualities
• • • •
Map title/name
• •
Structures (base, stores, turrets etc)
•
• •
Players/Team options (2v2, 1v1, etc) Size (small, medium, large etc) Scenario description Bio/Story Hostiles (creeps, neutrals, and boss monsters). Each of the mentioned mobs will have a link that sends the user to the appropriate bestiary page. Environment (damaging lava, slowing swamps etc) Play stats
4) There will also be a button that will cross link the viewer to a list of guides, images, video, replays, etc and forums that relate to the map
Software Requirement Specifications v1.0.0.doc
13
LeagueofLegends.com 3.6.7.5
Lore
Requirement Description ID 24 Type Component Description
1) The lore of League of Legends will be displayed on this page 2) The page will be broken down in to the following links of lore • • • • •
Champions Items Minions Summoners Maps
3) When users select a lore section, they will be taken to additional information about that category 3.6.7.6
Bestiary
Requirement Description ID 25 Type Component Description
1) The bestiary will be a list of creatures within our game 2) The beasts will be listed alphabetically and the user will have several search functions. •
Map (which map the beast is on)
• •
Level range (level of each beast)
• •
XP reward
•
Family class (elemental, humanoid, etc) Name Gold reward
3) When the user selects a beast, a detailed page will be displayed showing the following • Animated image of the beast
• • • • • •
Beast name Level range (what level variation for the creature) Creature family (which family class they belong too) Lore (back-story to the beast. If applicable) Map (which map they can be found on) Basic attributes o Health o Mana (if applicable) o Attack power o Spell power o XP reward o Gold reward
Software Requirement Specifications v1.0.0.doc
14
LeagueofLegends.com
3.6.7.7
FAQ
Requirement Description ID 26 Type Component
Software Requirement Specifications v1.0.0.doc
15
LeagueofLegends.com Description
1) This will be a compilation of the most frequently asked question regarding League of Legends
2) The page will have an index that breaks the questions down into categories 3) FAQ listings will be organized by category and the index will show the most popular • • • • •
General Game-play Setting & Lore Interface & HUD Champions
• • •
Creeps, mobs and minions
• •
Leagues
• •
Champion items
• •
• •
• •
Test realms Store & purchases Teams Clans Summoners Spells Account Summoner items Contests Forums
4) There will be a search function that finds keywords on the page 5) After the release of any of our Q&A Batches, the questions and answers will 6) 3.6.7.8
be added to the FAQ listing Users will be able to indicate the helpfulness of the FAQ
Patch Notes
Requirement Description ID 27 Type Component Description
1) This page will list all of the patch note versions that can be accessed by clicking on them 2) The first page the users sees will contain the latest patch notes 3) The patch notes will contain the number and date of release, followed by the list of changes made in that patch 4) This section will list all of the patches that have been made 5) The first page will list the latest patch notes
3.6.8Forums
Software Requirement Specifications v1.0.0.doc
16
LeagueofLegends.com Requirement Description ID 28 Type Component Description
1) The message board index will display a list of discussion categories that the administrator can change at any time
2) Once a category is selected, sub-categories will be visible 3) If there are no additional sub categories, the message board will display a list of up to 25 (configurable) topics that are under the current category
4) For each topic, the author, number of replies (posts), last post date, and number of views will be listed, as well as an “has read” indicator
5) On thread view pages, users will have their summoner avatar visible next to each of their posts
6) Forum posts will utilize the global signature system 7) Forum posts will utilize the global bbcode system to format text 8) On this page, a user will have the ability to post a new topic, which will take them to a form to fill out to add a discussion topic
Topic Elements Optional/Mandatory Topic Title M Body M Topic Description O 9) When viewing a topic, the viewing user will have the opportunity to post a response to the topic. Pressing the reply button will take them to a post form similar to the “post new topic” form 10) The topic list will have a treatment to indicate if a staff member made a post in a thread, with the ability to jump to the staff post 11)Users should be able to turn a forum thread into a poll at the time of posting
Software Requirement Specifications v1.0.0.doc
17
LeagueofLegends.com 3.6.9 Suggestions Requirement Description ID 33 Type Component Description
1) The suggestions system will provide a central location for League of Legends players to suggest possible changes to the game, or website
2) Users will be able to share their ideas, vote on ideas, and discuss ideas 3) The most popular ideas may be implemented into the game 4) This system will provide users with the ability to sort or filter by as many
attributes as possible 5) The interface and voting system can be very similar to Digg.com or MyStarbucksIdea.com 6) Suggestions will encompass the following categories with website staff having the ability to create additional categories 7) Each category will have a different modes of display:
• • • • • • •
Champion suggestions Item suggestions Cosmetic suggestions Ability suggestions Game flow suggestions Website suggestions Other
8) The suggestions index might highlight some of the following:
• • • • •
Most recent suggestions Most popular suggestions Most viewed suggestions Most discussed suggestions Suggestions with the most revisions
9) Users will be able to browse by as many fields as possible including: •
Date submitted Author Rating
• •
Suggestion type
• •
Status & State o None o Under review o Implemented
Software Requirement Specifications v1.0.0.doc
18
LeagueofLegends.com
3.6.9.1
Show Single Suggestion
Requirement Description ID 34 Type Function Description
3.6.9.2
1) The display for a single suggestions system will change based on the type of suggestion 2) All suggestions will have a central location that lists any applicable assets such as replays, images, guides, etc 3) Suggestions must be able to have multiple revisions, with the ability to display differences between revisions
Add Suggestion
Requirement Description ID 30 Type Function Description
1) Users will be able to take suggestions in and out of a visible state (publish/un-publish)
2) Newly added suggestions will remain un-published until the author chooses to publish them
3) Suggestion authors will be able to share the ability to edit the post with another user, to work collaboratively 4) Suggestion posts will store all users who made adjustments to the post, and only the original author or a staff member with appropriate permissions can grant or deny specific users access to edit the strategy post 5) Strategy post adding will be a multi-stage logical form, and will have a progress indicator 6) The system will automatically save a users post at regular intervals (60 seconds or so), as well as allow the user to save their progress at any time so they can come back and complete a post at a later date 7) The suggestion adding system will have a single place where a user can add any number of other resources, (images, replays, videos, etc). Once a resource is added at the central location, users will be able to use it anywhere within the suggestion 8) There will be several multi-stage forms for adding suggestions depending on the suggestion type. Complete map and field list will be provided at a later date
Software Requirement Specifications v1.0.0.doc
19
LeagueofLegends.com
3.6.9.3
Player Profiles
Requirement Description ID 37 Type Component Description
3.6.9.3.1
1) The player profile is a single section that encompasses all available information about that player and their playing history 2) Some player profile fields will be editable through the account management section 3) The player profile will be separated into several sections, the player blog, general information, player statistics, and player achievements 4) The player profile will also have a feed with more information about the player such as their most recent forum posts, etc
Player Blog
Requirement Description ID 38 Type Component Description
1) Each player will have a blog or “summoner journal” that they can add content to
2) The player blog system will be similar to popular blogging software, and have 3)
the ability for tags, trackbacks, pingbacks, comments (allowable by blog author), and subscriptions The blog author will be able to choose whether or not his blog will be displayed in the global directory
3.6.10Company Blogs Requirement Description ID 45 Type Component Description
1) Company blogs will be built similar to standard blog software 2) Site administrators will be able to create multiple sections for blog postings to be under
3) Blog postings will have the same global features as any other text-post in the website, including tags, comments, etc 4) Blog posting on the website will require approval, similar to news
Software Requirement Specifications v1.0.0.doc
20
LeagueofLegends.com
3.6.11Downloads Requirement Description ID 46 Type Component Description
1) The download system of the LeagueofLegends.com website will provide a 2) 3) 4)
central location for users to download files such as the game client, and other utilities Downloads will be organized into categories, with the ability to add/edit/change categories granted to the website administrator through the CMS Hot-linking protection will be available on a per-file basis Downloadable files will be added by staff members only, and subject to appropriate user group permissions
3.6.12Global Features Requirement Description ID 48 Type Feature Description
Global Component Features •
•
•
Granular permission system o
All areas must be protected by a granular permission system. (View, Edit, Post, Reply, Delete for each user group, as well as any other section-specific permission options, such as override news review requirements)
o
The user will be segregated into multiple groups. User groups
Text areas o
Any area that allows a user to edit text will contain a basic WYSIWYG editor
o
Specific areas may require a more advanced editor
Tags o
•
All objects, (blog post, blog comment, gallery, image, etc), will support the use of tags for categorization
Subscription o
Any component or object will have a subscription option
o
Users will be able to set a subscription method per subscription (RSS, E-Mail, SMS, IMs)
o
Users can change subscription options in account
Software Requirement Specifications v1.0.0.doc
21
LeagueofLegends.com management section o
•
Abuse reporting o
•
•
Many objects will be subject to rating, more information regarding rating is to be determined. Rating will be a thumbs up/down system, with a visual treatment that applies globally
Bbcode o
Any text will be able to be formatted in bold, italics, underline, or list items with bbcode
o
There will be additional custom Bbcode necessary for the integration of widgets
Send to friend/share with social networks o
•
Any user submitted content will be supported by abuse reporting functionality. An abuse management system must later be developed
Ratings o
•
The subscription option will also be able to function like an on-site bookmark, maintaining a list of site content that you are subscribed to for further review (available within account management pane)
Any user submitted content will have the functionality to send to a friend. A standardized API will be developed so that the send to friend/add to MySpace/add to Facebook functionality can be easily added to any page, without concern regarding the page content or function
Comments/Reply o
Wherever correct permissions are present, users will be allowed to comment on an object. The comments system will be designed in such a way that comment functionality can be added to any page without concern for the content of the page
o
Comments will be threaded for easy replies
o
Pages that cannot fit into a single page will be separated into multiple pages until all information is presented
o
Comments will be able to be rated by any user who is logged in, with comments rated below 0 being “hidden”
•
See: Digg.com
Pagination o
Any set of items that has too many to fit on one page, must be paginated
Software Requirement Specifications v1.0.0.doc
22
LeagueofLegends.com
3.6.13Fansite Support Requirement Description ID 49 Type Component Description
1) The fan-site support section will show a list of all official fan-sites, as well as information regarding the benefits of being an official member, and a link to download the fan-site kit 2) There will be a list of established rules that fan-sites must abide by for our website to feature them 3) Links to supported fan sites 4) A form will be available for users to apply to become a fan site, more information to be determined. Once the user is accepted into the fansite program, they will receive an E-Mail, and their user-group will be changed to indicate that they are a official fansite owner
3.6.14Announcements Requirement Description ID 50 Type Component Description
There will be an announcement ticker that displays information globally. Staff members with appropriate permissions will be able to add an announcement for n duration
3.6.15Newsletter Requirement Description ID 52 Type Component Description
The newsletter will be updated information from our website that will be sent directly to subscribers E-Mail address When a user first registers they will be given the option to subscribe to the newsletter via checkbox. If the user does not choose to subscribe to the newsletter they will then be given the option to later subscribe when they log into the website
3.6.16Custom Pages
Software Requirement Specifications v1.0.0.doc
23
LeagueofLegends.com Requirement Description ID 52 Type Component Description
The CMS should have the ability for staff members with appropriate permissions to create custom pages using various styles where appropriate
Software Requirement Specifications v1.0.0.doc
24