Superior Admin Panel An Open Source Alternative Table of Contents 1. 2. Introduction .......................................................................................................................................... 6 1.0 Goals and Objectives ................................................................................................................... 6 1.1 Statement of Scope ..................................................................................................................... 6 1.2 Software Context ......................................................................................................................... 6 1.3 Major Constraints ........................................................................................................................ 6 Usage Scenario ...................................................................................................................................... 6 2.0 2.0.1 2.1 2.1.1 2.2 3. Administrator .......................................................................................................................... 6 Use-Cases..................................................................................................................................... 6 Use-Case Diagram ................................................................................................................... 7 Special Usage Considerations ...................................................................................................... 7 Data Model and Description ................................................................................................................. 8 3.0 4. User Profiles................................................................................................................................. 6 Data Description .......................................................................................................................... 8 3.0.1 Data Objects ............................................................................................................................ 8 3.0.2 Relationships ........................................................................................................................... 8 3.0.3 Complete Data Model ............................................................................................................. 8 3.0.4 Data Dictionary........................................................................................................................ 8 Functional Model and Description ........................................................................................................ 8 4.1 General Functions........................................................................................................................ 8 4.1.1 User Login................................................................................................................................ 8 4.1.2 Forgotten Password ................................................................................................................ 9 4.1.3 Log Out .................................................................................................................................. 10 4.2 Management ............................................................................................................................. 11 4.3 Superior Admin Panel Configuration ......................................................................................... 11 4.4 MYSQL Management ................................................................................................................. 11 4.4.1 Create MYSQL User ............................................................................................................... 11 4.4.2 Delete MYSQL User ............................................................................................................... 11 4.4.3 Modify MYSQL User .............................................................................................................. 12 4.4.4 Create MYSQL Database ....................................................................................................... 13 4.4.5 Delete MYSQL Database........................................................................................................ 14 4.4.6 Modify MYSQL Database....................................................................................................... 15 4.5 4.5.1 Create Domain ...................................................................................................................... 16 4.5.2 Delete Domain ...................................................................................................................... 16 4.5.3 Restart Apache ...................................................................................................................... 17 4.5.4 Reload Apache....................................................................................................................... 18 4.5.5 Server Online Check .............................................................................................................. 19 4.6 Statistics Viewer ........................................................................................................................ 20 4.7 Server Information .................................................................................................................... 20 4.8 Git Repositories ......................................................................................................................... 20 4.9 Svn Repositories ........................................................................................................................ 20 4.10 WebDAV Support....................................................................................................................... 20 4.11 Logs ............................................................................................................................................ 20 4.12 User Preferences ....................................................................................................................... 20 4.13 Htaccess Creation ...................................................................................................................... 20 4.14 Software Interface Description ................................................................................................. 20 4.14.1.1 External Machine Interfaces ............................................................................................. 20 4.14.1.2 External System Interfaces ............................................................................................... 20 4.14.1.3 Human Interface ............................................................................................................... 20 4.15 5 Apache2 ..................................................................................................................................... 16 Control Flow Description ........................................................................................................... 20 Behavioral Model and Description ..................................................................................................... 20 5.1 Description for Software Behavior ............................................................................................ 20 5.1.1 Events .................................................................................................................................... 20 5.1.2 States ..................................................................................................................................... 20 5.2 State Transition Diagrams ......................................................................................................... 20 5.3 Control Specification (CSPEC) .................................................................................................... 20 6 Restrictions, Limitations, and Constraints .......................................................................................... 20 7 Validation Criteria ............................................................................................................................... 20 7.1 Classes of Tests .......................................................................................................................... 21 7.2 Expected Software Response .................................................................................................... 21 7.3 Performance Bounds ................................................................................................................. 21 8 Appendices .......................................................................................................................................... 21 8.1 System Traceability Matrix ........................................................................................................ 21 8.2 Product Strategies ..................................................................................................................... 21 8.3 Analysis Metric to be Used ........................................................................................................ 21 8.4 Supplementary Information (as required) ................................................................................ 21 1. Introduction 1.0 Goals and Objectives 1.1 Statement of Scope 1.2 Software Context 1.3 Major Constraints 2. Usage Scenario This section provides a usage scenario for the software. It organized information collected during requirements elicitation into use-cases. 2.0 User Profiles 2.0.1 Administrator This user will maintain the server, and be the only user. They require access to everything on the UI, and will have individual preference settings per user account. 2.1 Use-Cases 2.1.1 Use-Case Diagram 2.2 Special Usage Considerations The Superior Admin Panel will have several requirements of the users before it can be used. It will require: root access to the server, and the systems that each module control (if enabled) to already be installed on the server. Failure to not have the software required before the install will result in the module not working as intended. 3. Data Model and Description 3.0 Data Description 3.0.1 Data Objects 3.0.2 Relationships 3.0.3 Complete Data Model 3.0.4 Data Dictionary 4. Functional Model and Description A description of each major software function, along with data flow or class hierarchy (OO) is presented. 4.1 General Functions The user login function will allow system users to login to their profile to view and administer their system. 4.1.1 User Login Description: Inputs: This function allows the user to login to their profile on System Admin Panel to view and administer the system Username Password Source of Input: Any user Outputs: Valid Credentials Destination: Any user Processing: Input his username and password. Validate username Validate password Login to system Requirements: Valid user database Pre-condition: User must have a valid username and password Account must not be locked out Post-condition: User must have a valid username and password User can access specified areas based on account status Last login time is updated Side Effects: None Responses: Invalid username/password. “Please re-enter your username and password, or try the forgotten password option.” Stability: Stable Necessity: Mandatory 4.1.2 Forgotten Password Description: This function allows the user to request that their username and password be sent to the email address already existing in the user database via email. Inputs: Username Email Address Source of Input: Any user Outputs: Emailed Password and Username Message informing user of the email that was sent Destination: Any user Processing: Input username or email address Validate username Look up email address Send email with password and email Requirements: Valid user database Pre-condition: User must have a valid username and password Post-condition: User can access their profile User can access the Superior Admin Panel system Last login time is updated Side Effects: None Responses: Invalid email address/username. “Invalid username or password; please try re-entering your information.” Stability: Stable Necessity: Mandatory 4.1.3 Log Out Description: This function allows the user to log out of Superior Admin Panel Inputs: None Source of Input: Any user Outputs: Superior Admin Panel Home Page Destination: Any user Processing: Clear user’s session data Take user to the home page Requirements: Valid user database Pre-condition: User must be logged in Post-condition: User can not access any of the site features, other than login. Side Effects: None Responses: None Stability: Stable Necessity: Mandatory 4.2 Management 4.3 Superior Admin Panel Configuration 4.4 MYSQL Management 4.4.1 Create MYSQL User Description: This function allows the user to create a new MYSQL user Inputs: Username for new MYSQL user Password for new MYSQL user Source of Input: Any user Outputs: MYSQL Usernames List Destination: Any user Processing: Get the new MYSQL username and password Check for existing username Requirements: Valid MYSQL setup Pre-condition: New MYSQL user must not exist Post-condition: New MYSQL user can access certain MYSQL databases Side Effects: User already exists Responses: User already exists. Display a message, “That username is already in use, please try a different username.” Stability: Stable Necessity: Mandatory 4.4.2 Delete MYSQL User Description: This function allows the user to delete an existing MYSQL user Inputs: Username of MYSQL user to delete Source of Input: Any user Outputs: MYSQL Usernames List Destination: Any user Processing: Get username to delete Check for username Delete MYSQL user Requirements: Valid MYSQL setup Pre-condition: MYSQL user must exist Post-condition: MYSQL user can access certain MYSQL databases Side Effects: None Responses: User does not already exist. Display a message, “That MYSQL username could not be found, please try a different username.” Stability: Stable Necessity: Mandatory 4.4.3 Modify MYSQL User Description: This function allows the user to modify an existing MYSQL user’s password. Inputs: Username of MYSQL user New Password Old Password Source of Input: Any user Outputs: MYSQL Usernames List Destination: Any user Processing: Get MYSQL username Get old MYSQL password Get new MYSQL password Check for username Check old MYSQL password Change MYSQL user’s password to the new MYSQL password Requirements: Valid MYSQL setup Pre-condition: MYSQL user must exist MYSQL user’s old password must match the current password Post-condition: MYSQL user’s password is change to the new MYSQL password Side Effects: None Responses: User does not already exist. Display a message, “That MYSQL username could not be found, please try a different username.” User’s old password did not match. Display a message, “Your old password did not match your current password.” User’s new password was not confirmed. Display a message, “Your new password was not typed the same in both boxes.” Stability: Stable Necessity: Mandatory 4.4.4 Create MYSQL Database Description: This function allows the user to create a MYSQL database and give access to specific user. The function will also allow the creation of a new user if needed. Inputs: Name of database MYSQL username Permissions for username inside of the database Source of Input: Any user Outputs: MYSQL Database List Destination: Any user Processing: Get MYSQL database name Select MYSQL user Create new MYSQL user (if needed) Check that MYSQL database name does not exist Create MYSQL database Requirements: Valid MYSQL setup Pre-condition: MYSQL database must not exist Post-condition: MYSQL database exists MYSQL user is given access to MYSQL database Side Effects: None Responses: MYSQL database already exists. Display a message, “That MYSQL database already exists.” Stability: Stable Necessity: Mandatory 4.4.5 Delete MYSQL Database Description: This function allows the user to delete an existing MYSQL database. Inputs: Name of database Source of Input: Any user Outputs: MYSQL Database List Destination: Any user Processing: Get MYSQL database name Confirm deletion with user. Check that the MYSQL database exists. Delete MYSQL database Requirements: Valid MYSQL setup Pre-condition: MYSQL database must exist Post-condition: MYSQL database does not exist. Side Effects: None Responses: MYSQL database does not exist. Display a message, “That MYSQL database does not exist.” Stability: Stable Necessity: Mandatory 4.4.6 Modify MYSQL Database Description: This function allows the user to modify a selected MYSQL database. The user will be able to modify the users with access, the access permissions for that user, and the comment for the database. Inputs: Name of database MYSQL users MYSQL user permissions Database comment (description) Source of Input: Any user Outputs: MYSQL Database List Destination: Any user Processing: Get MYSQL database name Confirm deletion with user. Check that the MYSQL database exists. Delete MYSQL database Requirements: Valid MYSQL setup Pre-condition: MYSQL database must exist Post-condition: MYSQL database does not exist. Side Effects: None Responses: MYSQL database does not exist. Display a message, “That MYSQL database does not exist.” Stability: Stable Necessity: Mandatory 4.5 Apache2 4.5.1 Create Domain Description: This function allows the user to create a new domain or subdomain on the server. Inputs: Domain Name Source of Input: Any user Outputs: Domain List Destination: Any user Processing: Get domain name Check for duplicate domain name Create virtual host file for Apache Reload Apache service Java Applet detects that the server is back up Display Domain List Requirements: Valid Apache setup Pre-condition: Domain must not exist. Post-condition: Domain exists. Side Effects: Apache service is reloaded Responses: Domain already exists. Display a message, “That domain already exists.” Apache never comes back up. Display “The apache service did not restart appropriately. Please manually look at your server to try to resolving the issues.” Stability: Stable Necessity: Mandatory 4.5.2 Delete Domain Description: This function allows the user to delete a domain or sub-domain on the server. Inputs: Domain Name Source of Input: Any user Outputs: Domain List Destination: Any user Processing: Get domain name to delete Confirm deletion with user Check for domain name Delete Apache virtual host file Load Java applet to check apache service Reload Apache service Java Applet detects that the server is back up Display Domain List Requirements: Valid Apache setup Pre-condition: Domain must exist. Post-condition: Domain does not exist. Side Effects: Apache is reloaded Responses: Domain does not exist. Display a message, “That domain does not exist.” Apache never comes back up. Display “The apache service did not restart appropriately. Please manually look at your server to try to resolving the issues.” Stability: Stable Necessity: Mandatory 4.5.3 Restart Apache Description: This function allows the user to easily restart the apache service on the server. Inputs: None Source of Input: Any user Outputs: Domain List Destination: Any user Processing: Load Java applet to check apache service Restart Apache service Java Applet detects that the server is back up Requirements: Valid Apache setup Pre-condition: None Post-condition: None Side Effects: Apache is restarted Responses: Apache never comes back up. Display “The apache service did not restart appropriately. Please manually look at your server to try to resolving the issues.” Stability: Stable Necessity: Mandatory 4.5.4 Reload Apache Description: This function allows the user to easily reload the apache service on the server. Inputs: None Source of Input: Any user Outputs: Domain List Destination: Any user Processing: Load Java applet to check apache service Reload Apache service Java Applet detects that the server is back up Requirements: Valid Apache setup Pre-condition: None Post-condition: None Side Effects: Apache is reloaded Responses: Apache never comes back up. Display “The apache service did not reload appropriately. Please manually look at your server to try to resolving the issues.” Stability: Stable Necessity: Mandatory 4.5.5 Server Online Check Description: This java function will load on to a user’s computer and detect when the server is ready to be used again (after an apache restart). Inputs: Destination Source of Input: Function Call Outputs: Server Status Destination: Any user Processing: Load Java applet to check apache service Java Applet detects that the server is back up Takes user to destination Requirements: Valid Apache setup Java Pre-condition: None Post-condition: None Side Effects: None Responses: None Stability: Stable Necessity: Mandatory 4.6 Statistics Viewer 4.7 Server Information 4.8 Git Repositories 4.9 Svn Repositories 4.10 WebDAV Support 4.11 Logs 4.12 User Preferences 4.13 Htaccess Creation 4.14 Software Interface Description 4.14.1.1 External Machine Interfaces 4.14.1.2 External System Interfaces 4.14.1.3 Human Interface 4.15 Control Flow Description 5 Behavioral Model and Description 5.1 Description for Software Behavior 5.1.1 Events 5.1.2 States 5.2 State Transition Diagrams 5.3 Control Specification (CSPEC) 6 Restrictions, Limitations, and Constraints 7 Validation Criteria The approach to software validation is described 7.1 Classes of Tests We will test mainly on Ubuntu Linux to gather full support of the Ubuntu (Debian) server. This smaller focus will allow us to be realistic in what we are trying to support as far as testing different versions of Linux. We will focus heavily on the testing of each module individually, and check to make sure that they do each task they are supposed to do. We will test the results by setting up a dummy server in which we will attempt to configure the site using various modules. We will then use the site and see if the changes took place. 7.2 Expected Software Response We expect that the changes the user ask to be done will be completed by the software and that the user will be notified, and be able to see the changes when he is using the website or server. 7.3 Performance Bounds The performance bounds will be how many domains we test with and the number of servers we test with. Also limited will be the type of distribution of Linux that is used, as we will only test on Ubuntu Server. 8 Appendices 8.1 System Traceability Matrix 8.2 Product Strategies 8.3 Analysis Metric to be Used 8.4 Supplementary Information (as required)