A web-based application for managing student exam complaints with role-based access control and real-time notifications.
This system provides an efficient platform for students to submit exam complaints and for administrators to manage and respond to these complaints based on their institutional roles and responsibilities.
- Account Registration & Login: Secure user authentication system
- Complaint Submission: Submit detailed exam complaints with form validation
- Complaint Tracking: Track complaint status and view administrator responses
- Dashboard: Personal dashboard to view all submitted complaints
- Role-Based Access Control: Different access levels based on institutional position
- Lecturers: View complaints within their department
- HODs: View complaints within their department
- Deans: View complaints within their faculty
- System Administrators: View all complaints
- Complaint Management: Review, respond to, and update complaint statuses
- Analytics Dashboard: View complaint statistics and trends
- Email Notifications: Automated email notifications for responses
- Responsive Design: Mobile-friendly interface
- Dark Mode Support: Complete dark/light theme toggle
- Real-time Notifications: Toast notifications for user actions
- Security: Session-based authentication with password encryption
- Next.js 14 - React framework with App Router
- React 18 - User interface library
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible UI components
- Next.js API Routes - Server-side API endpoints
- MySQL - Primary database with mysql2 driver
- bcryptjs - Password hashing
- Nodemailer - Email service
- Zod - Schema validation
- Node.js 18+
- MySQL database
- Email service (SMTP)
# Clone repository
git clone <repository-url>
cd exam-complaint-system
# Install dependencies
npm install
# Create environment file
cp .env.example .env
# Start development server
npm run dev# Database
MYSQLHOST="localhost"
MYSQLUSER="your-username"
MYSQLPASSWORD="your-password"
MYSQLDATABASE="exam_complaints"
# Email
EMAIL_HOST="smtp.gmail.com"
EMAIL_USER="your-email@gmail.com"
EMAIL_APP_PASSWORD="your-app-password"
# Application
NEXT_PUBLIC_APP_URL="http://localhost:3000"
SESSION_SECRET="your-session-secret"- users: User accounts with role and position information
- complaints: Complaint records with department/faculty tracking
- responses: Administrator responses to complaints
- complaint_status_history: Audit trail of status changes
The system enforces access control based on admin positions:
- Department-level access for Lecturers and HODs
- Faculty-level access for Deans
- System-wide access for Administrators
- User registration with email verification
- Secure login with session management
- Role-based dashboard routing
- Password reset functionality
- Student submits complaint with required details
- System generates unique reference number
- Complaint routed to appropriate administrator based on department/faculty
- Administrator reviews and responds
- Student receives email notification
- Status updates tracked in history
- Session-Based Authentication: Secure HTTP-only cookies
- Password Security: bcrypt hashing with validation
- SQL Injection Protection: Parameterized queries
- Role-Based Authorization: Position-specific access control
- Input Validation: Zod schema validation
- Streamline Complaint Process: Digitize the traditional paper-based complaint system
- Improve Transparency: Provide real-time tracking and status updates
- Enhance Efficiency: Role-based routing to appropriate administrators
- Maintain Security: Secure user data and access control
- Ensure Accessibility: Responsive design for all devices
- Reduced complaint processing time
- Improved student satisfaction through transparency
- Better tracking and analytics for institutional improvement
- Elimination of paper-based processes
- Enhanced communication between students and administration
- Mobile application development
- Integration with existing student information systems
- Advanced analytics and reporting features
- Automated complaint categorization using AI
- SMS notifications support
Built with Next.js, TypeScript, and MySQL for academic excellence.