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
Hardware and Software Environment
External Interface Requirements
Design and Implementation Constraints
Quality Objectives for the Project Outcome
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.
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.
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.
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).
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.
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.
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 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.
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.
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.
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
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.
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
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.
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.
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.
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.
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.
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
The project is based on open-source components. In very rare cases of necessity of deploying proprietary component, the project owner will be consulted.
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.
· 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
Wireframes depicted in this section provides visual concept of correlation between web pages. Developer can improve the wireframe as needed.
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
***