Demo Video Link: https://www.youtube.com/watch?v=fFNg0Zc-VLA
A transparency and trust-building digital grievance ecosystem for educational institutions.
# 1. Install dependencies
pip install -r requirements.txt
# 2. Run the server
uvicorn app.main:app --reload
# 3. Open browser
# β http://localhost:8000- URL: http://localhost:8000/admin/login
- Username:
admin - Password:
admin123
β οΈ Change credentials inapp/utils.pybefore production deployment.
grievance-tracker/
βββ app/
β βββ main.py # FastAPI app, page routes, startup
β βββ models.py # SQLAlchemy ORM models
β βββ database.py # SQLite engine & session
β βββ routes.py # All API endpoints
β βββ schemas.py # Pydantic validation schemas
β βββ utils.py # Priority detection, password hashing
βββ templates/
β βββ index.html # Landing page
β βββ submit.html # Submit grievance form
β βββ track.html # Track by ID
β βββ admin_login.html
β βββ dashboard.html # Full admin dashboard
βββ static/
β βββ uploads/ # Uploaded files (auto-created)
βββ requirements.txt
βββ README.md
| Feature | Description |
|---|---|
| Auto Priority Detection | Keywords like "harassment", "ragging", "unsafe" β HIGH priority |
| Sensitive Flag | Student-marked sensitive β immediate HIGH priority |
| Auto Escalation | No update in 5 days β status becomes "Escalated" |
| Unique Tracking IDs | Format: GRV-2026-XXXXX |
| Analytics Charts | Category doughnut + status bar charts |
Submitted β Under Review β Assigned β In Progress β Resolved
Also: Rejected, Escalated
- Passlib bcrypt password hashing
- SQLAlchemy ORM (prevents SQL injection)
- File upload validation (type + 5MB limit)
- Session-based admin auth (client-side guard + server-side verification)
| Method | Path | Description |
|---|---|---|
POST |
/api/submit |
Submit a grievance |
GET |
/api/track/{id} |
Track by tracking ID |
POST |
/api/admin/login |
Admin authentication |
GET |
/api/admin/grievances |
List grievances (with filters) |
PUT |
/api/admin/grievances/{id} |
Update status/comment |
GET |
/api/admin/analytics |
Dashboard analytics data |
Full docs: http://localhost:8000/api/docs
Problem: Students fear retaliation. Colleges lack transparent grievance systems.
Solution: CampusResolve provides:
- β Anonymous submission (email optional, IP not logged)
- β Unique tracking ID for transparency
- β Smart AI keyword-based priority detection
- β Auto-escalation for stale complaints
- β Professional admin dashboard with analytics
- β Zero-setup SQLite database
Impact: Builds trust, ensures accountability, and empowers student voices.
Built with FastAPI + SQLite + Tailwind CSS