See challenge.md for the challenge description.
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.
- 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
python3 -m pytest
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.
cd disease-finder/client && docker-compose up
cd disease-finder/server && docker-compose up
node --version
> v16.15.1yarn --version
> v1.22.15sudo apt install python3.10-venv
# Ensure you have python3.10-venv installed to properly setup the virtual environment.
yarn install
yarn start
chmod +x run.bash
./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 😊.
- React - frontend
- Flask - API
- sqlite - database
- SQLAlchemy - ORM