Live Demo | Youtube Video Demo
- Goal
- MediQuick Features
- Dependencies and Technologies Used
- Installation
- Documentation
- Testing
- Contact
The goal is to find a list of diagnosis from a list of medical symptoms, and also give out proper suggestion for treatments and specialist for a given medical condition/diagnosis.
This project is an MVP and is solely made for the purpose of competing for getting selected in hackercamp 2019, innovaccer. **
MedicQuick is a web app, which is use to suggest users possible treatments from user input information.
- Full-Text-Search: Search issues and symptoms using natural language eg: I am having fever and headache.
- Drop Down: Get list of all available symptoms and issues from where you can multi select.
- Auto-complete list: As you type you can see the list of possible symptoms.
- Diagnosis For some selected combination of symptoms find the possible diagnosis.
- Treatments: Get treatment suggestions when you select a particular diagnosis.
- Caching data The treatment data that has been scraped is saved in a database, so that the responses of the subsequent requests for the same diagnosis is faster.
Mediquick comprises of frontend and backend web technologies.
-
- React(UI Library)
- Emotion(CSS in JS)
- Redux + Redux Thunk(State UI)
- Jest(Unit testing for UI)
-
- Flask(to create routes)
- PyMongo(to save data)
- mLabs(online cloud mongodb service)
- Python unit test module
- Selenium with firefox driver(web scraping in javascript enabled sites)
- First clone this repo
git clone https://github.com/migom6/mediquick.git
- Download and install the firefox gecko driver here
- Create a MongoDb database locally or from mLabs.
- Install the dependencies of frontend
cd frontend
npm install
- Install the dependencies of backend
cd backend
pip install -r requirements.txt
- Set the environment variables in .env file, check .env.example
- source the .env
source .env
- A Makefile is setup up to help in the installation.
- make build-frontend This builds the react app and produces a build folder.
- make serve This starts the server and the web app can be accesed in the browser.
- make test-backend This is use to test backend code.
- make test-frontend This is use to test the frontend code.
- make netlify This publishes the frontend to netlify. Check netlify.toml
Documentation of Frontend and Backend are available in /frontend/README.md and /backend/README.md respectively.
Tests are written using Jest (frontend) and unit test python (backend).
The test are written in /frontend/tests and /backend/tests.
To run tests for frontend
make test-frontend
and
To run tests for backend
make test-backend