IQAC-Suite is a comprehensive web-based application built using Django to streamline Internal Quality Assurance Cell (IQAC) processes within academic institutions. It digitizes workflows like event proposals, report generation, and media/content requests (CDL), aligning with NAAC/NBA quality benchmarks. Alongside, it also helps in keeping track of the student performance data in order to generate a graduate transcript during graduation.
- Key Features
- System Overview
- Technology Stack
- AI Integration
- Installation Guide
- Modules
- Usage Flow
- Visual Overview
- UI and Animation
- Security
- Roadmap
- Contribution
- License
- Contact
- Role-based login system (Admin, Faculty, Coordinator)
- Multi-page event proposal form with attachments
- IQAC report generation with word limit validation
- Status tracking and reviewer comments
- CDL (Content Development Lab) request module
- Graduate Attribute Script
- Notification panel with visual indicators
- Dynamic notifications about event proposals
- Dashboard with statistics and filters
- Fully responsive and mobile-optimized
Browser (HTML/CSS/JS)
↓
Django Views & Templates
↓
Django Models & ORM
↓
Database (SQLite / PostgreSQL)
All AI-assisted features and endpoints have been fully removed from IQAC-Suite. No AI model runtimes, API keys, or related configuration are required. All proposal and report generation is now fully manual and user-driven.
- Python 3.10+
- pip, git, virtualenv
- PostgreSQL (optional for production)
git clone https://github.com/CHRISTInfotech/IQAC-Suite.git
cd IQAC-Suite
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in the root directory:
DEBUG=True
SECRET_KEY=your-secret-key
DATABASE_URL=sqlite:///db.sqlite3
ALLOWED_HOSTS=127.0.0.1,localhost
If DATABASE_URL is omitted, the project falls back to a local SQLite database at db.sqlite3. Provide a PostgreSQL URL only when you have access to that server.
py manage.py makemigrations
py manage.py migratepy manage.py createsuperuserpy manage.py collectstaticpy manage.py runserverAccess at: http://127.0.0.1:8000/
| App/Module | Description |
|---|---|
emt |
Event Management and Tracking |
cdl |
Content Development Lab (media requests) |
accounts |
Authentication and user profile management |
core-admin |
Admin views for overseeing reports and submissions |
templates |
HTML files with base layouts and includes |
static |
CSS, JavaScript, and image assets |
IQAC-Suite follows a role-based access control model, ensuring each user only sees relevant features for their role. Below is a detailed breakdown of functionalities for each type of user in the system.
Primary users responsible for creating and managing event proposals.
- Submit new Event Proposals via a multi-step form
- Upload necessary documents:
- Event Invitation
- Brochure
- Attendance Sheet
- Event Report
- View and track proposal status:
- Pending → Under Review → Approved/Rejected
- Respond to reviewer feedback and edit submissions
- Generate and export IQAC Reports for completed events
- Submit CDL (Media) requests for banners, posters, or content
- Receive real-time notifications via the dashboard
Departmental reviewer responsible for evaluating submissions.
- View proposals submitted by faculty under the department
- Provide review feedback, approve, or reject proposals
- Forward approved proposals to IQAC Admin
- Monitor department events and proposal statuses
- Access archive of past events and reports
Core admin responsible for quality control and documentation.
- Access and manage all submitted proposals across departments
- Review, approve, or reject proposals at final stage
- Leave reviewer feedback visible to submitters
- Generate consolidated IQAC reports (PDF & HTML)
- Manage deadlines and reporting periods
- Access analytics dashboard and proposal statistics
- Moderate CDL submissions and feedback
Content team responsible for design/media creation and tracking.
- Access all media/content requests via CDL module
- Change status of requests: Submitted → In Progress → Completed
- Upload final assets (banners, posters, videos, etc.)
- Provide clarifications or request additional input
- Maintain task history and approval trail
Full backend access with administrative privileges.
- Access Django Admin Panel
- Add, modify, or deactivate users and roles
- Configure platform-wide settings and deadlines
- Manage static files and uploaded media
- Monitor database and logs
- Enable or disable modules/features as needed
Each role has been designed to ensure:
- Clarity of workflow
- Security and data integrity
- Seamless collaboration between academic and media teams
To test multiple roles locally, create accounts and assign roles via the Django Admin Panel (/admin).
- User logs in based on role.
- Faculty submits an event proposal via a dynamic multi-page form.
- Proposal is reviewed by Coordinator, HOD, and IQAC Admin.
- Documents are uploaded (invitation, report, attendance, etc.).
- After approval, user generates an IQAC report.
- CDL requests (media/content) are submitted and reviewed.
- Admins manage all records, filter submissions, and track pending items.
| Module | Total Submissions | Approved | Rejected |
|---|---|---|---|
| Event Proposals | 128 | 102 | 12 |
| IQAC Reports | 64 | 64 | 0 |
| CDL Requests | 45 | 32 | 3 |
To display charts on the live dashboard, use Chart.js or static images.
[Pie chart / Bar chart]
- Submitted vs Approved Events
- Report completion status
- Request distribution by department
- Page Transitions: Smooth fade-in using keyframes (
fadeSlideUp) - Button Effects: Hover transitions and click scaling
- Notification Bell: Pulse animation for unread status
- Responsive Grid: Flexbox layout for cards and containers
- Glassmorphism: Translucent panels using blur + semi-opacity
Animations are CSS-based and performance-friendly. Compatible with all major browsers.
- CSRF protection enabled on all forms
- File upload type and size restrictions
- Role-based access using decorators and middleware
- User session timeout and logout functionality
- Environment isolation using
.envfile
[x] Multi-page Event Proposal Form
[x] IQAC Report Export as PDF
[x] Media/CDL Request Workflow
[ ] Audit Trail Logging
[ ] NAAC/NBA Auto-Format Compliance
[ ] Mobile App Integration via API
[ ] Admin Analytics Dashboard (interactive charts)
Contributions are welcome from the open-source and academic community.
- Fork the repository
- Create a new branch (
feature/your-feature) - Commit and push your changes
- Submit a pull request
Please follow coding conventions and include test data or UI screenshots where applicable.
This project is licensed under the MIT License. See the LICENSE file for more details.
CHRIST (Deemed to be University)
Pune Lavasa Campus – Infotech R&D Team
Email: infotech.lavasa@christuniversity.in
GitHub: CHRISTInfotech
Website: https://christuniversity.in/lavasa
If you created an academic year with an incorrect year value or need to clear a duplicate entry, you can remove it using the provided management command:
py manage.py delete_academic_year 2025-2026Replace 2025-2026 with the year you want to delete.
Use the provided migrate_railway_pg.sh script to migrate data between two Railway-managed PostgreSQL databases.
-
Copy the example environment file and fill in values from Railway's
DATABASE_URLfor both old and new databases:cp .env.example .env # edit .env with your old + new DATABASE_URL -
Run the migration:
source .env bash migrate_railway_pg.sh
Dependencies: pg_dump, pg_restore, psql.