How ragulgandhi-s/nexora works
ScamCheck is a student-focused job and internship scam assessment app. Users submit opportunity text or a screenshot; the backend extracts details, checks company/contact consistency, scores warnings, and builds a trust graph. The frontend presents evidence, safety labeling, recommendations, and an interactive warning simulator. The README documents OCR and the main product capabilities; some connections to unsampled OCR and UI modules are therefore shown only where documented or left unlinked. The frontend excerpts show a local analysis path, while the API client and result page show backend calls; the excerpts do not establish how these paths are selected at runtime.
Main entry points: analyze.py Opportunity analysis route · Result.jsx Assessment results page · api.js HTTP API client · upload.py File intake route
Components 27
User interface
- Application shell
frontend/src/App.jsx - React entry
frontend/src/main.jsx - Opportunity input
frontend/src/pages/Home.jsx - Text and upload controls
frontend/src/components/OpportunityInput.jsx - Screenshot upload
frontend/src/components/UploadScreenshot.jsx
API and intake
- HTTP API client
frontend/src/services/api.js - FastAPI application
backend/app/main.py - Opportunity analysis route
backend/app/routes/analyze.py - File intake route
backend/app/routes/upload.py - Simulation route
backend/app/routes/simulate.py
Assessment engine
- Screenshot text extraction
backend/app/ocr/text_extractor.py - Opportunity entity extraction
backend/app/ai/extractor.py - Risk scoring
backend/app/ai/risk_engine.py - Trust graph construction
backend/app/trust_graph/graph_builder.py
Verification
- Email verification
backend/app/verification/email_check.py - Website verification
backend/app/verification/url_check.py - Company verification
backend/app/verification/company_check.py - Cross-field consistency
backend/app/trust_graph/consistency.py
Results and simulation
- Assessment results page
frontend/src/pages/Result.jsx - Trust graph display
frontend/src/components/TrustGraph.jsx - Risk score display
frontend/src/components/RiskScore.jsx - Safety label
frontend/src/components/SafetyLabel.jsx - Warnings and evidence
frontend/src/components/RiskFactors.jsx - Evidence card
frontend/src/components/EvidenceCard.jsx - Risk simulator
frontend/src/components/RiskSimulator.jsx - Action plan
frontend/src/components/ActionPlan.jsx
Other components
- Opportunity seeker
Connections 28
- Opportunity seeker → Application shell: submits opportunity
frontend/src/App.jsx - React entry → Application shell: renders
frontend/src/main.jsx - Application shell → Opportunity input: presents intake
- Opportunity input → Text and upload controls: collects text
- Opportunity input → Screenshot upload: offers upload
- HTTP API client → Opportunity analysis route: POSTs text
frontend/src/services/api.js - HTTP API client → File intake route: uploads file
- HTTP API client → Simulation route: requests simulation
frontend/src/services/api.js - FastAPI application → Opportunity analysis route: registers router
backend/app/main.py - FastAPI application → File intake route: registers router
backend/app/main.py - FastAPI application → Simulation route: registers router
backend/app/main.py - File intake route → Opportunity analysis route: analyzes extracted text
backend/app/routes/upload.py - File intake route → Screenshot text extraction: extracts image text
- Opportunity analysis route → Opportunity entity extraction: extracts entities
backend/app/routes/analyze.py - Opportunity analysis route → Email verification: verifies email
backend/app/routes/analyze.py - Opportunity analysis route → Website verification: verifies website
backend/app/routes/analyze.py - Opportunity analysis route → Company verification: checks company
backend/app/routes/analyze.py - Opportunity analysis route → Cross-field consistency: checks consistency
backend/app/routes/analyze.py - Opportunity analysis route → Risk scoring: scores warnings
backend/app/routes/analyze.py - Opportunity analysis route → Trust graph construction: builds trust graph
backend/app/routes/analyze.py - Assessment results page → HTTP API client: requests simulation
frontend/src/pages/Result.jsx - Assessment results page → Trust graph display: renders graph
frontend/src/pages/Result.jsx - Assessment results page → Risk score display: renders score
frontend/src/pages/Result.jsx - Assessment results page → Safety label: renders label
frontend/src/pages/Result.jsx - Assessment results page → Warnings and evidence: renders warnings
frontend/src/pages/Result.jsx - Assessment results page → Evidence card: renders evidence
frontend/src/pages/Result.jsx - Assessment results page → Risk simulator: renders simulator
frontend/src/pages/Result.jsx - Assessment results page → Action plan: renders recommendations
frontend/src/pages/Result.jsx