SynapseIndia - Custom Software Development Company
eCommerce Services
CMS Development
Website Development
Mobile App Development
Microsoft Solutions
Website Designing

PHP Website for Education 'NCBTMB' – Board Exam Preparation Platform

Client Brief

National certification Board for Therapeutic Massage & Bodywork or NCBTMB is a website helping candidates to prepare for the exams that come under the genre. The client approached us to integrate "PayPal Payflow" payment that can be used for user registration and fixing some issues.

Our Endeavor

This wan an existing site. We have also added the payment process in the existing shopping cart so that student need to pay course fees before take the test. We have implemented the http authentication on the root folder and add robot for the Google search. We have also worked on the following issue of the existing site:


  • Resolved the issue regarding missing entries in the system during the creation of new school.
  • Resolved the "Notice: Undefined index: es_id" on the layout.phtml (line no 98) page.
  • Resolved the Student registration issue. Therefore student can register with newly created school and click on the confirmation link to activate his/her account. Also user can login to use this account in the system. We have also resolved the student's profile in "manage accounts" under newly created database. Therefore admin can view the student profile page without any errors.
  • Added default value of 'no. of student' as (99999) and expire date (20) for the 'individual class' at the time of creation new school.
  • We have also investigated the 'lock' issue of the shopping cart and found there is 'trial' data setting issue and admin can set trial from the admin panel of the school.
  • Investigated the upload media file issue in the 'Curriculum' section under admin panel and found there is some dir permission issue for time being I have just changed the folder permission based on client inputs.
  • Added validation for the '@hotmail.com', '@msn.com' and '@live.ca' so that user can not register with these email ids. Changed the admin email id to ce@ncbtmb.org (with the name "NCBTMB examprep Admin") and added 'dwayne@rmtstudents.com' as bcc for the confirmation email and checkout process email.
  • Added the checkbox on the registration page for the user agreement and put a validation so that user need to check the checkbox in order to perform the registration process.
  • Displayed the price along with cents (0.00) as per the program price under the registration page.
  • Added link in the "Terms of use" text under the registration page.
  • Displayed the popup on the percentage display bars and removed the question marks. Therefore if and when any student click on the percentage display bars then system will open the 'Review Test Details Summary' popup.
  • Removed the 'Browse Tests' links from the header navigation and removed the 'schools', 'about', 'team', 'clients' and 'FAQ' links from bottom navigation.
  • Inserted manual missing entries for 'Test Database' school. Therefore admin can login in the admin area of this school.

The most challenging task is implement PayPal Payflow in the site and we are unable to implement PayPal Payflow due to some configuration issue so we have create a test account in the PayPal and investigate with the existing client PayPal account to find out issue and we was also talked with PayPal support team and find out there is some IP issue so we have guide to client to setup his PayPal account to work properly after that we have successfully implemented the PayPal payflow payment gateway in the site.

Further to we have also implemented the following features and functionalities on this site:


  • Added Facebook, Twitter and LinkedIn buttons on the bottom of the homepage.
  • Moved all the static values of database connection, site url, email address (TO, BCC, CC) and site name into one config file.
  • Investigated the user privilege for database user.
  • Reviewed the configure test script on the take test page to implement percentage distribution functionality.
  • Worked on distributing the percentage on the configure test page. However, if and when any category don't have any test/questions or have less then questions (according the no of questions as per the percentage distribution) then the script fails to distribute the questions in a uniform way and we are still working on this calculation.
  • Created the percentage distribution script under the configure test page so that system will distribute the questions based on the category percentage distribution and in future this will be set by admin.
  • Changed the welcome text, Changed the Left Side Title text to 'NCBTMB Practice Exam' and Right Side Title text to 'Study Specific Content Areas'. Also added the 'Main Site', 'Contact Us', 'Content Areas' and 'Feedback' link on the footer navigation, Added a disclaimer paragraph to the bottom of the welcome page and the home page, changed the text 'BACK TO Exam Express' to 'Back to Welcome Page' under the home page and removed the feedback section from the welcome page and added 'send feedback' button based on your suggestions.
  • Changed the content of source page based and added the total percentage distribution row at the bottom of the list. Therefore system will show the total of percentage distribution.
  • Inserted the manual entry for dwayne and dwayne@rmtstudents.com for the 'NHPC' school (Testrunonline), updated the table structure for the 'NHPC' school (Testrunonline), grant the upload permission to upload learn document for the 'NHPC' school (Testrunonline) and modified the create new school script so that if and when admin create a new school then system will auto created the 'dwayne' school admin and create the updated table structure.
  • Implemented the percentage distribution functionality under the admin panel so that school admin can set the percentage and questions appears on the take test page as per the admin settings (Apps.Testrunonline).
  • Modified the percentage distribution script to allow 0% also so that school admin should be enter the 100% or 0% for the percentage distribution, modified the 'your school' table structure to save percentage distribution value in the database and added the feedback@ncbtmbexamprep.org email id as cc in the feedback email (NCBTMBexamprep).
  • Modified the search screen as per the 'test editor' screen and waiting for your visual (screen) for this section and disabled the right click feature, to prevent users from printing the questions.
  • Redesigned the search form on the search questions screen based on client specs, added the validation on the search form and worked on the search question screen.
  • Implemented the search query on the search question screen and displayed the question list based on filter option.
  • Implemented Save Level, Activate, De-Activate, Delete, Add Media and move questions functionality on the search question screen.
  • Implemented edit functionality on the search screen.
  • Modified the move questions functionality based on the choose programe, displayed the no. of questions on the question list based on your suggestions and deployed the updated files of search questions screens on the testrunonline site, investigated the time zone issue for the schedule test functionality and found there are some wrong calculation to calculate the difference between server time zone and choose time zone at the time of test schedule creation or updating from admin panel.
  • Modified the time difference calculation on the creating/updating schedule test based on client suggestions and deployed the modified time zone script on the both (ncbtmbexamprep and testrunonline) server, designed the renew page for the student renew process.
  • Added the validation on the renew page to check student exipry date so that if subscription expiry date less than 2 week then student will access this page, added the message above the subscription form and worked on the functionality of the subscription plan.
  • Addressed the time zone issue on the apps folder so that schedule test will be enable/disable at same time which is set by the school admin and deployed the modification of time zone on the testrunonline and ncbtmbexamprep site, displayed the welcome message on the renew page as per the expire date and started working on the implement payment gateway on the renew page.
  • Added the server side validation on the renew form so that if and when any user submit the wrong information we have redirect to renew.php page with error message, Implemented the payflow payment method on the renew page.
  • Investigated the issue (show's correct answer as incorrect answer in the test detail popup) and found there is double quote (") issue. we have corrected the same and now it's appear correctly, displayed whole incorrect answer text in red color based on your suggestions, corrected the flag alert text and deployed above mentioned changes on the testrunonline and app server, modified the 'testrun_individual_schedule' table structure to maintain the value for the one day trial access code, modified the registration script to save data for the day trial access code and still working on the renew section and will keep you posted on the same.
  • Implemented the renew functionality so that user can renew his/her account, modified the registration process for both section (access code and payment method) to maintain data for the one day trial access code. Please note that, if any user register with one day trial access code so that system treated as paid user and save expire date one day after the registration and synchronized the renew functionality with existing scripts, resolved the issue to save login status for the new students. (Please note that, there are some wrong column name written in the sql query that's why login status was not saved for the new student), modified the login script so that if and when any student's subscription expire date belong to alert date (expire date - 2 week) then system will redirect to renew page otherwise system will redirect to welcome page and added the condition on the welcome and home page to check subscription expire date. Therefore system will check if account has been expired then system will redirect to renew page.
  • Added the condition to check remaining program from the current date so that system will show only those program which expire date grater than current date against the logged in user and added the pre selected previous program on the renew page and set subscription length to 1 year based on your provided suggestions, modified the new school creation script so that system will create the testrun_individual_schedule table with the modified table structure, and changed max row 500 to 1000 on the search question screen.
  • Changed the from email address of the scheduled a test email notification under NCBTMBexamprep site, changed the welcome message. In case of account is not expired on the renew page and increased the font size of '10 days' & made text bold, added a link to "Renew Later" after the welcome message which redirect to welcome page, changed the text "Subscribe Now" to "Renew Now" of the button under renew page and added the bulk purchase fields based on your suggestion on the student registration form.
  • Investigated the email notification login link based on your inputs/suggestions and found it working fine at our end, changed the renew period for 'trial' access code and renew account from '5 minutes' to '1 Day', changed the text to 'your account will expire Today (today date)' based on your suggestions in case if account is expired today, modified the testrun_pricing table to maintain bulk 1 year subscription length price, added one more column to set price of bulk 1year on the price settings school under the super admin panel, modified the calculation script to show total price based on the no. of account entered by the user.
  • Inserted one row for 'Bulk 1year' subscription length, modified the old script to maintain new subscription length, displayed the subscription length option based on choose purchase single or multiple account option under the student registration form, reviewed the backend functionality of the accesscode and created the logic to generate accesscode.
  • Modified the script to maintain the campus name as school name based on your provided inputs, chagend the logic to create class name. Therefore script will create the class name with your school + extension (ABC School 01), divided the login page into to page one for student login and other one for admin login (login.php and adminlogin.php), added the link in the header navigation after the contact link based on your suggestions, changed the logout script to maintaion redirection so that if and when any user logout from the frontend section then system will redirect to login.php otherwise system will redirect to adminlogin.php page and set the parameter for the superadmin login page so that if and when user open the superadmin url then they can login in the superadmin section. Also removed the default message if and when any user save the 0% distribution under the category manager screen.
  • Removed the manual subscription length with user subscription length from the student registration process, changed the campus name to "My School" (static value) based on your suggestions, changed the message on the confirmation page based on your provided content, changed the layout of studentreginstration page based on provided pptx document [120729__Multiple_Accounts_from_Registration_page.pptx], deployed the modification on the ncbtmbexamprep site with two school (exam prep and ABC Demo School) and removed bcc from the notification email of user credentials at the time of registration. (Already done on the live site).
  • Changed the bulk subscription length from Bulk 1 Year to Bulk 6 Months, changed the name of the field 'Your School' to Business Name/Account Holder', changed the default subscription length 1 year to 3 months, added the Price setting in superadmin for 6 Months bulk purchases so that admin can set the price for the bulk 6 months subscription price, modified the renew message script to display correct date of subscription expire date under the renew page, disabled the PD box if category status is inactive, added condition to save greater then 0 PD value in the price distribution screen under admin section, deployed the login layout on the ncbtmbexamprep site.
  • Displayed the total price in 2 digits after the decimal, reduced the 'How Many?' field size and added 'minimum 7 accounts' text after this field, replaced the text under the 'programs' field with 'Click the program(s) you wish to purchase' matched the percentage distribution no. of questions with the user entered numbers, deployed the modification on the ncbtmbexamprep site along with price distribution changes.
  • Added a extra field 'Classification' and set default value 'Classification 1' for all existing questions under the Test & Questions screen, added extra field 'Classification' on the search questions edit screen, added a checkbox in the schedule test screen. Therefore if and when any admin select the 'individual class' then this checkbox will appeard and started working on the frontend to maintain above checkbox condition.
  • Replaced the text field with dropdown menu and added options 'classification1', 'classification2', 'classification3', 'classification4' and set 'classification1' as default option in all the existing options under the Test & Questions screen and added two fields in the schedule test screen to set schedule test start and expiry date from the course purchase date.
  • Removed the 'robots.txt' file from the ncbtmbexamprep server, implemented the schedule test expire based on the purchase date feature and modified the test questions screen to implement the edit Classification options value from the admin options screen.
  • Implemented the manage 'Classification' options feature under the admin options screen so that admin can edit Classification options text from this section, manually activated all inactive account of individual class for the exam prep school, changed the 'NCBTMBexamprep.org' text to 'NCBTMB Exam Prep' in the activation email, added 'Re-enter E-mail Address' field in the student registration page for the both process (Access Code & Payment Gateway), added validation to validate 'Re-enter E-mail Address' field under the student registration form and changed the from email address 'dwayne@rmtstudents.com' to 'ce@ncbtmb.org' under the forgot password email.
  • Implemented the like button in the bottom of the page, deployed date specific scheduled test feature on both server (ncbtmbexamprep and testrunonline) and deployed classification feature on the testrunonline server and this feature display only for the 'Western College' and 'CCHST' school and rest of schools having previous feature.
  • Made database (table structure) changes for the purchase date expiry feature on the 'Meridian Education' and 'NHPC' school, allowed to admins to edit the name of classification 1 under the 'Classification' screen, added column to show Classification value on the question list for both 'Test Editor' and 'Search Questions' page based on provided ppt document [120808 - options for classifications.pptx], added 'Set Classification' feature on the both 'Test Editor' and 'Search Questions' page so that admin can set the classification value all at once, added 'Classification' field in the search question filter so that admin can apply this filter also during the search, deployed 'Classification' changes on the testrunonline server and added facebook like button at bottom of the page on all the pages.
  • Added 'classification' field in the schedule test filter so that school admin can also filter the questions with this field, added the classification filter condition in the configure test script so that if and when a student will take a schedule test, a script will filter the questions with classification field value.
  • Added the Facebook "Like: button on the 'Login', 'Welcome', 'Home', 'Test', 'Take Test' and 'Show result' pages.
  • Investigated the speed of finalizing result script and found there wre two major issues which wre causing delay in finalizing the results. The first issue was about the large amount of data that were been submitted during the form submission. To overcome this hurdle we have changed the logic where we have implemeted separate sessions for form submitting. At the time of final submission, all teh data from the sessions will be culmnated and a result script will be generated.. Second, the script was taking time to update test_questions table in the database and this table have large amount of data and script need to search in all the row then update it's related record so that we have created indexing for mid, oqid and testid column in the test_questions table. Now we have successfully decrease the speed of finalizing result script.  
  • Facilitated a password protect feature on the schedule test screen, added password field on the edit schedule test form so that school admin can edit the password or they can also remove the password from the test, incorporated the client side and serverside validation.
  • Added the password protect feature on the scheduled test popup. Therefore if and when any user see the schedule test popup and click on the 'test' link then system will check if password is not set on the clicked test then system will direct open the test otherwise system will open a password field below the clicked link so that student need to enter correct password and click on the go button to redirect to test instruction page, disabled the price setting feature from the superadmin section based on your suggestion.
  • Created an 'Email Manager' page under 'Admin Options' section and displayed the email list, added add, edit and delete functionality on the 'Email Manager' page, incorporated the client and server side validation, so that system will check the correct format of email address and duplicate email address.
  • Added CSV uploading functionality on the 'Email Manager' page under 'Admin Options' section.
  • We had to add customized features to an existing solution that made the whole system more flexible and user friendly. The newly added features consist of permission rights that can be controlled by each school in its own way. Student participation can be made active or inactive and we have incorporated the solution that helps upload the mass "Set Classification" feature for College and School. There is a one-year free subscription plan for a student for a corresponding school.
  • We have improved the user interface of a PHP5 based e-learning portal with brand new design. We have also enhanced the user experience of the website by implementing new features such as option for students to retake exam, option for teachers to reevaluate and edit marks etc


PHP, Design HTML & CSS



View Tags

Client Comments

I can't even express how incredibly this team has performed in every aspect of this project. The only reason I am giving a 5 out of 5 is because Elance doesn't allow you to give a 10 out of 5. The team has taken a program over from my previous providers and has shown me a new level of expertise creativity and excellence that I didn't even know existed in the programming world. By far the most highly skilled, accessible, and efficient programmer I have come across in my 8+ years in business. There is absolutely no question that the team will employ going forward for ALL of my programming needs. The design team is the most creative, and innovative design team I have ever worked with. They have taken my abstract thoughts and brought it to visual reality in a way that far exceeded my vision. You also have a customer for life as long as I am in business. The team has brought my business to the next level by building a mobile app for my program that places me in a position to compete with the top education and learning management system providers in the world. I have been outsourcing works to India for several years, and have in the past been happy with other providers, but never have I come across a team that has so impeccably executed everything I have requested at such an extremely high level while being fully accessible throughout the process. If you care about your business, choose with SynapseIndia and request these individuals... as long as you don't interrupt the incredible work they are doing for me :)

PHP Website for Online Education Services 'HSC'

PHP Website for Online Education Services 'HSC'

View Details
Website for 'Vaughan Supremacy' Using Dot Net – Online Quiz Game

Website for 'Vaughan Supremacy' Using Dot Net – Online Quiz Game

View Details
Tutors House - Design Change & Module Integration

Tutors House - Design Change & Module Integration

View Details
PHP Website for Education 'Kinderkare' – Day Nursery

PHP Website for Education 'Kinderkare' – Day Nursery

View Details
We make things that Change things quickly

Connect to an expert

SynapseIndia Contact
+44 2079934232
India :
SynapseIndia Locations
14121 NE Airport Way, #358642,
Portland, Oregon 97230, USA
View On Google Maps
SDF B-6, NSEZ, Sector 81, Noida
201305, Uttar Pradesh, INDIA
View On Google Maps
Download Corporate Profile
SynapseIndia Corporate Profile
SynapseIndia Corporate Profile