IntegrityAI is a full-stack academic writing companion that helps students understand and improve their work before submission. It combines draft analysis with practical feedback on originality, AI-likeness, citations, and learning quality, while giving educators a focused view of assignments and submissions.
IntegrityAI is designed for formative feedback and revision support. Its scores are signals to investigate, not final academic judgments.
Most integrity tools stop at detection. IntegrityAI turns the moment after detection into a learning loop:
- Start an assignment and write or upload a draft.
- Run an integrity check on the current version.
- Review the risk level, similarity signal, AI probability, learning score, feedback, tips, and citation gaps.
- Revise with intention and keep a history of the work as it develops.
- Secure sign-up and login with JWT authentication
- Assignment and draft workspace
- AI-assisted integrity analysis
- Similarity, AI-probability, risk-level, and learning scores
- Actionable feedback and improvement tips
- Missing-citation signals
- PDF, PPTX, and document-oriented file processing support
- Draft history for revisiting earlier work
- Profile and account views
- Educator dashboard
- Assignment and submission visibility
- Student-facing feedback workflows that support learning instead of punishment
Next.js 14 frontend
|
| REST API + JWT
v
FastAPI backend ---- SQLAlchemy ---- SQLite (default)
|
v
Integrity analysis service ---- OpenAI API
.
├── backend/
│ ├── main.py # FastAPI application and route registration
│ ├── database.py # SQLAlchemy engine and session setup
│ ├── models.py # User, assignment, and draft models
│ ├── schemas.py # Request and response schemas
│ ├── routers/ # Auth, assignments, drafts, files, educator APIs
│ └── services/ # AI analysis and file extraction services
├── frontend/
│ ├── app/ # Next.js routes and screens
│ ├── components/ # Shared UI components
│ ├── lib/ # API client and auth state
│ └── types/ # Shared TypeScript types
├── .env.example
└── package.json
- Python 3.11 or later
- Node.js 18 or later
- npm
- An OpenAI API key for live integrity analysis
git clone https://github.com/Amrita8642/Integrity-AI.git
cd Integrity-AICreate backend/.env from the example configuration:
cp backend/.env.example backend/.envSet a real OPENAI_API_KEY and a strong SECRET_KEY in backend/.env. Keep this file private.
Create a virtual environment and install the API dependencies:
cd backend
python -m venv venv
# Windows PowerShell
venv\Scripts\Activate.ps1
# macOS/Linux
# source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000The API will be available at http://localhost:8000. Interactive API documentation is available at http://localhost:8000/docs.
Open a second terminal at the project root:
cd frontend
npm installCreate frontend/.env.local:
NEXT_PUBLIC_API_URL=http://localhost:8000Start Next.js:
npm run devOpen http://localhost:3000 in your browser.
npm run dev # Start the development server
npm run build # Create a production build
npm run start # Serve the production build
npm run lint # Run Next.js lintinguvicorn main:app --reload --port 8000FastAPI exposes the OpenAPI schema and interactive Swagger UI at /docs.
The backend groups its REST endpoints by workflow:
| Area | Prefix | Purpose |
|---|---|---|
| Authentication | /api/auth |
Registration, login, and current-user access |
| Assignments | /api/assignments |
Create and manage student assignments |
| Drafts | /api/drafts |
Save drafts, run checks, and view history |
| Files | /api/files |
Upload and extract supported files |
| Educator | /api/educator |
Educator dashboard and submission views |
Health checks:
GET /returns the API status message.GET /healthreturns{ "status": "healthy" }.
| Variable | Used by | Description |
|---|---|---|
OPENAI_API_KEY |
Backend | API key for integrity analysis |
SECRET_KEY |
Backend | Secret used to sign JWTs |
DATABASE_URL |
Backend | SQLAlchemy database URL; SQLite is the default |
NEXT_PUBLIC_API_URL |
Frontend | Base URL of the FastAPI service |
Never commit .env, .env.local, API keys, or production secrets. The repository includes example files with placeholder values for setup.
- Replace the default SQLite database with a managed database for production workloads.
- Use a strong, rotated
SECRET_KEYand store secrets in the deployment platform's secret manager. - Restrict CORS origins to the deployed frontend URL.
- Add rate limits, observability, and human review around high-impact academic decisions.
- Treat AI and similarity signals as probabilistic evidence, not proof of misconduct.
- Create a feature branch.
- Keep frontend and backend changes focused.
- Add or update tests when behavior changes.
- Run the relevant lint, build, or API checks before opening a pull request.
No license has been declared yet. Add a license file before distributing the project outside its owning organization.
Built to make academic integrity a conversation about better work.