{"id":18537143,"url":"https://github.com/stratigos/medline_plus_connect_demo","last_synced_at":"2026-04-13T01:39:14.744Z","repository":{"id":88046341,"uuid":"65225336","full_name":"stratigos/medline_plus_connect_demo","owner":"stratigos","description":":hospital: Demo Rails 5 Application for my `medlineplus_ruby` Gem","archived":false,"fork":false,"pushed_at":"2017-06-17T15:41:48.000Z","size":102,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-15T01:39:54.135Z","etag":null,"topics":["bootstrap","demo","medical","medical-information","nlm-api","rails","rails5","ruby","website"],"latest_commit_sha":null,"homepage":"https://toddsmedlinedemo.herokuapp.com/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stratigos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-08-08T17:38:00.000Z","updated_at":"2017-06-06T22:31:26.000Z","dependencies_parsed_at":"2023-03-14T02:00:31.884Z","dependency_job_id":null,"html_url":"https://github.com/stratigos/medline_plus_connect_demo","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/stratigos/medline_plus_connect_demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratigos%2Fmedline_plus_connect_demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratigos%2Fmedline_plus_connect_demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratigos%2Fmedline_plus_connect_demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratigos%2Fmedline_plus_connect_demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stratigos","download_url":"https://codeload.github.com/stratigos/medline_plus_connect_demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratigos%2Fmedline_plus_connect_demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31736723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T22:19:12.206Z","status":"ssl_error","status_checked_at":"2026-04-12T22:18:33.088Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","demo","medical","medical-information","nlm-api","rails","rails5","ruby","website"],"created_at":"2024-11-06T19:37:13.329Z","updated_at":"2026-04-13T01:39:14.724Z","avatar_url":"https://github.com/stratigos.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Medlineplus Ruby\n\n:gem: A Ruby API wrapper library, and Rails 5 demo application, for retrieving information from the National Library of\nMedicine's [\"Medlineplus Connect\" API](https://medlineplus.gov/connect/overview.html).  \n\n:eyeglasses: You can view a live demo of this application [on Heroku](https://toddsmedlinedemo.herokuapp.com/). Free Heroku dynos take a few moments to wake from sleep.  \n\n:hospital: Currently there is one feature: fetching consumer facing information associated with\n[ICD-10](https://en.wikipedia.org/wiki/ICD-10) codes.\n\n----\n\nSpecs\n-----\n\n* **Ruby** \u003e= 2.4.1\n* **Rails** \u003e= 5.1.1\n* **RSpec** \u003e= 3.6\n* Hosted on Heroku's free tier.\n\n:memo: _Note:_ This project focuses entirely on the back end, and not the presentation layer. As such, **jQuery**, **SASS**,\nand **Bootstrap** are used together to simplify front end concerns. As the latest *Bootstrap 4 alpha* breaks version\n*alpha-4*, its unlikely this application will update to follow subsequent releases of Bootstrap 4. You can check out  \nsome of my front end work here.\n\n:gem: **Rubygem:** I have extracted the contents of `lib/` to a rubygem: [medlineplus_ruby](https://github.com/stratigos/medlineplus_ruby). Currently it represents an API client that simplifies making requests to the NLM API. The NLM API is far removed from modern web standards, and this gem allows for a more seamless integration with Ruby medical applications. It is available on [rubygems.org](https://rubygems.org/gems/medlineplus_ruby).\n\n:traffic_light: **Tests:** BDD is practiced when it is feasible, and I aim to have 100% spec coverage.\n* Run `./bin/rails spec` for the whole suite.\n* Run `./bin/rails spec:presenters` for only running specs on PORO/Non-Rails classes. `presenters` can be replaced with\n`services`, etc.  \n\n:necktie: **Presenters:** While there are some great gems out there for Rails presenters, I like to keep things as simple until\nthere is a reasonable demand for robustness. I use PORO classes for [Presenter objects](https://github.com/stratigos/medline_plus_connect_demo/tree/master/app/presenters).  \n\n:factory: **Services:** To keep models focused, I chose `aldous` for [Service objects](https://github.com/stratigos/medline_plus_connect_demo/tree/master/app/services). This pattern also keeps\ndomain responsibilities modularized and composable, and components are easier to test. The `aldous` gem has a very\nsimple and light abstraction for Service objects and encourages a reliable and standardized pattern for message passing.\nIt also encourages a consistent methodology for exception handling. I would not object to using PORO classes for an\napplication Services layer either.\n\n:floppy_disk: **Persistence:** I write a lot of applications which interface with an RDBMS, and sometimes even dream in SQL. This application has no real need for a data layer, and as such does not demo my experience with MySQL and PostgreSQL. My\nDBA chops can be revealed here, *{ in a TBD [Phoenix](http://www.phoenixframework.org/) application }*.\n\n----\n\n:wave: You can also check out [my other repositories](https://github.com/stratigos), and my ever so humble\n[website](http://techarchist.com/). Thanks!\n\n----\n\nLicense\n-------\n\nMIT, see [LICENSE](https://github.com/stratigos/medline_plus_connect_demo/blob/master/LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratigos%2Fmedline_plus_connect_demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstratigos%2Fmedline_plus_connect_demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratigos%2Fmedline_plus_connect_demo/lists"}