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

  1. User Management: Admins can add, edit, and delete users.
  2. Ticket Management: Users can open and close tickets, attach photos, and view ticket status.
  3. Issue Resolution: Managers can view and resolve issues, communicate with users, and receive email notifications.
  4. Admin Dashboard: Admins can manage users, groups, and view all tickets.
  5. Authentication: Secure login for users, managers, and admins using NextAuth.js with JWT and email verification.

Non-Functional Requirements

  1. Performance: The system should handle multiple concurrent users without significant performance degradation.
  2. Scalability: The system should be scalable to accommodate future growth in the number of users and tickets.
  3. Security: User data and authentication mechanisms should be secure.
  4. 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.