Fulcrum Physio is an orthopedic physical therapy symptom checker. Create your own program or have us create one for you by tapping into the experience of several Doctors of Physical Therapy. We'll ask you the same questions we ask our patients to guarantee we have an accurate diagnosis and helpful advice and exercises based on your pathology.
Explore the docs »
View Site
·
Report Bug
·
Request Feature
Click here to view FulcrumPhysio live on the web!
The app was built using Flask, SQLAlchemy, and Python on the back end with a PostgreSQL database. The backend structure is RESTful API. Model associations are used to minimize database queries to the backend, assuring speed and reliability.
The front end is built with React and Javascript while utilizing Redux architecture, producing a lightning-fast user interface and calling upon dynamically rendered components.
To get a local copy up and running follow these simple steps.
Here is everything we need you to do to get started with Fulcrum Physio.
-
Clone this repository (only this branch)
git clone https://github.com/husseineid-mocha/FulcrumPhysio.git
-
Install dependencies
pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
-
Create a .env file based on the example with proper settings for your development environment
-
Setup your PostgreSQL user, password and database and make sure it matches your .env file
-
Get into your pipenv, migrate your database, seed your database, and run your flask app
pipenv shell
flask db upgrade
flask seed all
flask run
-
To run the React App in development, checkout the README inside the
react-app
directory.
Intricate graphs were created for each body part in order to navigate the user responses and to reach an appropriate diagnosis/education/exercises, below are segments from the graphs for the shoulder and hip.
Several design decisions needed to be made to ensure speed and efficiency, making individual backend calls for each question/response/diagnosis proved to be more efficient than loading the entire graph into redux by about 16%.
These thunks manage these individual backend calls.
The frontend uses the seeded promptIds to fetch the next questions, these Ids are stored in an array and popped off to allow the user to go back in case they need to revisit a question.
See the Project Wiki for more details about FulcrumPhysio.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Project Link: https://github.com/husseineid-mocha/FulcrumPhysio/