Giter VIP home page Giter VIP logo

disease-info's Introduction

Disease Info Build Status Code Climate Test Coverage

This project is basically for getting information about diseases from Health Organizations - WHO, CDC et al. It is written in Ruby, to contribute, check out the Contribution Guide.

Getting Started

Clone the project repository by running the command below if you use SSH

git clone [email protected]:devcenter-square/disease-info.git

If you use https, use this instead

git clone https://github.com/devcenter-square/disease-info.git

Database

This project uses SQLite3 for development and testing and PostgreSQL for production. To contribute, you only need to install SQLite3. If you already have it installed on your machine, you can skip to the next step.

If you don't have it installed, check the following links for guides on how to install:

Setting Up

  • cd into the project directory.
  • Run bundle install
  • then rake db:create
  • then rake db:migrate

Populating the Database

Populate Database with disease info by running

rake mine_data:who

When this is done, visit the endpoint for diseases on http://localhost:3000/diseases.json to get a list of all diseases on your database.

Adding a new data scraper

The present scrapers are:

Feel free to add another scraper by first adding your rake task to the present list on lib/tasks/mine_data.rake. Then create your scraper in app/lib/scrapers. You can follow the example of the WHO scraper. If you have to add new columns to the existing Disease structure based on the data you get, feel free to do that. More importantly, add the source of your data in the more column present on the Disease object. Make sure to name space your Disease name with the source. For example Malaria from WHO is saved with name Malaria - WHO.

Available End Points

End Point Method Expected response
/diseases.json GET Gets a list of all diseases
/diseases.json?data_source=source GET Gets a list of diseases from a particular source. Available sources are; WHO
/diseases/disease_name.json GET Gets a particular disease with the supplied name

Road Map

This will be the first release and we are tagging it v1.0. To see it live, go to https://disease-info-api.herokuapp.com/diseases. For specific a specific disease, use https://disease-info-api.herokuapp.com/diseases/tuberculosis. Also Disease-info prettifies JSON on production, however if you want JSON prettified on develoment environment and you are using Chrome to access the API you could install JSON Formatter to get a prettier display.

To Do

First see the Contribution Guide for how to contribute.

  • Add more Health Organizations' disease information sites
  • Include a way to verify the scrapped data
  • Put the symptoms of each disease in an array

disease-info's People

Contributors

afolabiolaoluwa avatar ammezie avatar bazalel avatar berniechiu avatar gabrielsvinha avatar lekansogunle avatar luizvarela avatar oojewale avatar osioke avatar radubogdan avatar ruqoyyasadiq avatar x6iae avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

disease-info's Issues

Rare flag

Thank you for this. I am building a project bringing awareness to chronic and/or rare diseases in an innovative way. Can a new data point for each disease be created that tells the rareness of each disease?

Disease name should be case insensitive

We need to make disease name in URL case insensitive. E.g https://disease-info.herokuapp.com/diseases/Tuberculosis should give the same response as https://disease-info.herokuapp.com/diseases/tuberculosis.

Symptoms task still unchecked in README's todo

Tested out the API url here and it seems to be returning the disease symptoms just fine. But then, it's still unchecked as an item in the todo list in the project's readme. Is there an issue with the current implementation or the readme is just out of sync? :)

Conflict Markers On Gemfile

Did bundle install to install the gem as directed by the readme but I got errors and noticed that conflict markers are in the Gemfile.

[!] There was an error parsing Gemfile: syntax error, unexpected <<, expecting end-of-input - <<<<<<< 7e67adb
^. Bundler cannot continue.

from /home/mezie/workspace/ruby/disease-info/Gemfile:3

-------------------------------------------

<<<<<<< 7e67adb

# Bundle gems for development with the command below.

-------------------------------------------

handle no-route errors

we should add root route and prevent non-existent routes from throwing errors and breaking the app on production...

maybe redirect non-existent routes to the 404.html inside public?

Rails 5

Are you guys planning to migrate towards rails 5?

I'd like to take care of this.

low code test coverage.

We need to bring up test coverage to > 90% . Currently, what we have and where we are lagging is as can be seen in the attached.

screen shot 2016-10-20 at 8 08 14 am

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.