Skip to content

ocpsoft/devnation-challenge-2015

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

devnation-challenge-2015

In developing coutries, there the poor cannot afford expensive medicienes and generally have to live through the sickness, while the rich and the middle class ends up buying much more medicince than what they need. Few of the reason are:

  1. That medicines are still not controlled as in the developed countires like US.

  2. Customers buy medicines in packs of 6 or 12 even if they need one or two tablets.

  3. The left over medicines eventually expire and aare thrown.

The giving nation plan to help solve this problem.

  1. The patient who buys the medicine registers the medicine by scanning the bar code and entering the experiy date.

  2. The app would remind the patient before the expiry date of the medicine, if he still has any unopened medicine left that he would like to donate.

  3. If the customer chooses so, he is sent mailed a packet to send in his medicines.

  4. The patient who needs the medicine can submit the request of the tablets/medicine he needs.

  5. The engine matches the medicne request with the inventory and sends the medicine to the needy patient.

Key Redhat Technology used and the functionality implemented using it.

FeedHenry: The mobile application will be built on anroid and iphone to to enable the user to scan the bar code and submit request for medicine. BPMS: Once the request to donate medicine is submitted a BPMS process is kick started. The BPMS process user kets a task asigned to review the medicine to confirm the medicine is not used and in condition to be used. BRMS: Rules are used to award points based on the no of medicine donated by a user. OpenShift: BPMS/BRMS is run in the openshift. Fuse: Used to make a webservice call to USPC service.

This is the winner project for the DevNation code challenge 2015

Members:

  • Lincoln Baxter, III

  • George Gastaldi

  • Sal Elrahal

  • Anurag Saran

  • Joshua Wilson

Credentials:

FeedHenry: gegastaldi@gmail.com / n0th1ng

BPMS instance: map-georgegastaldi.rhcloud.com

BPMS CREDS:

+ ssh://55889e1ae0b8cdb275000074@dcbpms-lincolnbaxter.rhcloud.com/~/git/dcbpms.git/

Red Hat JBoss BPM Suite 6.0.2 cartridge installed.  Please make note of these credentials:

             BPMS Admin User: bpm-admin
                    Password: wN-TngsS4PSX

           BPMS Analyst User: bpm-analyst
                    Password: Zz9EiWXMsdXF

         BPMS Developer User: bpm-developer
                    Password: yK5nYgeSP2-J

              BPMS User User: bpm-user
                    Password: 41a5TZ6nYnEH

           BPMS Manager User: bpm-manager
       BPMS Manager Password: Afc5gZvxL2r2

               BAM Root User: root
                    Password: 4_uNKQDlpHw6

            BPM Example User: loan
                    Password: 42--pNhLwNz5

Configuration files:
- You can add/modify/show/remove users and roles using the following files in your cartridge git repository:
   - Users -> .openshift/config/bpms-users.properties
   - Roles -> .openshift/config/bpms-roles.properties
2.- You can modify the JBoss EAP standalone configuration file used for the BPMS application in your cartridge git repository at path .openshift/config/standalone.xml
3.- You can modify the Maven settings configuration file used for the BPMS application in your cartridge git repository at path .openshift/config/settings.xml

Services Design:

Front end

  • Barcode To Medicine Information

    /rest/frontend/lookupUpc

    input: { upc(String) }

    output: { medicine name, description, points per qty }

    desc: Mobile user scans barcode

  • Send medicine request

    /rest/frontend/sendMedicine

    input: { auth(String), upc(String), quantity(int) }

    output: { success / fail }

    desc: Mobile user requests to send medicine

  • Get points

    /rest/frontend/checkPoints

    input: { auth(String) }

    output: { points }

    desc: Mobile user checks points

Back end

  • Award points

    /rest/backend/awardPoints

    input: { auth(String), points(int) }

    output: { success / fail }

    desc: Request approved, user awarded points, user notified

  • Request denied

    /rest/backend/denyRequest

    input: { auth(String), upc(String), quantity(int) }

    output: { success / fail }

    desc: Request denied, user notified