diff --git a/README.md b/README.md index da8cb05..9e1ec28 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,63 @@ # TrustCode Platform 🚀 -AI-assisted Trust-aware CI/CD platform that improves software reliability -using automated code audits, testing pipelines, and trust metrics. - -## Features -- AI-based code review (LangChain) -- Automated CI/CD with GitHub Actions -- Trust Loop for commit verification -- Test execution & failure analysis \ No newline at end of file +TrustCode is an **Academic Integrity & Research Authenticity Platform** that helps faculty, students, and administrators evaluate originality, argument quality, AI overuse risk, and research novelty with explainable evidence. + +## What is new (Next-Level Scope) + +This repository now includes a practical implementation roadmap for the advanced Level-3 capabilities: + +- Concept-level plagiarism detection (idea theft) +- Argument & logic-flow scoring +- AI-vs-human probability analysis +- Student stylometric fingerprinting +- Group contribution verification +- Research novelty scoring +- Viva support question generation +- Learning outcome mapping (CO/PO/Bloom) +- Batch/college analytics dashboards +- Policy-driven integrity rules +- Student improvement timeline +- Evidence-backed decision reports +- Secure dataset builder for research +- Multi-language support +- Composite Academic Integrity Index + +## Top 10 must-build first + +1. Policy-Driven Integrity Rules Engine +2. Evidence-Backed Decision Reports +3. Concept-Level Plagiarism Detector +4. AI vs Human Writing Probability +5. Stylometric Fingerprint + Drift Detection +6. Novelty Score Engine +7. Contribution Verification for Group Projects +8. Learning Outcome Mapping +9. Batch/College Analytics +10. Academic Integrity Index + +Why this order: +- Delivers governance and trust early. +- Reduces false-positive risk by requiring explainability. +- Builds reusable scoring infrastructure before advanced UX layers. + +## Initial API scaffold + +A lightweight FastAPI scaffold is included at `backend/main.py` with: + +- health endpoint +- policy registration endpoint +- integrity index scoring endpoint +- explainable evidence payload in the response + +Run locally: + +```bash +pip install -r backend/requirements.txt +uvicorn backend.main:app --reload --port 8000 +``` + +## Documentation + +Detailed architecture, data model, phased rollout, and IEEE-friendly research framing: + +- `docs/academic-integrity-next-level.md` diff --git a/backend/main.py b/backend/main.py index e69de29..eada95c 100644 --- a/backend/main.py +++ b/backend/main.py @@ -0,0 +1,91 @@ +from typing import List, Optional + +from fastapi import FastAPI +from pydantic import BaseModel, Field + +app = FastAPI(title="TrustCode Academic Integrity API", version="0.1.0") + + +class IntegrityPolicy(BaseModel): + name: str + max_similarity: float = Field(ge=0.0, le=100.0) + ai_strictness: float = Field(ge=0.0, le=1.0) + originality_weight: float = Field(ge=0.0, le=1.0) + citation_weight: float = Field(ge=0.0, le=1.0) + novelty_weight: float = Field(ge=0.0, le=1.0) + + +class IntegritySignals(BaseModel): + originality_score: float = Field(ge=0.0, le=100.0) + citation_quality_score: float = Field(ge=0.0, le=100.0) + logic_flow_score: float = Field(ge=0.0, le=100.0) + novelty_score: float = Field(ge=0.0, le=100.0) + writing_quality_score: float = Field(ge=0.0, le=100.0) + ai_overuse_risk: float = Field(ge=0.0, le=100.0) + idea_similarity_risk: float = Field(ge=0.0, le=100.0) + + +class EvidenceItem(BaseModel): + section: str + reason: str + confidence: float = Field(ge=0.0, le=1.0) + source: Optional[str] = None + + +class IntegrityScoreResponse(BaseModel): + integrity_index: float + verdict: str + evidence: List[EvidenceItem] + + +POLICIES: List[IntegrityPolicy] = [] + + +@app.get("/health") +def health() -> dict: + return {"status": "ok"} + + +@app.post("/policies", response_model=IntegrityPolicy) +def create_policy(policy: IntegrityPolicy) -> IntegrityPolicy: + POLICIES.append(policy) + return policy + + +@app.get("/policies", response_model=List[IntegrityPolicy]) +def list_policies() -> List[IntegrityPolicy]: + return POLICIES + + +@app.post("/score", response_model=IntegrityScoreResponse) +def score_submission(signals: IntegritySignals) -> IntegrityScoreResponse: + index = ( + 0.25 * signals.originality_score + + 0.15 * signals.citation_quality_score + + 0.15 * signals.logic_flow_score + + 0.15 * signals.novelty_score + + 0.10 * signals.writing_quality_score + - 0.10 * signals.ai_overuse_risk + - 0.10 * signals.idea_similarity_risk + ) + + verdict = "pass" if index >= 60 else "review" + evidence = [ + EvidenceItem( + section="Overall", + reason="Composite index derived from originality, citation quality, logic flow, novelty, and risk penalties.", + confidence=0.86, + ), + EvidenceItem( + section="AI Usage", + reason="AI-overuse risk reduces the final index under institutional policy.", + confidence=0.78, + source="policy:default-weight-profile", + ), + ] + + return IntegrityScoreResponse( + integrity_index=round(index, 2), + verdict=verdict, + evidence=evidence, + ) diff --git a/backend/requirements.txt b/backend/requirements.txt index e69de29..3971515 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -0,0 +1,3 @@ +fastapi==0.115.0 +uvicorn==0.30.6 +pydantic==2.9.2 diff --git a/docs/academic-integrity-next-level.md b/docs/academic-integrity-next-level.md new file mode 100644 index 0000000..a5b2854 --- /dev/null +++ b/docs/academic-integrity-next-level.md @@ -0,0 +1,93 @@ +# Academic Integrity Platform – Level-3 Blueprint + +## 1) Product goal + +Build an enterprise-ready academic integrity system that moves beyond string matching and supports **idea-level authenticity**, **explainable decisioning**, and **institution-scale analytics**. + +## 2) Core modules + +| Layer | Responsibilities | +|---|---| +| AI Engine | embeddings, stylometry, argument mining, multilingual NLP | +| Integrity Engine | weighted scoring, policy evaluation, penalties, thresholds | +| Explainability | source snippets, confidence, rationale trace | +| Analytics | student, class, department, institution trend intelligence | +| Governance | policy authoring, audit logs, ethics + consent handling | +| Research | novelty analysis and anonymized dataset export | + +## 3) Prioritized implementation roadmap + +### Phase A: Trust foundation (Weeks 1–3) +- Policy-Driven Rules Engine +- Evidence-Backed Decision Reports +- Academic Integrity Index (first version) + +### Phase B: Detection intelligence (Weeks 4–8) +- Concept-Level Plagiarism Detector +- AI-vs-Human Writing Probability +- Stylometric fingerprint + anomaly detection +- Contribution verification for team submissions + +### Phase C: Research quality (Weeks 9–12) +- Argument & Logic Flow Analyzer +- Novelty Score against historical/internal/public sources +- Viva-support auto question generator +- Learning Outcome mapping (Bloom/CO/PO) + +### Phase D: Enterprise scale (Weeks 13–16) +- Batch/college analytics dashboards +- Improvement timeline per student +- Multi-language support + cross-language similarity +- Secure dataset builder with ethics controls + +## 4) Academic Integrity Index (proposed v1) + +```text +IntegrityIndex = +(0.25 * OriginalityScore) ++ (0.15 * CitationQualityScore) ++ (0.15 * LogicFlowScore) ++ (0.15 * NoveltyScore) ++ (0.10 * WritingQualityScore) +- (0.10 * AIOveruseRisk) +- (0.10 * IdeaSimilarityRisk) +``` + +Policy engine can override weights by institution. + +## 5) Data entities (minimal) + +- StudentProfile +- Submission +- EvidenceItem +- IntegrityPolicy +- AnalysisResult +- ContributionSplit +- OutcomeMapping +- AuditEvent + +## 6) Explainability contract + +Every flagged result must include: +- evidence snippet +- matched source +- score/confidence +- model signal summary +- policy/rule that fired + +This keeps outcomes auditable and defensible during viva/disciplinary reviews. + +## 7) Research/IEEE readiness + +- Anonymized dataset pipeline with consent metadata +- Experiment tracking for model versions +- Baseline comparison (classical plagiarism vs idea-level model) +- Fairness checks across language/background segments + +## 8) Suggested KPIs + +- False positive rate (<5% target) +- Manual review agreement (>85%) +- Policy override frequency +- Semester-over-semester integrity improvement +- Time saved in faculty review process