GithubHelp home page GithubHelp logo

agilebpa's Introduction

AGILE DELIVERY SERVICES BPA (4QTFHS150004) PROTOYPE – My Medicine Cabinet

References:

Prototype URL http://agilebpa-ui.cfapps.io/
GitHub Main Branch master
Installation Document https://github.com/AppliedIS/AgileBPA/blob/master/INSTALL.md
Developer Document https://github.com/AppliedIS/AgileBPA/blob/master/DEVELOP.md
Style Guide http://agilebpa-ui.cfapps.io/style-guide.html
Trello Board https://trello.com/b/0PNEKo3f/18f-bpa-ideas
GitHub Issue Log https://github.com/AppliedIS/AgileBPA/issues?utf8=%E2%9C%93&q=is%3Aissue
Travis CI https://travis-ci.org/AppliedIS/AgileBPA/
Wireframes https://github.com/AppliedIS/AgileBPA/blob/master/docs/Wireframes1.md, https://github.com/AppliedIS/AgileBPA/blob/master/docs/Wireframes2.md, https://github.com/AppliedIS/AgileBPA/blob/master/docs/Wireframes3.md
Personas https://github.com/AppliedIS/AgileBPA/blob/master/docs/Personas.md
Usability Survey https://github.com/AppliedIS/AgileBPA/blob/master/docs/UsabilityTesting.md
Adverse Events Research https://github.com/AppliedIS/AgileBPA/blob/master/docs/ResearchAdvDrugs.md
Drug Interaction Research https://github.com/AppliedIS/AgileBPA/blob/master/docs/ResearchDrugInter.md
Style Tiles https://github.com/AppliedIS/AgileBPA/blob/master/docs/StyleTiles.md
Color Palette Survey Results https://goo.gl/u48GRT
Final Quality Acceptance Test https://github.com/AppliedIS/AgileBPA/blob/master/docs/FinalQA.md
Final Quality Acceptance Test Results https://github.com/AppliedIS/AgileBPA/blob/master/docs/FinalQATestResults.xlsx
Continuous Monitoring Service https://github.com/AppliedIS/AgileBPA/blob/master/docs/ConMon.md

For the Agile Delivery Service (ADS) prototype, the Applied Information Sciences (AIS) team developed an application called My Medicine Cabinet which enables the public to track their medications, identify any potential adverse interactions, and quickly see any applicable recalls. Users enter information about medicines they take and medicines that are in their home.

AIS has been building software since 1982. We have existed so long because we build useful software with techniques and technologies that result in value and efficiency for our clients. We have helped customers like the FBI and US Treasury expand their enterprise Agile approach. We have succeeded in adapting our Agile practices to meet the challenges that federal customer face (e.g. FISMA, budgeting, and planning processes).

For this prototype, we used seven of the specific labor categories as described in the RFQ:

  • Product Manager (Jason McNutt) - Responsible for the vision, delivery and overall quality of the product.
  • Technical Architect - Responsible for the technical vision and architecture to meet functional and system requirements of the prototype as well as evaluating security requirements and defining a long term vision for improving application security.
  • Integration Designer/User Researcher/Usability Tester - Responsible for improving usability and responding to survey enhancements.
  • Visual Designer - Created Personas and wireframes, as well as assisting in the style guide and palette creation.
  • Backend Web Developer - Responsible for providing integration, configuring data environment, and creating API's.
  • Frontend Web Developer -Responsible for developing user interface using HTML 5, JavaScript and using design standards.
  • DevOps Engineer - Responsible for Cloud Foundry environment, setup and configuration of Docker containers for development database.

Throughout the development effort our team followed multiple plays from the US Digital Services Playbook. We attempted to understand what people needed through crowdsourcing our ideas, focused on a simple and intuitive interface, utilized an agile and iterative approach, assigned one leader in our Product Manager, used a modern technology stack and defaulted to open source software and working in the open. In our approach to deliver we used four of the five phases of the Gov.UK approach to Digital Service Delivery (Discovery, Alpha, Beta, Live) to provide a lightweight structure around the delivery of our prototype. The prototype demonstrates our ability to leverage multiple open technologies and showcases how quickly our teams form to build solutions. We used several human centric design approaches to improve usability of the prototype (Usability Testing Surveys, Wireframes, Use Cases, and Personas). Once developed, we used AIS employees to gauge usefulness and intuitiveness using Yammer to invite feedback from a diverse group. A summary of activities during each phase is described below:

  1. Discovery - The project began with 3 parallel tasks: 1) crowdsourcing (the "crowd" consisted of a wide and diverse group of AIS employees) ideas for the prototype within AIS using a Trello board; 2) standing up source control in GitHub; and 3) research efforts performed around the FDA open APIs. Following the principles of keeping simple functionality first, the development team defined release goals and use cases. The team used GitHub issues to define the product Backlog using a broad use case syntax (ex. As a User, I would like to perform an action). Issues are assigned a label and a milestone if applicable.

  2. Alpha - Starting in the Alpha phase, the assembled team began daily scrum calls. We entered use cases into GitHub as Issues and established milestones based on service delivery phases. The team began to organically assign themselves tasks. The Product Manager and Technical Architect led the scrum making decisions and resolving issues. During this phase, the team built the scaffolding for the front end using HTML, JavaScript, CSS, AngularJS, and Bootstrap. The team built the backend using the FDA API's, a MongoDB lab instance for persistent store, and server technology using Node.js/hapi.js. We used Cloud Foundry for the web hosting Platform-as-a-Service and Travis CI as a continuous integration platform. Finally, the team developed wireframes, identified target audiences developing primary and secondary personas representing the target. Using the AIS Yammer site and following HCD design, wireframe usability was surveyed.

  3. Beta - Once Alpha was released the team initiated planning for remaining use cases and any/all discovered issues. In the second iteration, the team developed core prototype functionality including:

a. Entering and Maintaining user profile.
b. Searching FDA label API to find medications.
c. Adding Medication to your cabinet.
d. Maintaining a list of all medications entered.
e. Providing a medications view that pulls information from the label API a the Adverse Event API available at openFDA.
f. Implementing "Sweet Alerts" for notifications.

The team performed Research Spikes to resolve issues with the openFDA API datasets, and to better understand the completeness of the data ([Adverse Events Research](https://github.com/AppliedIS/AgileBPA/blob/master/docs/ResearchAdvDrugs.md) and [Drug Interaction Research](https://github.com/AppliedIS/AgileBPA/blob/master/docs/ResearchDrugInter.md)).  The team built the [CSS Style Tiles](https://github.com/AppliedIS/AgileBPA/blob/master/docs/StyleTiles.md) and posted to the GitHub repository.  They developed the base CSS using the palette chosen during usability testing – [the cool palette](https://goo.gl/u48GRT).
  1. Live - The team planned the Live release with an emphasis on resolving remaining issues, improving performance, and preparing final packaging. Minor changes were applied to the user interface improving the overall usability of the prototype. Before the final release of the prototype, the team performed a final Quality Acceptance test across 14 pieces of functionality. Once these all passed their acceptance criteria the prototype was released. The team added a continuous monitoring service through Cloud Foundry called New Relic. The team enabled basic application performance monitoring that, in future releases, would provide security monitoring around the user's profile and medication information. For this functionality, the team would use the New Relic dashboard and alerts to analyze/report and respond to any security risks. Then, iteratively review the risk posture to address any necessary changes or updates.

My Medicine Cabinet contains profile information as well as prescription drug information unique to the user. This information would certainly in practice require a more robust security framework. During future releases, our team would seek to bolster this with data at rest encryption within MongoDB and encrypted traffic between Cloud Foundry and the MongoDB instance. In addition to improving security, we would seek to expand the capability of the application to collect adverse events from the users for drugs in their cabinet and report that back to the FDA. Open and constant communication with the public would lead to increased awareness of potential risks and broaden the FDA's understanding of the effects. Finally, in an effort to invite participation from Industry, we would look to integrate with pharmacies' APIs, such as Walgreen's and CVS allowing users to automatically include prescriptions directly into their cabinet.

agilebpa's People

Contributors

bowmanmc avatar jmmcnj avatar simplyshang avatar allisonchristman avatar dickmancj-mil avatar techno1ology avatar klinden avatar cillay avatar

Stargazers

Robin Yeman avatar

Watchers

 avatar James Cloos avatar  avatar  avatar  avatar Chris Dickman avatar  avatar  avatar  avatar  avatar  avatar

agilebpa's Issues

Create API endpoint to add a drug to a user's cabinet

As a front end developer, I'd like to be able to call an API to save a drug to a user's medicine cabinet. The format of the call will be:

POST to /api/user/{userid}/drug

Request should include: drugName, description

About Page

As a user, I would like to see more information on this application including: who it was developed by, what it was developed for, any disclaimers, and any other information that might be relevant.

Generate Application Icons

As a user, I would like to pin the website to my home screen on my mobile device and use it like an app. There are meta tags for specifying how iOS, Android, and Windows will handle these.

Add View Details Button

Making a change, make the Medications a list with just the name of the medication and make that clickable. Remove grey background.

Eg.

Tylenol
Motrin
Metaformin

Medication Entry

As a user, I can enter the name and description of a medication and save it

Move "search"

On the Add Medication, please move Search out of the input it should be above it

Implement https

As a user, I expect my password and personal information to be secure. The website should use https only. * This might not be doable before submission *

Medication Details

As a user, I'd like to see the details of a saved medication from my medication list. This should have user entered details as well as information from the fda (adverse effects, ingredients, allergy info, etc...)

Apply Modal Confirmation post Signup/create profile

Apply the Sweet Alert to the success/failure of the Signup/Create profile entry page. Use the following text:

"Congratulations, You have successfully created a Profile. <Button 'Start Adding Medications' (url to My Medications page)>"

504 Compliance Issues 1

Google and Bing recommend using an XML sitemap to increase coverage of your web pages by search engines.
Once you've created and uploaded your sitemap, add the location to your robots.txt file, and make sure you use a full URL (e.g. use http://www.example.com/sitemap.xml and not www.example.com/sitemap.xml or /sitemap.xml).
Sitemap not found at http://agilebpa-ui.cfapps.io/sitemap.xml.
http://agilebpa-ui.cfapps.io/sitemap.xml 1

Critical Offer an HTML site map to your users with links that point to the important parts of your site. Links embedded in menus, list boxes, and similar elements are not accessible to web crawlers unless they appear in your site map. If the site map is larger than 100 or so links, you may want to break the site map into separate pages. Google Bing
http://agilebpa-ui.cfapps.io/ 1

Critical This page has no H1 tag, which violates Bing webmaster guidelines. Bing
Add an H1 tag just before the main content describing the page.
http://agilebpa-ui.cfapps.io/

Footer needs to be capped on size

The Footer is expanding to fill out the site on large displays that doesnt look right - on larger screen displays with less amount of medications entered especially is noticeable. CSS tweak should resolve issue.

Profile creation

As a user, I would like the application to allow me to store my profile information and personalize the site for me.

Profile edits

As a user, I would like to be able to update my profile information as it changes

Setup TravisCI

As a developer, I'd like my application to deploy automatically when I commit changes to source control.

Apply Styles

As a user, I would like to use an appealing application. We need to implement the styles provided by @simplyshang in the mockups.

openfda endpoint cannot adequately support search with autocomplete

A couple of UI tests prove this assertion: "ABILIFY" yields 28 results and "PROZAC" does not provide any results on a partial string search.

It looks as though a locally stored collection in mongo is required to support the autocomplete feature. I will collect ALL of the data from the drug/label.json endpoint and map it to an object with only a few fields (brand_name, generic_name, manufacturer_name at least) and reduce it to the distinct set of these.

The search/autocomplete can these either work off of the mongo collection or maybe even a big in-memory JSON blob (that's not crazy, Adzerk runs their whole online ad business of off in-memory JSON with node.js).

Installation Documentation

As a customer, I would like detailed installation instructions for deploying this application on a new server. (criteria #18)

Add Edit Medication

Please add an Edit Medication with icon under the My Medications. This should allow users to delete meds

504 Compliance Issues 2

Attribute 'ng-app' not allowed on element. HTML5

Critical Element 'ais-navbar' not allowed as child element in this context.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.