Difference between revisions of "Product Registration"

From OpenEMR Project Wiki
Line 15: Line 15:
If you hit "x", the modal will re-appear the next time you are at the login page.
If you hit "x", the modal will re-appear the next time you are at the login page.


Should be on "about" area as well.
Functionality is on the about_page.php is well.


==Tasks==
==Tasks==
* (Matthew) Set up unrestricted endpoints (local system)
* (Matthew/Brady) set up database and migration script (local system)
* (Matthew) Add security globals to new PHP files
* (UNASSIGNED) Implement on about area
* (UNASSIGNED) Setup DNS routing
* (UNASSIGNED) Setup DNS routing
* (UNASSIGNED) Setup SES
* (UNASSIGNED) Setup SES
* (UNASSIGNED) set up database and migration script (local system)
* (UNASSIGNED) Implement GET status endpoint (local system)
* (UNASSIGNED) Implement GET status endpoint (local system)
* (UNASSIGNED) Implement POST register endpoint (local system)
* (UNASSIGNED) Implement POST register endpoint (local system)
Line 35: Line 32:
* (Matthew) Determine overall software design strategy
* (Matthew) Determine overall software design strategy
* (Matthew) Set up jQuery modal
* (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

Revision as of 03:36, 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)
  • (UNASSIGNED) Setup DNS routing
  • (UNASSIGNED) Setup SES
  • (UNASSIGNED) Implement GET status endpoint (local system)
  • (UNASSIGNED) Implement POST register endpoint (local system)
  • (UNASSIGNED) Implement POST register endpoint (AWS endpoint)
  • (UNASSIGNED) Implement SES integration (AWS endpoint)
  • (UNASSIGNED) 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