Project Report: University Complaint Management System
Abstract
This report details the development of a University Complaint Management System using Next.js, Prisma, and PostgreSQL. The system manages complaints within university buildings and hostels, supporting roles for users, managers, and admins. It includes functionalities for ticket management, messaging, and notifications.
Introduction
The University Complaint Management System is designed to streamline the process of reporting and resolving maintenance issues in university buildings and hostels. The system allows users to submit complaints, managers to resolve them, and admins to oversee the entire process. The application leverages modern web technologies to provide a robust and user-friendly experience.
Software Requirements Specification (SRS)
Functional Requirements
- User Management: Admins can add, edit, and delete users.
- Ticket Management: Users can open and close tickets, attach photos, and view ticket status.
- Issue Resolution: Managers can view and resolve issues, communicate with users, and receive email notifications.
- Admin Dashboard: Admins can manage users, groups, and view all tickets.
- Authentication: Secure login for users, managers, and admins using NextAuth.js with JWT and email verification.
Non-Functional Requirements
- Performance: The system should handle multiple concurrent users without significant performance degradation.
- Scalability: The system should be scalable to accommodate future growth in the number of users and tickets.
- Security: User data and authentication mechanisms should be secure.
- Usability: The system should be user-friendly and accessible.
Feasibility Report
The project is feasible with the current team and resources. The use of Next.js and Prisma ensures a scalable and maintainable codebase. PostgreSQL provides a robust database solution. The project timeline and budget are realistic, and the team has the necessary skills to complete the project.
Schedule Management
Project Timeline
- Week 1-2: Requirements gathering and initial setup.
- Week 3-4: Database schema design and implementation.
- Week 5-6: Development of user and admin dashboards.
- Week 7-8: Implementation of ticket management and issue resolution features.
- Week 9-10: Integration of authentication mechanisms.
- Week 11-12: Testing and bug fixing.
- Week 13: Deployment and final review.
Database Schema
The database schema is defined using Prisma and includes models for users, admins, tickets, and related entities. Below is an overview of the key models:
User
model User {
id String @id @default(cuid())
name String?
email String? @unique
emailVerified DateTime?
image String?
full_name String
password String?
registration_id String? @unique
role Int @default(0)
accounts Account[]
sessions Session[]
active_ticket active_ticket[]
chat_message chat_message[]
closed_ticket closed_ticket[]
}Admin
model admin {
id Int @id @default(autoincrement())
email String @unique
full_name String
password String
employee_id String @unique
}Active Ticket
model active_ticket {
id Int @id @default(autoincrement())
subject String
category String
body String
user_id String
opened_time DateTime @default(now())
hostel_block String?
room_no String?
contact_no String?
chat_id Int
image_files_paths String[]
chat_history chat_history @relation(fields: [chat_id], references: [id])
user User @relation(fields: [user_id], references: [id])
}Estimation Management
The project is estimated to take 13 weeks, with a team of 4 developers working full-time. The estimated cost includes developer salaries, hosting, and other resources.
Prototype Used
A prototype was developed using Next.js to validate the user interface and core functionalities. This helped in gathering feedback and making necessary adjustments before full-scale development.
Resources Management
Team Responsibilities
- Project Manager: Oversees the project, manages timelines, and coordinates between team members.
- Frontend Developer: Develops the user interface using Next.js and Tailwind CSS.
- Backend Developer: Implements the server-side logic and database interactions using Prisma and PostgreSQL.
- QA Engineer: Tests the application to ensure it meets the requirements and is free of bugs.
Tools Used
- Next.js: For building the frontend and server-side rendering.
- Prisma: For database schema management and ORM.
- PostgreSQL: As the database solution.
- NextAuth.js: For authentication.
- Tailwind CSS: For styling the application.
- Jest: For unit testing.
- GitHub: For version control and collaboration.
Project Planning
Incremental Model
The project follows an incremental model, where the system is developed and delivered in increments. Each increment adds new functionality, allowing for early feedback and adjustments. This approach ensures that the project stays on track and meets the requirements.
Conclusion
The University Complaint Management System is a comprehensive solution for managing maintenance issues in university buildings and hostels. The use of modern web technologies ensures a robust and scalable application. The project is well-planned, with clear responsibilities and realistic timelines, ensuring successful delivery.