This is the codebase for the upload page for drone images to create orthomosaics. The tool aims at attaching metadata to images and sending them to HPC for processing. It is meant specifically for NC State. The targeted deployment is at different research stations.
- React.js: Frontend app
- Python: API created using Flask
- Material UI: UI library
- MongoDB: NoSQL database
drone-pilot-upload
├── backend #contains the API code
├── frontend
│ ├── public
│ │ └── images # shared images like favicon
│ └── src # contains the one-page react code
└── ortho_processing # contains codebase to orchestrate and manage HPC-based orthomosaic processing
These steps are specific to stand-alone servers using ubuntu 20.04+. These should be used by teams deploying this tool on servers at research stations
- Use
run.sh
to deploy the app on a stand-alone server. Usesgunicorn
to manage the api server andnginx
to manage the frontend. - Get
.env
file (for the frontend) and the updatedconfig.py
file (for the backend) from Jinam. - Run
systemctl reload drone_upload_api
andsystemctl reload nginx
Follow the steps mentioned here
- Installations needed: mongodb, git, nginx, exiftool, nodejs, npm
- Clone repo:
git clone https://github.com/precision-sustainable-ag/drone-pilot-upload.git
- Frontend:
- Install dependencies:
cd frontend && npm install
- Create
.env
file in frontend folder withREACT_APP_API_URL='http://localhost:5000/imgproc'
- Run
npm run start
- Install dependencies:
- Backend:
- Create a python virtual environment:
python3.9 -m venv ./backend/venv
- Install python dependencies:
./backend/venv/bin/python3 -m pip install -r ./backend/requirements.txt
- Run
./backend/venv/bin/python3 ./backend/app.py
- Create a python virtual environment: