Public | Automated Build

Last pushed: 2 years ago
Short Description
Short description is empty for this repo.
Full Description

OpenFDA Adverse Drug Event Reports by Country - Technik, Inc.

Click here to view the prototype

This prototype allows consumers to view adverse drug event reports by country via a simple and intuitive graphical user interface. The openFDA drug adverse event API was consumed Restfully to return data from the FDA Adverse Event Reporting System (FAERS)

Approach used to create Pool Two Development prototype

We followed the U.S. Digital Services Playbook requirements

a. Mr. Satish Venkatesan was the assigned leader (Product Manager) with authority, responsibility and accountability for the quality of the prototype submitted.

b. The Technik openFDA development team consisted of three resources assigned to the following Design Pool Labor categories from the Development Pool Labor categories from 18F Agile Labor Categories. Attachment C is updated accordingly

  • Technical Architect - Manage the technical implementation of the prototype
  • Dev Ops Engineer - Configure continuous integration, continuous deployment and configured operating system level virtualization
  • Front End Web Developer - Developed the prototype using modern techniques and frameworks.
  • Backend Web Developer - Used modern open source web programming languages to develop and consume web-based RESTful APIs.

c.The following modern and open-source technologies are applied to this effort

Data Sources

  • Drug Adverse Event data from [openFDA API] (https://open.fda.gov/api/reference/) ( artifact - constants.java)
  • Lightweight data packages from data.okfn.org to translate country codes to country names (artifact - CountryNameCodeRefresher.java)
  • GeoNames geographical database from geonames.org to retreive country flag images for the displayed country (artifact - constants.java)

Programming languages

  • Java (artifact - RestUtil.java )
  • JavaScript (artifact - MasterDetailsCtrl.js)
  • HTML (artifact - index.jsp)

Frameworks (Serverside)

Frameworks (Clientside)

  • HTML Vocabulary Extension using AngularJS (artifact - index.jsp)
  • jQuery JavaScript library (artifact - index.jsp)
  • Bootstrap for basic web components (artifact - index.jsp)

Testing tools

  • JUnit as the framework to write repeatable tests ( artifact - WelcomeControllerTest.java)
  • Mockito mocking framework for creating JUnit tests (artifact - WelcomeControllerTest.java)

Build Tools

  • Gradle open-source build automation tool (artifact - build.gradle)

Version Tools

  • Web-based Git repository and source code management (SCM) using GitHub
  • Git Shell Login shell for Git-only SSH access

Editor

  • Stackedit Mark down editor ( artifact README.md)

d. The prototype is deployed on Amazon Web Services (AWS) Platform as a Service (PaaS). See "Evidence" folder in GitHub Repository for artifacts. ( artifact - Technik_18F_Amazon_Web_Services.jpeg)

e. Unit tests are implemented using Mockito with Junit (artifact - WelcomeControllerTest.java)

f. Travis Continous Integration System is used to automate the running of tests and continuously deploy code to Amazon Web Services using AWS CodeDeploy ( artifact - .travis.yml)

g. Used Git open source distributed version control system on GitHub for configuration management

h. Used Amazon CloudWatch for monitoring AWS cloud resources and the applications on AWS. See "Evidence" folder in GitHub Repository for artifacts. ( artifact - Technik_18F_Amazon_Cloud_Watch.jpeg)

i. Used Docker container, an open platform for to deploy the application and all of its dependencies. See "Evidence" folder in GitHub Repository for artifacts. ( artifact - Technik_18F_Docker.jpeg, Dockerfile and https://registry.hub.docker.com/u/krishnachaganti/openfda-developmentprototype/)

Click here to view the prototype where application running in AWS in docker container

j. Feedback from user tests led to subsequent work and an updated prototype. (Ex. users suggested visual aesthetic enhancements such as displaying country flags in addition to the country names). The feature was incorporated in subsequent releases. We also used GitHub issues, labels and milestones as our collaboration platform. (artifact - sprint 0, sprint 1, sprint 2)

k. Steps to install and run prototype on another machine

Local machine installation
• Install Apache Tomcat 7.0 open-source web server on local machine
• Manually deploy Web application Archive (WAR) file in Tomcat (use technikfda.war file in GitHub repository)
• Restart Tomcat server

Setup Continuous Integration (CI) using Travis CI :
The major CI steps include
• Clone or download TechnikInc/openFDA-DevelopmentPrototype GitHub repository to create a new repository
• From Travis CI activate the new GitHub Repository
• Trigger the first build to Travis with a Git push

Setup Continuous Deployment to Amazon Web Services (AWS) using AWS CodeDeploy:
The major steps include
• Create and provision applicable instances in AWS
• Deploy application from GitHub to the applicable instances using AWS CodeDeploy
• Edit .travis.yml file to point to the correct AWS instances and access keys
• Track and monitor the status of your deployments through Amazon CloudWatch real-time monitoring tools.

l. The prototype and underlying platforms are openly licensed and free of charge using the MIT free software license


Docker Pull Command
Owner
krishnachaganti

Comments (0)