Anda di halaman 1dari 38

Video Streaming Software Design Document

Version 1.0

By

AJ-144, Sector-II Salt Lake Kolkata 700 091 India

June 26, 2012

DOCUMENT CONTROL
Document Revision History
Version 1.0 Date June 26, 2012 Author Partha Chakraborty Description First draft of Video Streaming Software Module Design Document

Related Document List


The following documents are referenced within this document or should be read in conjunction with this document. Document Title and Version Issued By Filename and Location Issue Date

Document Acceptance and Sign Off


This document contains the Design specifications for the Video Streaming Software Module. Date .. Debabrata Mandal Glendon Consulting Acceptance and Sign Off Date .. Basu Mukherjee

Video Streaming Software Design Specifications

Page 2 of 38

Contents
1 INTRODUCTION ................................................................................................................ 4 1.1 1.2 1.3 1.4 2 BACKGROUND ............................................................................................................... 4 PURPOSE OF THE DOCUMENT ........................................................................................ 4 GENERAL REQUIREMENTS .............................................................................................. 4 OBJECTIVES OF THE SYSTEM ......................................................................................... 4

DESIGN SPECIFICATIONS .............................................................................................. 5 2.1 PROCESS FLOW ............................................................................................................ 5 2.2 E-R DIAGRAM ............................................................................................................... 6 2.3 SYSTEMS ARCHITECTURE .............................................................................................. 6 2.3.1 Presentation Layer ........................................................................................................... 7 2.3.2 Business layer ................................................................................................................... 8 2.3.3 Data Access layer ............................................................................................................. 8 2.4 CLASS DIAGRAM.......................................................................................................... 11 2.4.1 Business Layer ................................................................................................................ 11 2.4.2 Data Access Layer .......................................................................................................... 27 2.5 DATABASE .................................................................................................................. 31 2.5.1 AccessPortal ................................................................................................................... 31 2.6 SAMPLE SCREENS FOR THE SECTION ............................................................................ 35

Video Streaming Software Design Specifications

Page 3 of 38

1 INTRODUCTION
1.1 Background
The project involves development and deployment of an online portal that streams video to subscribers. Video files will be stored in a third party hosting company AND APs SERVER. The portal will have user authentication based on subscribing institutions (MEMBER) and their profiles and purchase history. The AP (AccessPortal) administrator (ADMIN) will have the ability to manage the content, i.e. cataloguing the video files hosted by the third party hosting firm.

1.2 Purpose of the Document


This document describes in details the design of the Video Streaming Software module. The process flow and detailed design specifications are illustrated in this document. The activities as per the current scope are as follows: Creation of a role based User Management System which will help manage users of different levels Upload, study and watch the videos of several categories, manage video catalogue and class consisting of students of several institution

1.3 General requirements


Actuate requires that the new system possesses the following attributes: System must be able to handle large volume of visitors System must be extendable so that new modules can be added in future

1.4 Objectives of the System


The objectives of the system is to 1. Manage activities of users of the system with different access levels 2. Enable students from different institution as well as individual students to play and watch videos

Video Streaming Software Design Specifications

Page 4 of 38

2 DESIGN SPECIFICATIONS
2.1 Process Flow

Video Streaming Software Design Specifications

Page 5 of 38

2.2 E-R Diagram


The E-R diagram of the database design of Video Streaming Software system as envisaged by Nishan is shown below

2.3 Systems Architecture


The following diagrams illustrate the architecture of the Video Streaming Software System as envisaged by NTL. System Architecture for AP Admin

Video Streaming Software Design Specifications

Page 6 of 38

Presentation Layer

Business Layer Check Valid Login

Data Access Layer

Database

Admin Login

Check User Validity Database

Manage Videos

Custom Error

Video Manager Manage Institute Admin

Institute Admin Manager Institutional Student Manager Individual User Manager Instructor Manager

Manage Institutional Student

accessportal

Manage Individual User

Manager

Manage Instructor

Manage Category

Category Manager

Manage Catalogue

Catalogue Manager

2.3.1 Presentation Layer


APADMIN (Access portal Admin) is having the following modules a. Manage videos

Video Streaming Software Design Specifications

Page 7 of 38

b. Manage Institutional Admin c. Manage Institutional Student d. Manage Individual user e. Manage Manager/Instructor f. Manage Category

g. Manage Catalogue Each and every module and its function will be called subsequent business function from the business layer.

2.3.2 Business layer


APADMIN is having the following modules a. Video Manager It manages the videos like Upload a new video, Update and Delete. This module is defined in the class diagram section. b. Institute Admin Manager It manages the Institute Admin like Add new record, update and Block/Unblock. This module is defined in the class diagram section. c. Institutional Student Manager It manages the Student like Add new record, update and Block/Unblock. This module is defined in the class diagram section. d. Instructor Manager It manages the Instructor like Add new record, update and Block/Unblock. This module is defined in the class diagram section. e. Category Manager It manages the Category like Add new record, update and Delete. This module is defined in the class diagram section f. Catalogue Manager It manages the Catalogue like Add new record, update and Delete. This module is defined in the class diagram section

2.3.3 Data Access layer


This layer generally calls the database query/ procedures / functions. All the business objects will access the DAL not directly to the database query/ procedures / functions.

Video Streaming Software Design Specifications

Page 8 of 38

System Architecture for Institute Admin

Presentation Layer

Business Layer Check Valid Login

Data Access Layer Check User Validity

Database

Admin Login

Database Manage Students Custom Error

Upgrade Student to Instructor Manage Videos

Student Manager

Video Manager

Manager

accessportal

Manage Class

Class Manager

System Architecture for Instructor

Video Streaming Software Design Specifications

Page 9 of 38

Presentation Layer Student / Instructor Login Manage Class

Business Layer Check Valid Login

Data Access Layer Check User Validity

Database

Database Custom Error accessportal Class Manager Manager

Allocate Videos to Classes

System Architecture for Institutional Student

Presentation Layer

Business Layer Check Valid Login Custom Error

Data Access Layer Check User Validity

Database

Registration

Database

Student / Instructor Login

Email Manager Manager accessportal

Manage Account

Account Manager

Video Streaming Software Design Specifications

Page 10 of 38

2.4 Class Diagram


2.4.1 Business Layer

2.4.1.1

IManageCategoryBO interface This interface is used to establish the signature of the activities e.g. add, edit, delete and get a list of all categories. None

Variables

Video Streaming Software Design Specifications

Page 11 of 38

Methods AddCategory is used to establish a method signature for activity to add or create new categories in the database. Boolean AddCategory(string name, string description) 1. 2. Takes name and description as two string type input parameters Returns true if category is added successfully to database, otherwise returns false

Parameters: name, description EditCategory is used to establish a method signature for activity to edit any category already stored in the database. Boolean EditCategory(Int32 id, string name, string description) 1. Takes id (Int32), name (string) and description (string) of the category to be edited as input parameters of corresponding types 2. Returns true if the operation is successful, otherwise false is returned.

Parameters: id, name, description DeleteCategory is used to establish a method signature for activity to delete any category already stored in the database. Boolean DeleteCategory(string id) 1. Takes id (Int32) of the category to be edited as input parameter 2. If it is true this method also returns true, otherwise it returns false. Parameters: id CategoryList is used to establish a method signature for activity to retrive the list of all categories already stored in the database Array CategoryList() 1. Takes no input parameters at all 2. Returns the result as an array. Parameters: none 2.4.1.2 IManageClassBO interface This interface is used to establish the signature of the activities e.g. add, edit, delete and get a list of all classes. None

Variables Methods

AddClass is used to establish a method signature for activity to add or create a new class in the database Boolean AddClass(string name, string description, Int32 maxStudents, DateTime startDate, Int32 duration) 1. Takes name, description, max no of Students that can be added to the class, start date and duration of class as input parameter

Video Streaming Software Design Specifications

Page 12 of 38

2. Returns true if the add operation is successful otherwise returns false Parameters: name, description, maxStudents, startDate, duration EditClass is used to establish a method signature for activity to edit a class already created in the database. bool EditClass(Int32 id, string name, string description, Int32 maxStudents, DateTime startDate, Int32 duration, bool status) 1. Takes id name, description, max no of Students that can be added to the class, start date, duration and status of class as input parameter. 2. Returns true if the add operation is successful otherwise returns false. Parameters: id, name, description, maxStudents, startDate, duration, status. DeleteClass is used to establish a method signature for activity to delete a class already created in the database. bool DeleteClass(Int32 id) 1. Takes id of class to be deleted as input parameter. 2. Returns true if the add operation is successful otherwise returns false. Parameters: id ClassList is used to establish a method signature for activity to retrive a list of all the classes already created in the database. Array ClassList() 1. Takes no input parameter. 2. Returns the result as an array. Parameters: none 2.4.1.3 IManageCatalogueBO interface This interface is used to establish the signature of the activities e.g. add, edit, delete and get a list of all catalogue. None

Variables Methods

AddCatalogue is used to establish a method signature for activity to add or create a new catalogue in the database bool AddCatalogue(string name, string description) 1. Takes name and description of catalogue as input parameter 2. Returns true if the add operation is successful otherwise returns false

Parameters: name, description EditCatalogue is used to establish a method signature for activity to edit a catalogue already created in the database. bool EditCatalogue(int id, string name, string description) 1. Takes id name and description of catalogue as input parameter. 2. Returns true if the add operation is successful otherwise returns false. Parameters: id, name, description

Video Streaming Software Design Specifications

Page 13 of 38

DeleteCatalogue is used to establish a method signature for activity to delete a catalogue already created in the database. bool DeleteCatalogue(int id) 1. Takes id of catalogue to be deleted as input parameter. 2. Returns true if the add operation is successful otherwise returns false.

Parameters: id CatalogueList is used to establish a method signature for activity to retrive a list of all the catalogue already created in the database. Array CatalogueList() 1. Takes no input parameter. 2. Returns the result as an array. Parameters: none 2.4.1.4 IManageVideoBO interface This interface is used to establish the signature of the activities e.g. add, edit, delete and get a list of all catalogue. None

Variables Methods

AddVideo is used to establish a method signature for activity to add a new video in the database bool AddVideo(int categoryId, string name, string description, DateTime uploadDate) 1. Takes name and description of video as input parameter 2. Returns true if the add operation is successful otherwise returns false

Parameters: name, description EditVideo is used to establish a method signature for activity to edit a video already created in the database. bool EditVideo(int id, int categoryId, string name, string description, DateTime uploadDate) 1. Takes id, categoryId, name, description and uploadDate of video as input parameter. 2. Returns true if the add operation is successful otherwise returns false. Parameters: id, categoryId, name, description, uploadDate DeleteVideo is used to establish a method signature for activity to delete a video already created in the database. bool DeleteVideo(int id) 1. Takes id of the video to be deleted as input parameter. 2. Returns true if the add operation is successful otherwise returns false. Parameters: id VideoList is used to establish a method signature for activity to retrive a list of all the videos already added to the database. Array VideoList() Video Streaming Software Design Specifications Page 14 of 38

1. Takes no input parameter. 2. Returns the result as an array. Parameters: none SearchVideo is used to establish a method signature for activity to search for a specific video from the database. bool SearchVideo(int id) 1. Takes id of the video to be searched for as input parameter. 2. Returns true if the add operation is successful otherwise returns false. Parameters: id 2.4.1.5 CommonClass This class implements methods declared in all the four interfaces IManageCategoryBO, IManageClassBO, IManageCatalogueBO and IManageVideoBO as well as some addtional methods which in turn implements the common functionalities. Variables categoryId:int catalogueId:int videoId:int classId:int userId:int catalogueName:string categoryName:string videoName:string className: string userName: string categoryDescription: string catalogueDescription: string videoDescription: string classDescription: string userPassword: string userStreetAddress: string userCity: string userCountry: string userZip: string userPhoneNo: string instituteId:int instituteName:string instituteAddress:string instituteDomainName:string instituteEmailAddress:string

Video Streaming Software Design Specifications

Page 15 of 38

institutePhoneNo:int videoUploadDate:DateTime emailBodyText:string Methods SentMailToUser is used to send email to user when necessory. public bool SentMailToUser(Int32 userId, string emailBody) { } 1. Takes userid and emailBody as input parameters 2. Returns true if the operation is successful otherwise returns false. Parameters: userId, emailBody Registration is used to insert all user information in the user table. public bool Registration(Int32 userId, string name, string password, string streetAddress, string city, string country, string zip, string phoneNo, Int32 classId) { } 1. Calls AddUser method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass, whereas calls AddStudent method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which also inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: userId, Name, password, streetAddress, city, country, zip, phoneNo, classId isValidUser is used to check the validity of the user. public bool isValidUser(string userid, string password) { } 1. Calls CheckValidAPAdmin method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass, whereas calls CheckValidIAdmin method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which also inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: userId, password AddCategory is used to add or create a new category in the database. public bool AddCategory(string name, string description) { } 1. Calls AddCategory method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: name, description EditCategory is used to edit a category which already exists in the database.

Video Streaming Software Design Specifications

Page 16 of 38

public bool EditCategory(Int32 id, string name, string description) { } 1. Calls EditCategory method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: id, name, description DeleteCategory is used to delete a category which already exists in the database. public bool DeleteCategory(Int32 id) { } 1. Calls DeleteCategory method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: id CategoryList is used to retrive all categories which already exists in the database. public Array CategoryList() { } 1. Calls GetCategory method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass. 2. Returns an array of all the categories in the database. Parameters: none AddClass is used to add or create a class in the database. public bool AddClass(string name, string description, Int32 maxStudents, DateTime startDate, Int32 duration) { } 1. Calls AddClass method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and AddClass method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: name, description, maxStudents, startDate, duration EditClass is used to edit a class which already exists in the database. public bool EditClass(Int32 id, string name, string description, Int32 maxStudents, DateTime startDate, Int32 duration, bool status) { } 1. Calls EditClass method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and EditClass method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. Video Streaming Software Design Specifications Page 17 of 38

2. Returns true if the operation is successful otherwise returns false. Parameters: id, name, description, maxStudents, startDate, duration, status DeleteClass is used to delete a class which already exists in the database. public bool DeleteClass(Int32 id) { } 1. Calls DeleteClass method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and DeleteClass method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: id ClassList is used to retrive all classes which already exists in the database. public Array ClassList() { } 1. Calls GetClass method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and GetClass method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns an array of all the classes in the database. Parameters: none AddCatalogue is used to add or create a catalogue in the database. public bool AddCatalogue(string name, string description) { } 1. Calls AddCatalogue method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and AddCatalogue method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: name, description EditCatalogue is used to edit a catalogue which already exists in the database. public bool EditCatalogue(Int32 id, string name, string description) { } 1. Calls EditCatalogue method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and EditCatalogue method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: id, name, description DeleteCatalogue is used to delete a catalogue which already exists in the database.

Video Streaming Software Design Specifications

Page 18 of 38

public bool DeleteCatalogue(Int32 id) { } 1. Calls DeleteCatalogue method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and DeleteCatalogue method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: id CatalogueList is used to retrive all catalogue which already exists in the database. public Array CatalogueList() { } 1. Calls GetCatalogue method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and GetCatalogue method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns an array of all the classes in the database. Parameters: none AddVideo is used to add or create a video in the database. public bool AddVideo(Int32 categoryId, string name, string description, DateTime uploadDate) { } 1. Calls AddVideo method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and AddVideo method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: categoryId, name, description, uploadDate EditVideo is used to edit a video which already exists in the database. public bool EditVideo(Int32 id, Int32 categoryId, string name, string description, DateTime uploadDate) { } 1. Calls EditVideo method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and EditVideo method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: id, categoryId, name, description, uploadDate DeleteVideo is used to delete a video which already exists in the database. public bool DeleteVideo(Int32 id) { } Video Streaming Software Design Specifications Page 19 of 38

1. Calls DeleteVideo method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and DeleteVideo method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: id VideoList is used to retrive all videos which already exists in the database. public Array VideoList() { } 1. Calls GetVideo method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and GetVideo method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns an array of all the videos in the database. Parameters: none SearchVideo is used to retrive a list of videos corresponding to the video title passed as input parameter from those which already exists in the database. public Array SearchVideo(Int32 userId, string videoTitle) { } 1. Calls GetVideo method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and GetVideo method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns an array of all the videos in the database. Parameters: userId, videoTitle BlockUser is used to block or deactivate an user who already exists in the database. public bool BlockUser(Int32 id, bool status) { } 1. Calls EditVideo method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and EditVideo method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: id, status UnblockUser is used to reactivate an user who was previously deactivated in the database. public bool UnBlockUser(Int32 id, bool status) { } 1. Calls EditVideo method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and EditVideo method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. Video Streaming Software Design Specifications Page 20 of 38

2. Returns true if the operation is successful otherwise returns false. Parameters: id, status CheckDomainEmail is used to check the domain of email address of the specific institute. public bool CheckDomainEmail(Int32 instituteId, string emailAddress) { } 1. Takes userid and emailBody as input parameters 2. Returns true if the operation is successful otherwise returns false. Parameters: instituteId, emailAddress AddInstitute is used to add or create an institute in the database. public bool AddInstitute(string name, string address, string domainName, string emailAddress, Int32 phoneNo) { } 1. Calls AddInstitute method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and AddInstitute method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: name, address, domainName, emailAddress, phoneNo EditInstitute is used to edit an institute which already exists in the database. public bool EditInstitute(Int32 instituteId, string instituteName, string address, string domainName, string emailAddress, Int32 phoneNo) { } 1. Calls EditInstitute method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and EditInstitute method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns true if the operation is successful otherwise returns false. Parameters: instituteIdid, InstituteName, address, domainName, emailAddress, phoneNo InstituteList is used to retrive all institutes which already exists in the database. public Array InstituteList() { } 1. Calls GetInstitute method of APAdmin class of Data Access Layer from inside APAdminBO class which inherits CommonClass and GetInstitute method of IAdmin class of Data Access Layer from inside InstituteAdminBO class which inherits CommonClass. 2. Returns an array of all the institutes in the database. Parameters: none

Video Streaming Software Design Specifications

Page 21 of 38

2.4.1.6 APAdminBO This class inherits CommonClass. This class is used to manage all the activities of APAdmin user from business layer. Variables None

Methods CreateInstituteSubDomain is used to create a subdomain for an institute using the domain name passes as input parameter. public bool CreateInstituteSubDomain(string domainName) { } 1. Takes domainName as input parameters 2. Returns true if the operation is successful otherwise returns false. Parameters: domainName

2.4.1.7 InstituteAdminBO This class also inherits CommonClass. This class is used to manage all the activities of InstituteAdmin user from business layer. Variables None Methods None 2.4.1.8 InstructorBO This class implements IManageClassBO. This class is used to manage all the activities of Instructor user from business layer. Variables classId className classDescription classMaxStudents classStartDate classDuration classStatus userId studentId uaerPassword Methods InviteStudent is used to invite multiple students into a specific class.

Video Streaming Software Design Specifications

Page 22 of 38

public bool InviteStudents(Int32 classId, Int32 studentId) { } 1. Calls InviteStudents method of Instructor class of Data Access Layer 2. Returns true if the operation is successful otherwise returns false. Parameters: classId, studentId isValidUser is used to check the validity of the user. public bool isValidUser(string userid, string password) { } 1. Calls CheckValidInstructor method of Instructor class of Data Access Layer. 2. Returns true if the operation is successful otherwise returns false. Parameters: userId, password AddClass is used to add or create a class in the database. public bool AddClass(string name, string description, Int32 maxStudents, DateTime startDate, Int32 duration) { } 1. Calls AddClass method of Instructor class of Data Access. 2. Returns true if the operation is successful otherwise returns false. Parameters: name, description, maxStudents, startDate, duration EditClass is used to edit a class which already exists in the database. public bool EditClass(Int32 id, string name, string description, Int32 maxStudents, DateTime startDate, Int32 duration, bool status) { } 1. Calls EditClass method of Instructor class of Data Access Layer. 2. Returns true if the operation is successful otherwise returns false. Parameters: id, name, description, maxStudents, startDate, duration, status DeleteClass is used to delete a class which already exists in the database. public bool DeleteClass(Int32 id) { } 1. Calls DeleteClass method Instructor class of Data Access Layer. 2. Returns true if the operation is successful otherwise returns false. Parameters: id ClassList is used to retrive all classes which already exists in the database. public Array ClassList() { } Video Streaming Software Design Specifications Page 23 of 38

1. Calls GetClass method of Instructor class of Data Access Layer. 2. Returns an array of all the classes in the database. Parameters: none 2.4.1.9 StudentBO This class is used to manage all the activities of a student user from business layer. Variables studentName studentPassword studentId videoId timeToAddVideoToWatchlist

Methods AddToWatchList is used to add a video being watched by a student in the database. public bool AddToWatchList(Int32 studentId, Int32 videoId, DateTime timeToAdd) { } 1. Calls AddToWatchList method of Student class of Data Access Layer. 2. Returns true if the operation is successful otherwise returns false. Parameters: studentId, videoId, timeToAdd ListWatchList is used to retrieve the list of all videos which has been watched by the specific student from the database. public Array ListWatchList(Int32 studentId) { } 1. Calls ListWatchList method of Student class of Data Access Layer. 2. Returns an array of all the classes in the database. Parameters: studentId ListPlayedVideos is used to retrieve the list of all videos which has been played by the specific student from the database. public Array ListPlayedVideos(Int32 studentId) { } 1. Calls ListPlayedVideos method of Student class of Data Access Layer. 2. Returns an array of all the classes in the database. Parameters: studentId PlayVideo is used to play a video from the database. public bool PlayVideo(Int32 studentId, Int32 videoId) {

Video Streaming Software Design Specifications

Page 24 of 38

} 1. Calls PlayVideo method of Student class of Data Access Layer. 2. Returns true if the operation is successful otherwise returns false. Parameters: studentId, videoId. isValidUser is used to check the validity of the student. public bool isValidUser(string studentName, string password) { } 1. Calls CheckValidStudent method of Student class of Data Access Layer. 2. Returns true if the operation is successful otherwise returns false. Parameters: studentName, password 2.4.1.10 IndividualUserBO This class is used to manage all the activities of individual user from business layer. Variables userName userPassword userId videoId timeToAddVideoToWatchlist

Methods AddToWatchList is used to add a video being watched by an individual user in the database. public bool AddToWatchList(Int32 userId, Int32 videoId, DateTime timeToAdd) { } 1. Calls AddToWatchList method of IndividualUser class of Data Access Layer. 2. Returns true if the operation is successful otherwise returns false. Parameters: userId, videoId, timeToAdd ListWatchList is used to retrieve the list of all videos which has been watched by the specific individual user from the database. public Array ListWatchList(Int32 userId) { } 1. Calls ListWatchList method of IndividualUser class of Data Access Layer. 2. Returns an array of all the classes in the database. Parameters: userId ListPlayedVideos is used to retrieve the list of all videos which has been played by the specific individual user from the database.

Video Streaming Software Design Specifications

Page 25 of 38

public Array ListPlayedVideos(Int32 userId) { } 1. Calls ListPlayedVideos method of IndividualUser class of Data Access Layer. 2. Returns an array of all the classes in the database. Parameters: userId PlayVideo is used to call when user clicks for playing a video. public bool PlayVideo(Int32 userId, Int32 videoId) { } 1. Calls PlayVideo method of IndividualUser class of Data Access Layer. 2. Returns true if the operation is successful and insert a new record to the subsequent table otherwise returns false. Parameters: userId, videoId. isValidUser is used to check the validity of the individual user. public bool isValidUser(Int32 userName, string password) { } 1. Calls CheckValidStudent method of IndividualUser class of Data Access Layer. 2. Returns true if the operation is successful otherwise returns false. Parameters: userName, password

Video Streaming Software Design Specifications

Page 26 of 38

2.4.2 Data Access Layer

Video Streaming Software Design Specifications

Page 27 of 38

2.4.2.1

IManageStudent interface This interface is used to establish the signature of the activities e.g. add, edit, delete and get a list of all categories. None

Variables

Methods AddStudent is used to establish a method signature for activity to add or create new students in the database. Boolean AddStudent(string name, string Password, string streetAddress, string city, string country, string zip, string phoneNo) 3. 4. Takes name, password, streetAddress, city, country, zip, phoneNo as input parameters Returns true if category is added successfully to database, otherwise returns false

EditStudent is used to establish a method signature for activity to edit any student already stored in the database. Boolean EditStudent(Int32 studentId, string name, string password, string streetAddress, string city, string country, string zip, string phoneNo, Int32 classId) 1. Takes studentId, name, password, streetAddress, city, country, zip, phoneNo of the student to be edited as input parameters of corresponding types 2. Returns true if the operation is successful, otherwise false is returned.

DeleteStudent is used to establish a method signature for activity to delete any student already stored in the database. Boolean DeleteStudent(string studentId) 1. Takes studentId as input parameters 2. Returns true if the operation is successful, otherwise false is returned.

GetStudent is used to establish a method signature for activity to get a list of students already stored in the database. Array GetStudent() 3. Takes no input parameter 4. Returns an array containing the list of students.

2.4.2.2

IManageInstituteAdmin interface This interface is used to establish the signature of the activities e.g. add, edit, delete and get a list of all Institute admins. None

Variables

Video Streaming Software Design Specifications

Page 28 of 38

Methods AddIAdmin is used to establish a method signature for activity to add or create new students in the database. bool AddIAdmin(string name, string password, string email, string contactno, string address, string city, string zip, string instituteid); 1. Takes name, password, email, contactno, address, city, zip and instituteid as input parameters 2. Returns true if inserted successfully to database, otherwise returns false EditIAdmin is used to establish a method signature for activity to edit any student already stored in the database. bool EditIAdmin(Int32 iadminid, string name, string password, string email, string contactno, string address, string city, string zip, string instituteid);

1. Takes iadminid, name, password, email, contactno, address, city, zip and instituteid as input parameters 2. Returns true if the operation is successful, otherwise false is returned.

DeleteIAdmin is used to establish a method signature for activity to delete any student already stored in the database. bool DeleteIAdmin(Int32 iadminid) 1. Takes iadminid as input parameters 2. Returns true if the operation is successful, otherwise false is returned.

GetIAdmin is used to establish a method signature for activity to get a list of IAdmins already stored in the database. Array GetIAdmin() 1. Takes no input parameter 2. Returns an array containing the list of IAdmins.

2.4.2.3

IManageIndividualUser interface This interface is used to establish the signature of the activities e.g. add, edit, delete and get a list of all Institute admins. None

Variables

Methods AddUser is used to establish a method signature for activity to add or create new individual user in the database.

Video Streaming Software Design Specifications

Page 29 of 38

bool AddUser(string name, string Password, string streetAddress, string city, string country, string zip, string phoneNo, Int32 classId); 1. Takes name,password,streetAddress,city,country,zip, phoneNo,classId as input parameters 2. Returns true if inserted successfully to database, otherwise returns false EditUser is used to establish a method signature for activity to edit any student already stored in the database. bool EditUser(string name, string Password, string streetAddress, string city, string country, string zip, string phoneNo); 1. Takes name,Password, streetAddress, city,country,zip, phoneNo as input parameters 2. Returns true if the operation is successful, otherwise false is returned.

DeleteIAdmin is used to establish a method signature for activity to delete any student already stored in the database. bool DeleteIAdmin(Int32 iadminid) 1. Takes iadminid as input parameters 2. Returns true if the operation is successful, otherwise false is returned.

GetIAdmin is used to establish a method signature for activity to get a list of IAdmins already stored in the database. Array GetIAdmin() 1. Takes no input parameter 2. Returns an array containing the list of students.

2.4.2.4

IManageInstituteManager interface This interface is used to establish the signature of the activities e.g. add, edit, delete and get a list of all Institute managers. None

Variables

Methods AddUser is used to establish a method signature for activity to add or create new individual user in the database. bool AddIManager(string name, string password, string email, string contactno, string address, string city, string zip, string instituteid); 1. Takes name, password, email, contactno, address, city, zip,instituteid as input parameters 2. Returns true if inserted successfully to database, otherwise returns false

Video Streaming Software Design Specifications

Page 30 of 38

EditIManager is used to establish a method signature for activity to edit any Institute Manager already stored in the database. bool EditIManager(Int32 managerid, string name, string password, string email, string contactno, string address, string city, string zip, string instituteid);

1. Takes managerid, name, password, email, contactno, address, city, zip, instituteid as input parameters 2. Returns true if the operation is successful, otherwise false is returned.

DeleteIManager is used to establish a method signature for activity to delete any student already stored in the database. bool DeleteIManager(Int32 managerid); 1. Takes managerid as input parameters 2. Returns true if the operation is successful, otherwise false is returned.

2.5 Database
2.5.1 AccessPortal
Table: actions

Fields id name description

Remarks Type Autoidentity seed(1,1) PK int varchar(50) text

Table: catalogue

Fields id name

Type int varchar(50)

Remarks
Autoidentity seed(1,1) PK

description text

Table: catalogue_has_video

Fields id

Type int

Remarks
Autoidentity seed(1,1) PK

catalogue_id int

FK references catalogue (Id) table

Video Streaming Software Design Specifications

Page 31 of 38

video_id
Table: Category

int

FK references video (Id) table Remarks


Autoidentity seed(1,1) PK

Fields id name description


Table: class

Type int varchar(50) text

Fields id name description

Type int varchar(50) text

Remarks
Autoidentity seed(1,1) PK

max_student int start_date duration status datetime int bit

Table: class_has_video

Fields id class_id video_id


Table: domains

Type int int int

Remarks
Autoidentity seed(1,1) PK

FK references class (Id) table FK references video (Id) table Remarks


Autoidentity seed(1,1) PK

Fields id name description

Type int varchar(50) text

Table: domains_has_objects

Fields id domain_id
Video Streaming Software Design Specifications

Type int int

Remarks
Autoidentity seed(1,1) PK

FK references
Page 32 of 38

object_id
Table: objects

int

domain (Id) table FK references object (Id) table Remarks


Autoidentity seed(1,1) PK

Fields id name description


Table: priviledges

Type int varchar(50) text

Fields id name description

Type int varchar(50) text

Remarks
Autoidentity seed(1,1) PK

Table: priviledges_has_actions

Fields id

Type int

Remarks
Autoidentity seed(1,1) PK

priviledges_id int actions_id int

FK references priviledges (Id) table FK references actions (Id) table

Table: roles

Fields
id name description

Type
int varchar(50) text

Remarks
Autoidentity seed(1,1) PK

Table: roles_has_domains_priviledges

Fields id roles_id

Type int int

Remarks
Autoidentity seed(1,1) PK

priviledges_id int domains_id int

FK references roles (Id) table FK references priviledges (Id) table FK references domains (Id) table
Page 33 of 38

Video Streaming Software Design Specifications

is_allowed
Table: user_has_roles

bit

Fields Id users_id roles_Id


Table: users

Type int int int

Remarks
Autoidentity seed(1,1) PK

FK references user (Id) table FK references roles (Id) table Remarks


Autoidentity seed(1,1) PK

Fields id name password

Type int varchar(50) varchar(50)

street_address varchar(50) city country zip phone_no class_id


Table: video

varchar(50) varchar(50) varchar(50) varchar(50) int FK references class (Id) table Remarks
Autoidentity seed(1,1) PK

Fields id category_id name description upload_date


Table: video_streaming

Type int int varchar(50) text datetime

FK references category (Id) table

Fields id name video_id

Type int varchar(50) int

Remarks
Autoidentity seed(1,1) PK

FK references video (Id) table

Video Streaming Software Design Specifications

Page 34 of 38

2.6 Sample screens for the section

Fig 1 (Homepage with Login compressed)

Video Streaming Software Design Specifications

Page 35 of 38

Fig 2 (Homepage with Login expanded)

Fig 3 (AP Admin Dashboard)

Video Streaming Software Design Specifications

Page 36 of 38

Fig 4 (Institute Admin Dashboard)

Fig 5 (Instructor / Manager Dashboard)

Video Streaming Software Design Specifications

Page 37 of 38

Fig 6 (Detail page of a specific video)

Video Streaming Software Design Specifications

Page 38 of 38

Anda mungkin juga menyukai