Setting up OpenMF Frontend
After cloning, create a virtual environment and install the requirements.
For Linux and Mac users:
$ virtualenv venv
$ source venv/bin/activate
(venv) $ pip install -r requirements.txt
```
If you are on Windows, then use the following commands instead:
$ virtualenv venv
$ venv\Scripts\activate
(venv) $ pip install -r requirements.txt
Running
Step1: Change directory to React-Frontend
(venv) $ cd React-Frontend
Step2: Install required dependencies
(venv) $ npm install
Step3: Run the react server:
(venv) $ npm start
And use localhost:3000 to browse.
OpenMF - Flask Backend
Update Enviornment Variables
To run the project you need to update the following ENVIRONMENT VARIABLES.
export FLASK_APP="api"
export FLASK_ENV="development or production or testing"
SECRET_KEY="your secret key"
MAIL_USERNAME= "< Enter Mail User Name />"
MAIL_PASSWORD= "< Enter Mail App Password />"
MAIL_SERVER="< Enter Mail Server />"
MAIL_PORT="< Enter Mail Port Number />"
Running the Flask Server
Step 1: Set up FLASK_APP (For Linux or Mac)
(venv) $ `export FLASK_APP=api`
(For Windows)
(venv) $ `set FLASK_APP=api`
Step 2: Now, Upgrade the Migrated Database, using the following command
(venv) $ flask db upgrade
Step 3:Start the backend server To run the server use the following command:
(venv) $ flask run
API Endpoints List
| Endpoint | Methods | Rule |
|---|---|---|
| analytics.execute_query | POST | /analytics/query |
| auth.login_post | POST | /login |
| auth.logout | POST | /logout |
| case._get_file | POST | /case/get-file |
| case.case_tree | GET, POST | /case/case-tree |
| case.count | GET | /case/count |
| case.deletecase | POST | /case/delete |
| case.extracted_cases | GET | /case/extracted-cases |
| case.filter | POST | /case/filter |
| case.getCase | GET | /case/get_case/< casename> |
| case.list | GET | /case/list |
| case.openCase | GET | /case/open/< case_name> |
| case.openFile | GET | /case/list-files/< case_name>/< folder_name>/< file_name> |
| case.openFolder | GET | /case/list-files/< case_name>/< folder_name> |
| common.commonwordlist | POST | /common/< case1>/< case2> |
| common.mostcommonwordlist | POST | /common/words/< case1>/< case2> |
| data.bluetooth | GET | /data/ |
| data.browsers | GET | /data/< case_name>/browsers |
| data.location | GET | /data/< case_name>/location |
| data.media | GET | /data/< case_name>/media |
| data.sms | GET | /data/< case_name>/sms |
| extraction.extract | POST | /extraction/extract_data |
| extraction.list_devices | GET | /extraction/list_devices |
| keyword.customsearch | POST | /keyword/custom/search |
| keyword.search | POST | /keyword/search |
| keyword.searchfromCase | POST | /keyword/< case_name>/search |
| keyword.searchtags | POST | /keyword/search/tags |
| report.browserdata | POST | /report/browserdata |
| report.generalinfo | POST | /report/generalinfo |
| report.locationinfo | POST | /report/locations |
| static | GET | /static/< path:filename> |
| task.assigned_tasks | VGET | /task/assigned-tasks |
| task.completed_tasks | GET | /task/completed-tasks |
| task.create | POST | /task/create |
| task.delete | DELETE | /task/delete/< int:id> |
| task.edit_title | PUT | /task/edit-title |
| task.get_all_tasks | GET | /task/all-tasks |
| task.mark_complete | PUT | /task/mark-complete/< int:id> |
| task.todo_tasks | GET | /task/todo-tasks |
| user.add_users | POST | /user/add-user |
| user.all_users | GET | /user/all-users |
| user.create_user | POST | /user/create |
| user.delete | DELETE | /user/delete |
| user.deleteuser | DELETE, POST | /user/delete-user |
| user.extracted_cases | POST | /user/extracted-cases |
| user.getUser | GET | /user/getAdmin/ |
| user.get_extracted_cases | GET | /user/extractor/extracted-cases |
| user.get_extractor | GET | /user/getExtractor/< int:id> |
| user.get_management | GET | /user/getManagement/< int:id> |
| user.profile | GET | /user/profile |
| user.roleupdate | PUT | /user/role-update |
Note: You can find the updated list of API endpoints using the following command
(venv) $ flask routes