How jiashinnn/documentsearchsystem works
OmniDoc is a corporate document-management and hybrid-retrieval application. Users log in, upload documents, and search active documents by filename and content; upload processing extracts and chunks text, creates embeddings, and stores file metadata and vectors. Search results include matching text snippets, while users can download or soft-delete documents and review audit history. The graph includes the frontend, API/service layer, processing and retrieval dependencies, and persistence. Some processing and frontend excerpts are partial, so only documented or directly evidenced subsystem links are shown.
Main entry points: DocumentServiceImpl.java Document service · App.tsx App coordinator · DocumentController.java Document API · application.properties PostgreSQL
Components 18
Web application
- App coordinator
frontend/src/App.tsx - Login view
frontend/src/components/LandingView.tsx - Search and documents
frontend/src/components/SearchView.tsx - Audit history
frontend/src/components/HistoryView.tsx
API and services
- Authentication API
backend/src/main/java/com/omnidoc/backend/controller/AuthController.java - User service
backend/src/main/java/com/omnidoc/backend/service/impl/UserServiceImpl.java - Document API
backend/src/main/java/com/omnidoc/backend/controller/DocumentController.java - Document service
backend/src/main/java/com/omnidoc/backend/service/impl/DocumentServiceImpl.java
Document processing
- Text extraction
backend/src/main/java/com/omnidoc/backend/service/impl/DocumentServiceImpl.java - Paragraph chunking
backend/src/main/java/com/omnidoc/backend/service/impl/DocumentServiceImpl.java
Persistence and storage
- User repository
backend/src/main/java/com/omnidoc/backend/repository/UserRepository.java - File repository
backend/src/main/java/com/omnidoc/backend/repository/FileRepository.java - Chunk search repository
backend/src/main/java/com/omnidoc/backend/repository/ChunkRepository.java - Audit repository
backend/src/main/java/com/omnidoc/backend/repository/RecordRepository.java - PostgreSQL
backend/src/main/resources/application.properties
External integrations
- Ollama embeddings
- Cloudflare R2
Other components
- Enterprise user
Connections 23
- Enterprise user → App coordinator: uses
- App coordinator → Login view: shows login
- App coordinator → Search and documents: shows search
- App coordinator → Audit history: shows history
- Login view → Authentication API: submits login
- Authentication API → User service: delegates login
- User service → User repository: looks up user
- User repository → PostgreSQL: reads users
- Search and documents → Document API: requests documents
- App coordinator → Document API: loads history
- Document API → Document service: delegates operations
- Document service → Text extraction: extracts text
- Text extraction → Paragraph chunking: passes extracted text
- Document service → Ollama embeddings: creates embeddings
- Document service → Cloudflare R2: stores and retrieves files
- Document service → File repository: reads and writes files
- Document service → Chunk search repository: stores and searches chunks
- Document service → Audit repository: records activity
- Document service → User repository: looks up user context
- File repository → PostgreSQL: persists metadata
- Chunk search repository → PostgreSQL: queries vectors and names
- Audit repository → PostgreSQL: persists audit history
- Document API → Cloudflare R2: checks object metadata