Difference between revisions of "Product Registration"

From OpenEMR Project Wiki
Line 19: Line 19:
==Tasks==
==Tasks==
* (Matthew/Brady) set up database and migration script (local system)
* (Matthew/Brady) set up database and migration script (local system)
* (UNASSIGNED) Setup DNS routing
* (Robert/Visolve) Setup DNS routing
* (UNASSIGNED) Setup SES
* (Robert/Visolve) Implement SES or similar solution
* (UNASSIGNED) Implement GET status endpoint (local system)
* (Robert/Visolve) Implement POST register endpoint (AWS endpoint)
* (UNASSIGNED) Implement POST register endpoint (local system)
* (Robert/Visolve) Implement GET number of users (AWS endpoint)
* (UNASSIGNED) Implement POST register endpoint (AWS endpoint)
* (UNASSIGNED) Implement SES integration (AWS endpoint)
* (UNASSIGNED) Implement GET number of users (AWS endpoint)
* (UNASSIGNED) Translations
* (UNASSIGNED) Translations



Revision as of 03:42, 22 September 2016

Goal

Goal: Allow users to (optionally) one-time register their OpenEMR installation to improve visibility on unique users. After registering, users will receive email updates when OpenEMR is updated (including security updates).

Approach

Active PR: https://github.com/openemr/openemr/pull/257

High level: I can't imagine the service being more than a POST with email and registration_id, a GET endpoint that returns SELECT count(*) AS 'Number of Unique OpenEMR Registrations' FROM product_registration, and a POST with a message, secret_pin, and new_release_number that triggers AWS SES to inform all users of a new release/security patch. If we really wanted to, we could also capture sender IPs when adding the entry to combat spam.

Low(er) level: We'll have a new database table "product_registration" that has "id", "email", and "opt_out" columns. Regardless of if you just installed OpenEMR or are upgrading it, if you don't have a row in that table, the modal will appear on the login page. If you type your email and hit submit, it will update the table with ("some-uuid", "your@email.com", false) and will send this information to a custom php endpoint exposed at open-emr.org (we can use a file database to store the entries over there... no UI for an MVP implementation). The modal will never show up again after this point.

If you hit "no thanks", it will update the table with (null, null, true) and nothing will be sent to the open-emr.org endpoint. The modal will never show up again after this point.

If you hit "x", the modal will re-appear the next time you are at the login page.

Functionality is on the about_page.php is well.

Tasks

  • (Matthew/Brady) set up database and migration script (local system)
  • (Robert/Visolve) Setup DNS routing
  • (Robert/Visolve) Implement SES or similar solution
  • (Robert/Visolve) Implement POST register endpoint (AWS endpoint)
  • (Robert/Visolve) Implement GET number of users (AWS endpoint)
  • (UNASSIGNED) Translations

Completed

  • (Matthew/Robert/Brady) Determine overall strategy
  • (Matthew) Determine overall software design strategy
  • (Matthew) Set up jQuery modal
  • (Matthew) Implement on about area
  • (Matthew) Set up unrestricted endpoints (local system)
  • (Matthew) Add security globals to new PHP files