Giter VIP home page Giter VIP logo

disease-finder's Introduction

Probably Genetic - Coding Challenge

See challenge.md for the challenge description.

Solution

Hi! You can see the solution here. Click on symptoms to see a page which allows you to search for symptoms, select them, and then compute the most likely diagnosis. Click on disorders to see a flat list of all the disorders available in the database.

Edge Cases and Future Directions

  • Add provisions around data quality issues
  • Add more data sources (e.g. SNOMED)
  • In the UI, make it more apparent why a particular disease was in the returned list, and give a probability estimate
  • Use Machine Learning to build a better algorithm for computing the most likely diagnosis
  • Use a proper database more suitable for large applications (Postgres, MySQL, etc.)
  • Pull more descriptive data into the database from a third party API for each disorder
  • Make the disorders and symptoms more searchable - use a search bar which leverages NLP for more approximate query matching
  • Use caching to improve load times, especially since the data is relatively static
  • Fix the favicon. Haven't figured out how to get it to refresh.
  • Use a single docker-compose file for setup and deployment

Run Unit Tests

python3 -m pytest

Local Development

If using Docker Compose (preferred)

Prerequisites

  • sudo apt install docker-compose ; Ensure you have docker-compose installed.

Open two separate terminals, one to run the server and one to run the client.

Run the client

cd disease-finder/client && docker-compose up

Run the server

cd disease-finder/server && docker-compose up

If using local development (for Ubuntu 22.04)

Prerequisites

  • node --version > v16.15.1
  • yarn --version > v1.22.15
  • sudo apt install python3.10-venv # Ensure you have python3.10-venv installed to properly setup the virtual environment.

Run the client

  1. yarn install
  2. yarn start

Run the server

  1. chmod +x run.bash
  2. ./run.bash

If you're testing in this way and need to re-start the server, please comment out the db initialization step in run.bash to save yourself 30 minutes ๐Ÿ˜Š.

Stack

  • React - frontend
  • Flask - API
  • sqlite - database
  • SQLAlchemy - ORM

disease-finder's People

Contributors

sabaimran avatar

Watchers

 avatar

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.