How aleenagibi/ripple-business-change-intelligence works
Ripple is an enterprise change-impact platform: users upload organizational documents, then search or submit a requirement change to find potentially affected assets. Document processing extracts text, chunks it, identifies entities and relationships, and resolves duplicate mentions into canonical entities; retrieval and graph-based impact analysis combine evidence for results. The graph preserves README-documented NLP and knowledge-graph stages, while sampled source confirms key route-to-service and retrieval calls. Some internal processing links rely on the README because their service implementations were not sampled.
Main entry points: retrieval_service.py Retrieval service · impact_analysis_service.py Impact analysis · document_service.py Document service · retrieval_routes.py Retrieval routes
Components 24
Web application
- App shell
frontend/src/App.tsx - Documents page
frontend/src/pages/DocumentsPage.tsx - Impact page
frontend/src/pages/ImpactAnalysisPage.tsx - Documents client
frontend/src/api/documents.ts - Impact client
frontend/src/api/impact.ts
HTTP API
- FastAPI app
backend/app/main.py - Document routes
backend/app/api/document_routes.py - Retrieval routes
backend/app/api/retrieval_routes.py - Auth routes
backend/app/api/auth_routes.py
Document intelligence
- Document service
backend/app/services/document_service.py - Text extraction
backend/app/services/document_extraction_service.py - Chunking
backend/app/services/chunk_service.py - Entity extraction
backend/app/engines/entity_extraction_engine.py - Relationship extraction
backend/app/engines/relationship_extraction_engine.py - Canonical resolution
backend/app/services/canonical_reconciliation_service.py
Retrieval and impact
- Retrieval service
backend/app/services/retrieval_service.py - TF-IDF search
backend/app/engines/tfidf_engine.py - Dense search
backend/app/engines/dense_engine.py - Hybrid fusion
backend/app/engines/hybrid_engine.py - Impact analysis
backend/app/services/impact_analysis_service.py - Impact scoring
backend/app/engines/impact_analysis_engine.py - Knowledge graph
backend/app/services/knowledge_graph_service.py
Persistence
- Relational database
backend/app/db/database.py
Other components
- Organization user
Connections 27
- Organization user → App shell: uses
- App shell → Documents page: shows
- App shell → Impact page: shows
- Documents page → Documents client: requests
- Impact page → Impact client: requests
- Documents client → Document routes: calls
- Impact client → Retrieval routes: calls
- FastAPI app → Document routes: registers
- FastAPI app → Retrieval routes: registers
- FastAPI app → Auth routes: registers
- Document routes → Document service: calls
- Document service → Text extraction: extracts text
- Document service → Chunking: chunks
- Chunking → Entity extraction: extracts entities
- Chunking → Relationship extraction: extracts relations
- Canonical resolution → Entity extraction: resolves mentions
- Retrieval routes → Retrieval service: calls
- Retrieval service → TF-IDF search: searches
- Retrieval service → Dense search: searches
- Retrieval service → Hybrid fusion: fuses results
- Retrieval routes → Impact analysis: calls
- Impact analysis → Retrieval service: retrieves evidence
- Impact analysis → Knowledge graph: uses graph
- Impact analysis → Impact scoring: scores impact
- Document service → Relational database: persists records
- Retrieval service → Relational database: loads chunks
- Impact analysis → Relational database: loads entities