NAHPU is an offline-first software system for recording, validating, exporting, and backing up collection data at the point of collection.
Use this section when contributing to the main NAHPU app. The code docs are split by topic so you can read only the part that matches your change.
- Setup - Install the tools needed to build NAHPU locally.
- Architecture - Understand how Flutter, Drift, Rust, and the NAHPU API crates fit together.
- NAHPU API - Learn where app code ends and shared Rust API crates begin.
- NAHPU design system - Learn the Material 3 tokens, adaptive layout, hierarchy, and UI patterns used in NAHPU.
- Code conventions - Follow Dart, Flutter, Riverpod, and Rust conventions used in the app.
- Persistence data - Understand storage ownership, schema changes, migrations, and Darwin Core mappings.
- Data import and export - Follow every import, transfer, backup, tabular export, package, GIS, and document flow.
- Templates and presets - Understand record-export mappings, document templates, print layouts, and PDF rendering behavior.
- Troubleshooting - Fix common setup and build errors.
- AI-assisted development - Use AI tools responsibly while keeping human accountability for every contribution.
Contribution flow
Seção intitulada “Contribution flow”Pick or open an issue in the NAHPU repository.
Fork and clone the repository.
Janela do terminal git clone https://github.com/nahpu/nahpu.gitcd nahpuCreate a focused branch.
Janela do terminal git checkout -b your-branch-nameMake the change using the architecture and convention pages in this section.
Run the checks that match your change.
Janela do terminal flutter analyzeflutter testpython scripts.py frb --checkOpen a pull request against the
devbranch with a clear description, tests run, and screenshots for UI changes.