Project: University of Washington School of Medicine - online learning continuing education program

Team project - my role was PHP and MySQL programming along with JavaScript and some CSS and HTML.

Client needed a secure way for doctors and other medical professionals to take an online learning program for college credit while remaining anonymous - while also allowing public access to course material.

Back to Portfolio

Back-End Technology and Features

Non-dynamic portions of the site utilize XHTML and CSS languages. Dynamic portion of the web site utilizes PHP programming language and MySQL database in addition to XHTML and CSS.

  1. PHP programming allows continuing education student to create their own anonymous user 'profile' with password and username, then log in to a secure area and take a 'pre-test' to gauge their topic-knowledge before reading the continuing education course material
  2. Upon completion, student is then directed to study 6 chapters of course material (at their leisure)
  3. Student is programmatically prevented from retaking the pre-test
  4. When finished with the material student logs in and is automatically directed to the post-test (same questions as pre-test) to see how much they improved
  5. Once completed student is programmatically prevented from returning to post-test
  6. Student is then directed to fill out a course evaluation and upon completion, prevented from returning
  7. Pre and post-test, and evaluation answers including zip code and optional comments are stored in MySQL for later analysis by admin
  8. Upon completion of evaluation student is given a 'receipt' which includes their before and after score and a convenient link to test answer key for reference
  9. Student is prevented from logging directly into receipt page until they have completed all steps, but can login to view receipt anytime after program is completed
  10. Student prints the receipt page and PDF form to submit with payment for program credit
  11. Anonymity is protected at all times
  12. Other programming features: client and server-side form validation to ensure that student answers all test and evaluation questions - done in PHP and JavaScript; server side denial of 'hacking' character insertion to prevent accidental or purposeful site and/or database sabotage; timestamps show when students completed each section; secure and session protected CMS (Content Management System) allows administrator to view results from a private password protected website at any time; CMS also allows admin to edit questions, delete, add or re-arrange answer options; admin can also delete users; admin can download test results and evaluation answers to Excel spreadsheets from the CMS - for future data-crunching using other programs as desired.

Online student reads instructions on the first page:

First page - instructions

Student registers by creating login. Writes to MySQL database:

Student registration

Student logs in:

Login page

Student takes a 15-question Pre-Test to determine their knowledge level prior to reading the course material. If they logout, program remembers where they were and returns them to this page upon re-login. Form is validated with JavaScript on client side, and PHP on server side. Test answers write to MySQL database:

Pre-test

Acknowledgement of Pre-Test completion, with instruction reminder. When student clicks to continue, they are taken to the same test to take over again. They are programatically prevented from returning to the Pre-Test:

Continuation instructions

Student is guided through 6 chapters of continuing education course material. This material is available to the public without login. At the end, student is directed to link to the Post-Test to evaluate the amount of knowledge they have gained:

Chapters

Again, student takes the exact same test (re-labeled as POST-test) which is written to MySQL database. Upon submission, the student is prevented from returning to either test:

Post-test

Student is directed to an evaluation page to submit their thoughts about the program. They are asked for their Zipcode which is validated with regex. Hacking characters in "Comments" are prevented server-side. All questions except comments are required. Answers are written to MySQL. Upon submission, student is prevented from returning to evaluation page:

Evaluation

After submission of the evaluation, student is presented with their test results, before and after, and a key to the answers if they are curious about missed questions. This is a printable receipt that they return with a filled in form (PDF) for course credit. Student can return to this by re-logging in at a later time if desired:

Receipt

Separate Content Management System. Upon logging in for CMS, admin has 3 menu choices:

  1. View an overview of user's test results
  2. Download complete user data to Excel spreadsheet (entire contents of MySQL tables)
  3. Link to 'Edit Table' page where admin can interface directly with database (add, delete and edit)
Receipt

Admin can view current user test results:

Receipt

Admin can download 3 MySQL tables to Excel spreadsheet for analysis:

Receipt

Sample Excel spreadsheet download of MySQL raw data - user evaluation responses:

Receipt

Admin has access to MySQL tables to update, add, delete, etc.:

Receipt

Back to Portfolio