Académique Documents
Professionnel Documents
Culture Documents
com
Software Requirement
Specifications v1.0.0
Phase 1
RiotGames.com
Table of Contents
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.
1.0 Introduction
2.1 Assumptions
• LeagueofLegends.com will operate on a cluster running a Linux operating system, using the nGinx
web-server through a FastCGI implementation
• The LeagueofLegends.com application client will operate on the following browsers on all common
operating systems
• Internet Explorer (6.x, 7.x)
• 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
3.4 Maintainability
• 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
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 end-
user 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
3.6.1 Login
Requirement Description
ID 1
Type Component
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.2 Register
Requirement Description
ID 2
Type Component
1) Username and password provided by the user during registration will be used
to log-in to the system in the future
2) CAPTCHA images will be used during registration
3) Registration form must have real-time AJAX validation. Server must process
additional validation after submission
4) After creating an account, the user will receive a registration confirmation E-
Mail. The user must confirm their account by clicking a link that is contained
within the confirmation E-Mail
5) Upon completion of registration process, the user will receive another E-Mail
welcoming them to the community
6) The user will automatically be logged into the website after confirming their
E-Mail address
7) 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
8) Registration elements
First Name M
Last Name M
Password M
Confirm Password M
Security Question M
Security Answer M
Address 1 M
Address 2 O
City M
State M
Zip M
E-Mail Address M
Username M
Requirement Description
ID 3
Type Component
1) When a user enters the gallery section, they are shown a list of all galleries
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
2) 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
3) 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
4) 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
5) 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
6) Images will be searchable by tags, date, rating, the user who uploaded the
image, image name, number of comments, etc.
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.4 Video
Requirement Description
ID 5
Software Requirement Specifications v1.0.0.doc 9
LeagueofLegends.com
Type Component
1) When a user enters the gallery section, they are shown a list of each gallery
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
2) 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
3) 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
4) 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
5) 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
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
Description 1) News, articles, and interviews require approval. All news items will require
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
2) Adding news, articles, and interviews will have a full WYSIWYG editor
3) All items will have the ability to be saved as a draft in the CMS
4) Users will be able to browse, sort, rate, filter news
5) Users will be able to comment and tag news, articles, publish date, and
interviews when required permissions are met
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
Requirement Description
Software Requirement Specifications v1.0.0.doc 11
LeagueofLegends.com
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:
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
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)
• Item stats (health booster, spell damage, attack speed)
• Lore
• 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 Summoners
Requirement Description
ID 22
Type 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
• Players/Team options (2v2, 1v1, etc)
• Size (small, medium, large etc)
• Scenario description
• Bio/Story
• Structures (base, stores, turrets etc)
• 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
3.6.7.5 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
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
3.6.7.7 FAQ
Requirement Description
ID 26
Type Component
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
• Test realms
• Store & purchases
• Teams
• Clans
• Leagues
• Summoners
• Spells
• Account
• Champion items
• Summoner items
• Contests
• Forums
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.8 Forums
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
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
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
• Date submitted
• Author
• Rating
• Suggestion type
• Status & State
o None
o Under review
o Implemented
Requirement Description
ID 34
Type Function
Description 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
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
Requirement Description
ID 37
Type Component
Description 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
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
the ability for tags, trackbacks, pingbacks, comments (allowable by blog
author), and subscriptions
3) The blog author will be able to choose whether or not his blog will be
displayed in the global directory
Requirement Description
ID 45
Type Component
3.6.11 Downloads
Requirement Description
ID 46
Type Component
Requirement Description
ID 48
Type Feature
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.14 Announcements
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.15 Newsletter
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
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
Technical Implementation:
Overview: To provide with strong, scalable and robust solution for LeagueofLegends project.
This implementation is to follow Agile Development Methodologies to deliver quality application with
minimum resource in shortest duration.
The following are some key points we wish to emphasize to conform to Agile Development
Methodologies
9. Use of Framework(CAKE PHP), which separates business logic from presentation logic
10. Focus is on risk assessment and on minimizing project risk by breaking a project into smaller
segments and providing more ease-of-change during the development process
11. Close coordination with client to assess and verify flow of programming the way
desired
12. Use of Object Oriented Programming
13. Use of zend coding standards to maintain code cleanliness
14. Use of Whiteboards, sticky notes and Trac
15. Iterative Project Management
16. Code maintenance in repository – sub version (svn)
17. PHP documentor for post production code reference
18. Flash tutorial for visual end user reference with bubble prompts and voice explanations
as necessary.
Module 1:
UI / presentation layer: Conversion of psds provided by client into xml / xslt rendering to browser using
JavaScript use of ctp files to present the xml data.
Use of Ajax libraries like (J-Query / Ext-js) for user friendly data presentation
1. Indexes doesn't update upon execution .To update the index, we have to rebuild it
Software Requirement Specifications v1.0.0.doc 24
LeagueofLegends.com
2. UTF8 is not supported natively. All of the analyzers need PCRE (Perl-compatible regular expressions) library
to be compiled with UTF-8 support turned on. PCRE UTF-8 support is turned on for the PCRE library sources
bundled with PHP source code distribution, but if shared library is used instead of bundled with PHP sources,
and then UTF-8 support state may depend on operating system. We need to check UTF-8 support on PCRE.
3. Localized data sets: Use of I18n library in-built in cakePHP, creation of language files with .po extension in
appropriate folders and serving with in app_controller.
Module 2
Authentication: Use of cakePHP ACL alongside Auth component to implement app level / method level access
restrictions. Data validation using Ajax during registration process to ensure COPPA compliance. Standard
configurations for registration process like e-mail verification.
Module 3:
Use of Ext-js gallery creation and image upload with sorting to enhance user experience. Use of modal windows
to display images uploaded to gallery using JQuery. JQuery slide show with carousel effect to give smooth
image transitions. Other standard features like moderation , commenting and rating will be provided. Rating to
be restricted by IP and Ajax is employed to eliminate page load while voting.
HTML code block displayed for embed in other websites, watermarking can be enabled to prevent image
copyright issues.
Module 4:
Multi video upload along with tagging and embed code will be provided each video can be mark for moderation
or auto approval based on admin configuration. To support standard video format play back on web interface
auto conversion of file formats using FFMPEG preferred.
Module 5:
Module 6:
Maps: Need to create a functional prototype to understand the flow of this feature upon clarification on
exact functionality this feature will be programmed.
Lore & Bestiary: Needs similar guidance from client according to feedback and functional prototype
these sections will be programmed
Faq: An accordion list of FAQ items along with answers will be shown in user interface. Faqs can be
created through admin panel.
Patch Notes: We assume that this will be static data along with some file attachments if necessary
about a game. Admin interface will be provided for adding patch notes and upload files which would be
presented as download links in user interface.
Module 8:
A Basic forum application as per specification will be provided . Forum avatars will be fetched from
summoner. Avatars can be modified in user profiles. The standard features of mark as read , reply to post
, create a thread will be provided staff , moderators will be given special privileges.
Module 9 :
Suggestions can be added to the system which would be listed with link to profile of user. Module
will be coded as per requirement
Player Profiles: Centralized location or cpanel for quick jump to sections. User panels with
latest data with read more links will be provided. Drag drop feature to be implemented to make it appear
like a dashboard.
Player Blog / Company Blogs: standard blog features with privacy setting will be
implemented
Module 10: Categorized download section with download numbers will be implemented
Module 11: All global features to be implemented as components / helpers for reusability
Module 12: Fansite – support user group will be modified on e-mail verification.
Suggested change : Meta tag API key can be provided to user this when placed within the
Fansite a crawler can be implemented to verify the same.