MySQL Exam Web Application Request for Proposal

Created by Mohammad Ali Sarbanha on 2018-05-04

4z.com

 

Date

Version

Author

Approved by

 

2018-05-03

1.0

Mohammad Ali Sarbanha

 

Description

Document First Release

2018-05-03

2.0

Mohammad Ali Sarbanha

Elen Virabyan

Description

Period of performance modified * Locations Modified * Functional Diagram Added * Front-End Wireframe Added * Back-End Wireframe Added

2018-05-04

2.5

Mohammad Ali Sarbanha

 

Description

A few lexical corrections on the document.

 


Table of Contents

Purpose. 2

Basic Requirements. 2

Hardware and Software Environment. 2

Statement of Work (SOW). 2

Scope of Work. 2

Locations. 3

Period of Performance. 3

Work Breakdown Structure. 3

Project Outcome. 4

Delivery Plan. 4

Applicable Tools. 4

Acceptance Criteria. 4

Overall Description. 4

Product Perspective. 4

Product Features. 5

External Interface Requirements. 5

User Interfaces. 5

Software Interfaces. 5

Communication Interfaces. 5

Security Requirements. 5

Design and Implementation Constraints. 6

Documentation. 6

Assumptions and Dependencies. 6

Quality Objectives for the Project Outcome. 6

Features List. 6

Functional Diagram.. 7

Wireframe Diagrams. 8

Front-End Wireframe. 8

Back-End Wireframe. 8

Intellectual Property Rights. 9

 


Purpose

The project is intended to run Web-Based exams online for employees and trainees. The main goal of the project is to assess the knowledge of attendees in terms of ability of creating and running correct SQL queries on MySQL databases.

This project is designed based on the lessons taught on tutorial websites such as W3School. The knowledge of attendees is measured against the material provided within selected website.

Basic Requirements

The project is required to comply with the following requirements:

1.       Operational environment must be free Open-Source

2.       Selected web server must be free Open-Source software such as Apache

3.       Development language and tools must be free Open-Source

4.       The database subject of this project must be MySQL/MariaDB.

Hardware and Software Environment

The project is intended to be developed based on open-source languages, tools and frameworks such as PHP, Symfony framework and Doctrine. The product of the project must be tested against Debian Linux.

The platform on which the entire functionality must be guaranteed is as follows.

Software Requirements:

·         Debian Linux Operating System

·         Apache 2.x HTTP Server

·         MySQL Database Server

Hardware Requirements:

·         Minimum CPU Core:1

·         Minimum RAM: 3GB

·         Disk Space: 20GB

The hardware requirement is based on the testing environment requirements, for large number of users and running tests, runtime tests reveal the required hardware resources.

Statement of Work (SOW)

Scope of Work

The following items are included in the project scope:

·         Preparation of the test environment.

·         Creating the project specification (this document) document.

·         Design, develop and implement new web based software.

·         Develop all features stated in Features List section.

·         Documentation on how to install and implement the software on a new machine.

·         Preparing and loading one hundred SQL quizzes into the final product.

·         Functional tests.

·         Proof test and acceptance test procedures.

The following items are out of scope:

·         Source code documentation.

·         Technical system design documentation such as use-cases, RUP documentation, UML, database schema or similar documentations are out of project scope.

·         Maintenance and upgrades.

·         High-Availability, clustering and service redundancy for large number of users.

·         Support of none Left-To-Right languages.

·         Translating system texts (Multi-language feature).

Locations

Company provides the testing environment machines for primitive installation. Final product will be installed on the servers within company premises remotely by developer or based on the installation document by company technical staff.

Period of Performance

Developer is required to study the project thoroughly, identify the requirement and tools based on his competencies, and develop an appropriate WBS of the project along with perfectly determined time estimation.

Work Breakdown Structure

As the WBS of the project states below, the list of major tasks to be done during the course of the project. The developer is supposed to rearrange, modify or recreate an appropriate WBS with the time estimation for each task.

Task Code

Description

MEWA.01

Project Specification Document

MEWA.02

Development Env. Initialization

MEWA.02.01

Prepare Development Environment (LAMP)

MEWA.02.02

Prepare Git Repositories

MEWA.02.03

Symfony Initialization/Configuration

MEWA.03

Authentication/Authorization component installation

MEWA.03.01

User Registration Integration Tests

MEWA.03.02

User Login/Logout Integration Tests

MEWA.04

System Database Design

MEWA.05

System Overall Functionality Design

MEWA.06

Administration Functions Development

MEWA.06.01

Add New User

MEWA.06.02

Modify User

MEWA.06.03

View User Progress

MEWA.06.04

Add New Quiz

MEWA.06.05

Modify Quiz

MEWA.06.06

Modify Administrator Password

MEWA.07

User Functions Development

MEWA.07.01

Profile/Password Update

MEWA.07.02

View Progress

MEWA.07.03

SQL Test Area Web-based MySQL Console

MEWA.07.04

Trigger System to Validate the Last Query as a Quiz Answer

MEWA.08

System Core Functions Development

MEWA.08.01

Quiz Initializer Core Functions

MEWA.08.02

Validate User Answer

MEWA.08.03

Update User Status After Validation

MEWA.08.04

Multi-Language Feature Development

MEWA.08.05

Web-based system installer

MEWA.09

Functionality Tests

MEWA.09.01

Administration Functions Test

MEWA.09.02

User Functions Test

MEWA.09.03

System Core Functions Tests

MEWA.10

Administration Document Development

MEWA.11

One Hundred Exam Tasks

MEWA.11.01

Collect 100 Exam Tasks

MEWA.11.02

Load 100 Exam Tasks into the system+Tests

MEWA.12

Final Implementation on production environment

MEWA.13

Acceptance

MEWA.14

Project Delivery / Hand-over

MEWA.15

Project Closure

Project Outcome

Project deliverables are supposed to be software bundles comprising any necessary code and instructions to deploy the final product.

Final product deliverables of this project are:

·         External components bundled with the final product.

·         Installation and deployment procedures documentation.

·         One hundred exam tasks.

·         Installed software (The project product) loaded with exam tasks on the production machine and/or development machine as per company request.

Delivery Plan

In order to make sure all aspects of project have been examined and implemented, it is necessary to make sure stake holders are involved in the project delivery while the following steps are taken into account:

1.       Final release of the project is installed on the test platform.

2.       Project owner gains full access to the system.

3.       Project owner issues the acceptance once thorough project inspection is done.

4.       The final product will be installed on the production environment.

Deliverables will be packed and handed over to the recipient through specified media.

Applicable Tools

The pre-made frameworks, tools and components used for this project must be mature and has long term community and vendor support. Immature tools and pieces of code which have no clear vision for the future development and supports should not be deployed.

Acceptance Criteria

The project will be accepted when the following criteria are met:

1.       Review the source code in terms of clarity and verbosity of the source code.

2.       Validate the documentation against the system functionality

3.       Features list verification by validating product functionalities

4.       Evaluation of the system by an expert attending the course of teaching and pass all the quizzes.

5.       Successful installation of production environment

Overall Description

Product Perspective

The product of this project is standalone web based software installed with no connection with other superior- or sub-systems.

The system itself is comprised of two major subsystems, (1) administration subsystem and (2) users subsystem.

Product Features

Administration component is a section which performs the following tasks:

·         Add or remove quizzes

·         Add or modify users profiles and accesses

·         Check the users progresses

User component provides the following functionalities:

·         Sign-up and user email verification

·         Minified profile information management

·         Quiz result set view

·         Taking quizzes and post them for evaluation

External Interface Requirements

User Interfaces

Users of this project will be able to interact with the system using any web browser on their desktop. User interface is based on HTML/CSS, jQuery/JavaScript and Bootstrap technologies.

JavaScript execution on the browsers must be enabled to allow jQuery, Bootstrap and Ajax methods work normally.

Software Interfaces

In order to take advantage of recent features of MySQL connectivity, MySQLi extension must be installed on development language. MySQLi must be used throughout the project.

Communication Interfaces

The web application must be developed in such way that both HTTP and HTTPS without deficiency.

Operating environment must be able to communicate with a MTA to send out legitimate email to external mail servers through SMTP protocol.

Security Requirements

The final product must securely separate users and administrator areas using appropriate group policy. There must be two access group levels defined as USER and SUPERUSER. Administrator(s) is defined under SUPERUSER group and has full access to all sections while members of USER group can access his personal profile.

Users must not be able to breach into the system in order to access or manipulate their test results or being able to access other users' private information.

Users must not be able to access the source of quizzes in order to determine the solution of their quizzes.

System must not reveal the correct answer to the user; users are able to view their success level and the quantity of correct answers and statistics. None of quizzes' texts are available to users after task completion.

Design and Implementation Constraints

Since the project is not part of comprehensive platform, comprehensive security components, database management and so forth are not developed. Administrators must be familiar with operating system security hardening, database management, service management and optimization.

The database against which quizzes are tested and the system tables are stored must be MySQL/MariaDB.

Multilingual feature must be natively designed and implemented into systems for Left-To-Right languages.

Each running quiz for an individual user must have a separate temporary database which will be removed once the test was passed successfully. Users must not have multiple open quizzes.

Documentation

The product will be delivered along with an Administration Guide within which the following items would be detailed:

·         Prerequisites for software installation

·         Installation instruction

·         Configuration instruction

·         Initialize quiz database

·         Database backup/restore procedures

·         Administrator password reset/recovery procedure

Assumptions and Dependencies

The project is based on open-source components. In very rare cases of necessity of deploying proprietary component, the project owner will be consulted.

Quality Objectives for the Project Outcome

The project outcome must meet the following quality objectives:

·         Web pages must visually maintain simplicity and logical flow.

·         The entire exam environment must be web based.

·         Users must not be able to manipulate test results.

Activities must be logged for fault traceability purposes.

Features List

·         General Features

·         Support Multilingual Feature for LTR languages

·         Fully web based front-end

·         Fully web based back-end

·         Validation of self-registered users' emails

·         Administration (Back-End) Features

·         General functions

1.       Login from different URL

2.       Logout from the system

3.       Modify Administrator's password and contact info (E-mail)

·         User functions

1.       Approve self-registered users

2.       Add new user (Trainee)

3.       Modify user's information and password

4.       Remove user and its records

5.       Retrieve users' status (Current stage of the training)

6.       Search users in the list of users

7.       Paginate users list

·         Quiz functions

1.       Add new quiz with validation rules and scores

2.       Modify existing quiz

3.       Remove quiz

·         User (Front-End) Features

·         General functions

1.       Self-register into system

2.       Login to the training system

3.       Logout from the system

4.       Update profile information and password

·         Quiz functions

1.       Start quiz once the trainee is ready

2.       Show the teaching materials and references

3.       Provide web-based simulated MySQL prompt environment

4.       Validate the user work (either by checking the tables or last entered query)

5.       Store the latest stage of the trainee

6.       Provide a summary of scores to trainee

Functional Diagram

Wireframe Diagrams

Wireframes depicted in this section provides visual concept of correlation between web pages. Developer can improve the wireframe as needed.

Front-End Wireframe

Back-End Wireframe

Intellectual Property Rights

Entire intellectual property rights of the final product and its deliverables belong to 4z.com as the owner of the project.

Intellectual property rights of any individual component deployed are recognized based on the term of use and license of that specific component.

 

Copyright © 2018 4z.com

***