How jutver/etymos works
Etymos is a plagiarism-checking application with a customer web app, a separate admin portal, and a Python API/backend. The main user workflow is to submit text or a document, track an asynchronous check, and review a report with matched sources and document previews. The sampled pipeline shows extraction, metadata-based paper search, matching, verification, and report building. The README is a generic Vite template; unsampled frontend and backend capabilities are represented only where the tree or excerpts support them, so uncertain implementation links are omitted.
Main entry points: main.py Check orchestration · app.py Check API · App.tsx Web app routes · api.ts Web API client
Components 21
Customer app
- Web app routes
apps/web/src/App.tsx - Upload and checks
apps/web/src/screens/Upload/index.tsx - Report review
apps/web/src/screens/Report/index.tsx - Web API client
apps/web/src/lib/api.ts
Check backend
- Check API
backend/api/app.py - Job tracking
backend/api/job_manager.py - Check orchestration
backend/main.py - Document extraction
backend/extractor.py - Metadata and queries
backend/llm_metadata.py - Paper search
backend/search_paper/search_sources.py - Similarity and verification
backend/sentence_matcher.py - Report building
backend/final_report_builder.py - AI rewrite
backend/ai_rewrite.py - PDF preview
backend/marker_preview.py - Report persistence
backend/api/report_store.py
Admin portal
- Admin workflows
apps/admin/src/App.tsx - Admin queries
apps/admin/src/lib/api.ts
Persistence
- Supabase
backend/api/supabase_client.py - Paper cache
backend/paper_cache.py
Other components
- Student or user
- Academic search services
Connections 22
- Student or user → Web app routes: uses
- Web app routes → Upload and checks: routes
- Upload and checks → Web API client: submits checks
- Web API client → Check API: calls
- Check API → Job tracking: creates and reads
- Check API → Check orchestration: dispatches checks
- Check orchestration → Document extraction: extracts text
- Check orchestration → Metadata and queries: builds queries
- Check orchestration → Paper search: searches papers
- Check orchestration → Similarity and verification: verifies matches
- Check orchestration → Report building: builds report
- Check orchestration → Paper cache: caches papers
- Paper search → Academic search services: queries
- Check API → Report persistence: reads and writes
- Report persistence → Supabase: persists reports
- Check API → PDF preview: starts preview
- Report review → Web API client: loads report
- Web app routes → Report review: routes
- Student or user → Admin workflows: administers
- Admin workflows → Admin queries: requests data
- Admin queries → Check API: calls
- Check API → AI rewrite: rewrites text