Software Requirements Specification for UMW Blogs Plugin Suite - Prepared by Allie Cropp, Patrick Mullen, Tori Nguyen Computer Science 430 ...

Page created by Linda Newton
 
CONTINUE READING
UMW Blogs                          CROPP, MULLEN, NGUYEN

               Software Requirements Specification for
                             UMW Blogs Plugin Suite

            Prepared by Allie Cropp, Patrick Mullen, Tori Nguyen
                                           Computer Science 430
                                               February 6, 2014

                    Requirements Specification for UMW Blogs Project   1
UMW Blogs                                       CROPP, MULLEN, NGUYEN

Table of Contents
1. Introduction
1.1 Purpose
1.2 Intended Audience and Reading Suggestions
1.3 Scope
1.4 References
2. Overall Description
2.1 Product Purpose
2.2 Product Functionality
2.3 User Characteristics
2.4 Operating Environment
2.5 Assumptions and Dependencies
3. Requirements
3.1 Nonfunctional Requirements
3.2 Comment Tracking
3.3 Activity View
3.4 Contextual Support
3.5 Bulk User Import
3.6 Enhanced Administration Search Feature
4. Appendix A
5. Appendix B

                              Requirements Specification for UMW Blogs Project   2
UMW Blogs                                          CROPP, MULLEN, NGUYEN

1. Introduction

1.1 Purpose:
        The purpose of this document is to provide concrete specifications for several
WordPress plugins that will serve to improve the functionality of the UMW Blogs website. These
plugins will address a wide variety of concerns with the current site. One of the plugins will
allow users to keep track of all comments they have made on any blog on the site. Another will
allow users to view any activity on blogs that have been linked into their own blog. There will
also be a plugin to provide additional help for users on the site. A fourth plugin will allow
instructors to add upwards of 2,000 new users to a blog in a single upload. Finally, a plugin will
allow high-level administrators to search for current users or sites using substrings or partial
names. These system improvements will be described in detail according to the specifications of
the client in this document. A prioritized list of these plugins can be found in the document
overview. A detailed account of the requirements for each feature is listed in the Requirements
section.

1.2 Intended Audience and Reading Suggestions:
         This document is chiefly intended for the designers and implementers of the new
features specified herein. The overall design section may have value for other stakeholders as
well.
         The features of this suite are described throughout this paper from highest priority to
lowest. Each individual feature is broken down in terms of intent, size, and scope. This is
followed by general requirements for the entire suite and then the specific requirements for
each feature. Finally, this document presents a glossary of terms and an attached image for
stylistic reference.

1.3 Scope:
       The ultimate goal of these plugins is to improve the functionality of UMW Blogs for
logged in users. With these additions, users will be able to traverse the site more efficiently. If
successfully implemented, these plugins will offer the following benefits:

       –       No more individual adding of users to a blog
       –       Blog administrators will be able to track user activity on their blog
       –       Administrators will be able to search for information using substrings
       –       A global contextual help feature will replace individually made help pages for
               course blogs

1.4 References:
Attached Image #1 – Image of the table posts tab that the comments tracking feature may be
                    modeled after.

                                 Requirements Specification for UMW Blogs Project          3
UMW Blogs                                         CROPP, MULLEN, NGUYEN

2. Overall Description
2.1 Product Purpose
         The concept of this project was conceived by our client, Ryan Brazell, and his colleagues
in the Division of Teaching and Learning Technologies here at the University of Mary
Washington. UMW Blogs is a site that is both responsible for giving students, faculty, and staff a
potential creative outlet, but also a teaching enhancement tool that many faculty members like to
utilize throughout the university. UMW Blogs is a standalone site that implements the now
common WordPress engine for blog creation and site navigation.
         The university prefers not to have to purchase any specific WordPress plugins or add-ons
to complete this project. Therefore, our client wishes any and all improvements and features
created in this project to be original or improvements of currently open source projects. These
features will likely be shared with any other university that wishes to implement a similar tool to
UMW Blogs.
2.2 Product Functionality
         This project is concerned with the creation and implementation of various new and
improved features to UMW Blogs. This plugin suite includes brand new features as well as
specific improvements to current plugins. Our client is a part of the technical team here at UMW
that deals with the maintenance of and improvements to many sites including UMW Blogs. The
purpose of this project is to improve the functionality of UMW Blogs such that it both makes the
lives of technical administrators, faculty, and students easier as well as increases the ability of
UMW Blogs to enhance the learning experience here at UMW. This suite includes five distinct
projects. Background information for each is listed below.
         The most essential feature is a comment tracking software that will allow a user to view
any and all comments that they have made across any number of blogs throughout UMW Blogs.
This feature is brand new, but structured similarly to the current posts plugin found on the UMW
Blogs dashboard. The intent of this feature is to allow any user with a login to easily see any old
comments they have made and have a quick and easy way to access that page on which they
commented.
         The next plugin to be implemented is the filtered view of blog activity. It is common for a
professor to create a “mother ship” blog in which their students will link their own blogs to for
coursework. Currently, a professor must manually check each of these blogs for any new posts
and comments. This is very tedious for the faculty, and as such this feature attempts to streamline
this information in a convenient widget that can be placed upon the user’s dashboard.
         The third feature to be created is a contextual support widget specific to UMW Blogs.
This feature will provide basic information for new users on how to create posts, post comments,
navigate the site, and other basic information. This feature will replace the need of our client and
his colleagues to specifically craft help pages for new course blogs as they currently do.
         The fourth new feature in this suite is a bulk user important. This feature is intended to
allow users to add a large list of users to their blogs. This is a common need for club presidents
or clubs that have a list of emails and want to have everyone linked into the blog without asking
each of them to go to the blog and manually subscribe. This feature will provide an easy to use
template; allowing a user to import a very large number of users at once rather than one at a time.
         The last of these plugins is an improvement to the Administrator User and Site Search.
The improvement required for this feature is to make partial searches work for both the user and

                                 Requirements Specification for UMW Blogs Project         4
UMW Blogs                                          CROPP, MULLEN, NGUYEN

site search. Currently, the user search feature will not return a result unless the exact email,
username, or site name is specified. This is highly inconvenient for the administrators, such as
our client, and as such the feature must be improved such that an email, username, or site name
will be listed in the results even if only a partial of the string is searched for. The site search
currently only displays results if they are exact matches of the site name or any sites listed under
mapping. Similarly to user search, the improvement to this function should allow any partial
matches to show in results.
2.3 User Characteristics
        For the entirety of this project any user, unless specifically stated otherwise, is a user who
has their own unique login to UMW Blogs. It is currently possible for anyone to post comments
as a guest on UMW Blogs, but the scope of this project does not include any additional features
for these types of users. With the exception of the enhanced user and site searches, the other four
features must be available to any and all users who have a valid login and account as all of these
features will reside on a user’s dashboard within the site. As mentioned, the enhanced searches
are only intended for network administrator use such that they may assist any users with
technical difficulties more easily.

2.4 Operating Environment

        All 5 plugins must coexist with UMW blogs and, by extension, WordPress. One particular
plugin, the Contextual Help plugin, must be able to communicate with MediaWiki, DokuWiki,
and optionally the GitHub repository which hosts the source files.

2.5 Assumptions and Dependencies

       2.5.1 Assumptions
           • The product is web-based
           • Users will check their own spelling
           • Plugins are only available to logged in users
           • Project will take no longer than 4 weeks to develop
           • Users will import files with one email address per line in compliance with the
              provided template
       2.5.2 Dependencies
           • The WordPress API needs to include the functions necessary to successfully
              develop these plugins

3. Requirements
3.1 Nonfunctional Requirements

       3.1.1 Safety Requirements

               None of the features in this suite may extend the visibility of sites or blogs
       beyond what already exists. This is to say that none of these features may display
       information to a user that is not already visible to that user at this time. These features
       will simply make information easier to locate, not illuminate anything new. For example,

                                 Requirements Specification for UMW Blogs Project           5
UMW Blogs                                         CROPP, MULLEN, NGUYEN

       the feature allowing users to view activity will only show those sites pertaining to the
       main site that the particular user is responsible for. Users will only see blogs linked (or
       mapped) to their blogs and will have no access to other blogs that do not fall under that
       category in order to preserve the privacy of the other users.

       3.1.2 Security Requirements

               All of the features requested by the client shall only be accessible to the logged
       in user; within these features, there is not currently a reason to include functionality for
       logged off users. As is the standard on the UMW Blogs site, all personal information is
       password protected. Furthermore, users email addresses are only always visible to the
       UMW Blogs administrators.

       3.1.3 Software Quality Requirements

               As the widgets on the UMW Blogs site are subject to growth and change, all code
       used to implement these features (most of which the client wishes to be widgets) will be
       clearly commented and thoughtfully structured for greater convenience during future
       maintenance and development.

3.2 Comment Tracking
         Below are the requirements specific to the comment tracking feature of the plugin suite.
The comment tracking software’s purpose is to retain all the comments ever made by user across
all sites on the UMW Blogs network and display them in an easy to read table. This feature will
operate similar to how the posts tab currently handles and displays a user’s posts.
         General Requirements:
                 3.2.1 Comment tracking will operate one tier above the other features in that it is
                     concerned with user-wide information not site specific.
                 3.2.2 Software shall retain all comments a user has made across all sites within
                     UMW Blogs.
                 3.2.3 Will function as a widget with all the standard word press widget
                     customization characteristics. This widget will take the form of an expandable
                     table.
                 3.2.4 Should reside within the home dashboard for all users.
                 3.2.5 The comment tracking widget shall be displayed by default.
         Interface and Display Requirements:
                 3.2.6 Upon expansion, the columns of the table will be as follows:
                             • Title of the blog comment was made upon
                             • Title of post where the comment resides
                             • Text Of Comment
                             • URL to the blog
                             • Direct link to the comment itself
                             • Timestamp (mm/dd/yyyy)
                             • Quick Edit
                             • Remove/Delete
                                 Requirements Specification for UMW Blogs Project         6
UMW Blogs                                          CROPP, MULLEN, NGUYEN

                3.2.7 These columns should follow standard word press table behavior. And be
                     displayed in chronological order.
        Processing Requirements:
                3.2.8 It is necessary that this software retrieve all the comments made by the user
                     on any site throughout the network. Comments are currently flagged by user
                     within the database that UMW Blogs utilizes.
                3.2.9 This widget should display all comments with a refresh rate of 5 minutes at
                     the latest.
3.3 Activity View
        This section is concerned with the specific requirements for the activity viewing feature
of the plugin suite. The activity view shall allow a user to easily see any activity on any blog that
is linked to their blog. Activity is categorized as any new posts or comments.
        General Requirements:
                3.3.1 This feature shall take the form of a widget on the home tab of the
                     dashboard for any blog/site.
                3.3.2 As a widget on the dashboard it shall have all of the customization features
                     associated with word press plugins. This includes the ability to be hidden,
                     moved, and change display in accordance with theme.
                3.3.3 This feature should be hidden by default.
        Interface and Display Requirements:
                3.3.4 The widget will take the form of an expandable table.
                3.3.5 Upon expansion the table will contain the following columns:
                         • Title of Blog the activity is on
                         • Partial Text of the post/comment
                         • Author’s username
                         • URL to the post/comment
                         • Time Stamp (mm/dd/yyyy)
                         • Type of Post (Comment or Post)
             3.3.6 These columns shall follow standard word press table behavior. This
                   behavior is currently presents in the posts table found under the posts tab.
      Processing Requirements:
             3.3.7 This software shall retrieve the lists of sites to search for activity from the
                links table also found within the dashboard.
             3.3.8 With this list of sites, the software should populate the table with any new
                posts or comments found on any of these linked sites.
             3.3.9 This function should update at the very least every five minutes to refresh
                and display any recent activity.
3.4 Contextual Help

        This feature deals with providing additional contextual help to users in the form of a
centralized page with embedded wiki how-to’s. This is a high priority feature due to it delivering
help guides more relevant to UMW Blogs in a more cohesive format than what is currently
available.

       Interface Requirements:

                                 Requirements Specification for UMW Blogs Project          7
UMW Blogs                                         CROPP, MULLEN, NGUYEN

               3.4.1 In the user’s dashboard menu there should be an additional feature called
                     “Help Guide.”

               3.4.2 The “Help Guide” should act in the same way as the other features already
                     present on the dashboard. This includes displaying the content of each
                     feature locally on the dashboard.

               3.4.3 The content of the “Help Guide” feature should include a list of help guides
                     formatted like a table of contents and a space for where the currently
                     selected help guide will be displayed.

               3.4.4 A user will click on a link to the user’s desired help guide. The system will
                     get the latest version of the guide from MediaWiki, DokuWiki, or GitHub
                     based on a predetermined set path. The system will then present the guide
                     embedded onto the page. When the user clicks on another help guide, the
                     system will replace the help guide currently being displayed with the newly
                     selected one.

       Functional Requirements:

               3.4.5 Ability to embed directly from MediaWiki or DokuWiki pages or embed
                      from the GitHub repository which houses all of the source files for the
                      MediaWiki and DokuWiki pages.

               3.4.6 Display a list of help guides for the user to choose from.

       Error Handling Requirements:

               3.4.7 Ability to catch errors in the case of an embedded page failure and display a
                     proper error statement.

3.5 Bulk User Import
       This section deals with all the specific requirements necessary for the bulk user import
function piece of the project. These requirements range from location on the webpage to the
capacity requirements of this feature.
       General Requirements:
               3.5.1 The software shall add multiple users at one time to the current user’s blog.
               3.5.2 This feature should be available for all users with a valid login and blog.
               3.5.3 It is necessary for this function to only add users to the blog in which the
                   user is currently residing.
       Interface Requirements:
               3.5.4 This software shall reside within the “User” space on the UMW Blogs
                     dashboard.
               3.5.5 This feature should appear in below the singular add user function and
                   above the add new user on the webpage.

                                 Requirements Specification for UMW Blogs Project        8
UMW Blogs                                        CROPP, MULLEN, NGUYEN

             3.5.6 A dropdown menu with the new users’ role will be provided. As well as a
                 download and submit button for the template and completed file.
       Processing and Input Requirements:
             3.5.7 The template provided should be of a .txt, and will entail a line separated file
                 of example email addresses.
             3.5.8 Within the submission file, email addresses can be of any format, it is not
                 required that only @mail.umw.edu or @umw.edu addresses be accepted.
             3.5.9 The software shall receive the .txt file that is uploaded and add any users
                 associated with the individual email addresses found within the file to the
                 blog. This functionality already exists in the currently existing “add user,” but
                 this software shall iterate this for each email addresses within the uploaded
                 file.
             3.5.10 Following the submission of the file and the additions to the blog, an email
                 shall be sent to the user’s registered email detailing the success and/or
                 potential failures of the upload.
       Output Requirements:
             3.5.11 Following submission, a message of success, partial success, or complete
                 failure shall be displayed in a popup window to the screen. Where partial
                 success is defined as some successful user additions and some faulty, and total
                 failure means no successful user additions, or the submission file was not
                 found/of the wrong format.
       Error Handling and Capacity Requirements:
             3.5.12 It is required that this feature be able to handle bulk imports of up to 2,000
                 new users at a time.
             3.5.13 If an invalid email address is found, then the software must continue on
                 until the end of the file without crashing.
             3.5.14 Upon completion of the bulk import, any and all invalid email addresses
                 need to be reparsed to a .txt file and attached to an email sent to the user. This
                 reparsed file will be in a format uniform to the template so that the user won’t
                 need to create and format a new file with the invalid email addresses.

3.6 Enhanced Administrator Search Feature

               The enhanced administrator search feature will enable the highest level
administrators of UMW Blogs to search for email addresses, usernames, and user sites in the
domain using a partial name or substring. This is the lowest priority feature and should simply
be a modification of an existing feature. Detailed below are the specific requirements for this
modification and implementation.

       Interface Requirements:

               3.6.1 This feature will provide a search box where the user will type the desired
                     information they wish to search for, as well as a submission button labeled
                     “Search Users” or “Search Sites.”

                                Requirements Specification for UMW Blogs Project         9
UMW Blogs                                        CROPP, MULLEN, NGUYEN

       Processing Requirements:

               3.6.2 The search shall return any results that match the searched data exactly or
                     partially.
               3.6.2 For the User search any searched data will match with the username, email
                     address, and site name.
               3.6.3 The site search will match any domain names or mapped site names.

       Output Requirements:
              3.6.4 After completing the search, this software will display the results in the
                    same table that already exists on the site for both the user and site
                    searches.
              3.6.5 If no results are found, the table should be displayed with a message that
                    says “No users found” or “No sites found” respectively.
       Security Requirements:
              3.6.5 The administrator must be logged on to UMW Blogs to access the search
                       feature and have the highest level of access.
              3.6.6 The administrator must enter a non-empty string into the search bar.

4. Appendix A: Glossary
Dashboard - a home page on a website giving access to different elements of the site's
            functionality.

DokuWiki - a wiki application aimed at small companies’ documentation needs. DokuWiki is
           licensed under GPL 2 and written in the PHP programming language. It works on
           plain text files and thus does not need a database. Its syntax is similar to the one
           used by MediaWiki.

GitHub - a web-based hosting service for software development projects that use the Git
         revision control system.

Interface - The point of interaction or communication between a computer and any other entity,
            such as a printer or human operator.

MediaWiki - a free and open source wiki software, used to power wiki websites such as
             Wikipedia, Wiktionary and Commons, developed by the Wikimedia Foundation
             and others.

Plugin - An accessory software or hardware package that is used in conjunction with an existing
         application or device to extend its capabilities or provide additional functions.

Tab – A second or further document or page that can be opened on a spreadsheet or web
browser.
                                Requirements Specification for UMW Blogs Project         10
UMW Blogs                                        CROPP, MULLEN, NGUYEN

Widget – An element of a graphical user interface such as a button or scroll bar; also, a module
        of software for a personalized Web page.

WordPress – A free and open source blogging tool and a content-management system based on
            PHP and MySQL, which runs on a web hosting service.

5. Appendix B: Contributions

Technical Developer: Tori Nguyen
–      Authored Requirements for contextual help
–      Authored Assumptions
–      Authored Operating Environment

Technical Developer: Patrick Mullen
–      Authored Overall Description
–      Authored Requirements for comment tracking
–      Authored Requirements for bulk user import
–      Authored Requirements for activity view

Technical Developer: Allie Cropp
–      Authored Introduction
–      Authored Requirements for enhanced search
–      Authored Nonfunctional Requirements

All components of this document not specified above were a collaborative effort.

                                Requirements Specification for UMW Blogs Project       11
UMW Blogs                                        CROPP, MULLEN, NGUYEN

Attached Image #1:
       An example table that all new tables should replicate.

                                Requirements Specification for UMW Blogs Project   12
You can also read