How doculan/docuroute1 works
DocuRoute manages controlled university manuals and routes proposed changes through assessment, concurrence, signing, IMR decision, and custodian effectiveness. Staff and administrators use role-specific React portals backed by Django APIs and persistent document/workflow records. Manual intake extracts and tags sections; revision assessment combines rule, model, and fusion layers with reviewer-facing explanations. The README documents these product capabilities; source excerpts are partial, so unsampled endpoint wiring is shown only where the documented workflow or visible calls support it.
Main entry points: models.py QMS records · pipeline.py Assessment pipeline · App.jsx Portal routing · documents.py Manual APIs
Components 28
User portals
- Portal routing
frontend/src/App.jsx - Session client
frontend/src/authClient.js - Staff portal
frontend/src/components/staff/StaffDashboard.jsx - Section search
frontend/src/components/staff/StaffSectionSearch.jsx - Admin portal
frontend/src/components/admin/AdminDashboard.jsx - Manual sections
frontend/src/components/admin/Sections.jsx - QMS portal
frontend/src/components/qms/QmsDashboard.jsx - QMS decisions
frontend/src/components/qms/QmsRequests.jsx
Manual lifecycle
- Manual APIs
Backend/api/documents.py - Document extraction
Backend/ml/ocr_engine.py - Section classifier
Backend/ml/svm_model.py
Change control
- Proposal APIs
Backend/api/proposal_views.py - Concurrence process
Backend/api/concurrence_views.py - DCR generation
Backend/api/generation/dcr.py - QMS APIs
Backend/api/qms_views.py
Revision assessment
- Pre-assessment API
Backend/api/pre_assessment.py - Assessment pipeline
Backend/ml/revision_pipeline/pipeline.py - Context retrieval
Backend/ml/revision_pipeline/retrieval.py - Rule assessment
Backend/ml/revision_pipeline/layer1_rules.py - Model assessment
Backend/ml/revision_pipeline/layer2_model.py - Result fusion
Backend/ml/revision_pipeline/layer3_fusion.py - Assessment explanation
Backend/ml/revision_pipeline/layer4_explain.py
Application data
- QMS records
Backend/api/models.py - Identity APIs
Backend/api/access.py - Django API
Backend/api/urls.py - Application database
Backend/backend/settings.py
Other components
- Staff
- Administrators
Connections 36
- Staff → Portal routing: uses
- Administrators → Portal routing: uses
- Portal routing → Identity APIs: checks portal
- Portal routing → Staff portal: opens
- Portal routing → Admin portal: opens
- Portal routing → QMS portal: opens
- Session client → Identity APIs: refreshes token
- Staff portal → Section search: searches sections
- Section search → Manual APIs: requests sections
- Admin portal → Manual sections: manages sections
- Manual sections → Manual APIs: creates sections
- Manual APIs → Document extraction: extracts uploads
- Manual APIs → Section classifier: classifies sections
- Manual APIs → QMS records: reads and writes
- Staff portal → Proposal APIs: drafts changes
- Proposal APIs → Pre-assessment API: requests assessment
- Pre-assessment API → Assessment pipeline: assesses revision
- Assessment pipeline → Context retrieval: retrieves context
- Assessment pipeline → Rule assessment: runs rules
- Assessment pipeline → Model assessment: runs model
- Assessment pipeline → Result fusion: fuses findings
- Assessment pipeline → Assessment explanation: renders findings
- Pre-assessment API → QMS records: loads revision
- Proposal APIs → Concurrence process: routes for concurrence
- Concurrence process → DCR generation: generates DCR
- QMS portal → QMS decisions: reviews requests
- QMS decisions → QMS APIs: submits decisions
- QMS APIs → QMS records: updates workflow
- Proposal APIs → QMS records: stores proposals
- Concurrence process → QMS records: stores concurrence
- Identity APIs → QMS records: reads accounts
- Django API → Identity APIs: dispatches routes
- Django API → Manual APIs: dispatches routes
- Django API → Proposal APIs: dispatches routes
- Django API → QMS APIs: dispatches routes
- QMS records → Application database: persists records