Contributing
Development Setup
- Fork and clone the repository
- Install backend:
cd back-end && pip install -r requirements.txt
- Install frontend:
cd UI/DesktopPIPA && yarn install
- Run backend:
flask run --host 0.0.0.0 --port 5000
- Run frontend:
npx quasar dev
Running Tests
cd back-end
pip install pytest
python -m pytest tests/ -v
Project Structure
Pipa/
back-end/
app.py # Flask entry point
blueprints/
api.py # REST API endpoints
view.py # Legacy HTML routes
extensions/
services.py # Pipeline orchestrator
services1/ # Individual service modules
Service_Trimage.py # Trimming
Service_Assembly.py # Assembly
Service_Predict.py # Annotation tools
Service_Report.py # Report generation
tests/ # API tests
UI/DesktopPIPA/
src/
components/tabs/ # Vue components (About, Software, Results)
store/pipa/ # Vuex state management
boot/axios.js # HTTP client setup
src-electron/ # Electron main process
docs/ # This documentation
environment.yml # Conda environment
Dockerfile # Container build
docker-compose.yml # Container orchestration
- Add the tool command to
Service_Predict.py with a self._should_run("toolkey") guard
- Add the tool key to
ALL_TOOLS list in PredictService
- Add a card for it in
Software.vue defaultAnnotationTools array
- Add the tool to
environment.yml (Bioconda package name)
- Document it in
docs/user-guide/tools.md