The Complaint Management and Tracking System is designed to streamline the process of managing complaints in an
organization. It provides a platform where users can submit, track, and resolve their complaints
efficiently. The system automates complaint handling, ensuring that issues are resolved in a timely
manner with proper documentation and tracking.
Organizations face challenges in managing complaints manually, leading to delayed responses,
lost records, and unsatisfied users. There is a need for a centralized system that ensures proper
registration, tracking, and resolution of complaints, with transparency in the process.
- To provide a centralized platform for complaint submission and tracking.
- To ensure timely resolution of complaints by assigning tasks to the relevant departments.
- To enable users to track the status of their complaints in real-time.
- To generate reports for management to assess performance and areas needing improvement.
- User registration and complaint submission.
- Tracking of complaints by users and administrators
- Assigning complaints to respective departments for resolution
- Notifications to users regarding status updates
- The system will not address complaints beyond the organization.
- It requires internet access for complaint submission and tracking.
- User Authentication: Users must register and log in to the system.
- Complaint Submission: Users can submit complaints by providing details like category,description, and attachments.
- omplaint tracking:Users can view the status of their submitted complaints.
- Admin Management:Administrators can assign complaints to departments and update the status.
- Notification System:Users receive notifications via email or system alerts about complaint updates.
- Performance:The system should handle multiple users and complaints without lag.
- Security:User data, especially complaint details, must be protected with proper encryption and authentication mechanisms.
- Usubality:The system should be user-friendly, with an intuitive interface for both users and administrators
- Availability:The system must be available 24/7 with minimal downtime.
- Scalability:The system should support the growing number of users and complaints.
- Users should be able to register and log in easily.
- They should be able to submit, track, and receive updates on their complaints.
- Administrators should be able to manage complaints efficiently and assign tasks to departments.
- User Complaint:Stores information about the users who submit complaints
- Complaint:Stores details about complaints, such as the description, type, and status.
- Administrator:Manages and oversees the resolution of complaints
- (Catageory)Complaint Type:Defines the type of complaint (e.g., technical, service-related).
- Complaint Status:Tracks the progress of a complaint (e.g., submitted, in progress, resolved).
- Department:Responsible for handling and resolving complaints.
- Officer:Assigned individuals within departments responsible for resolving specific complaints.
- Response:Records actions taken by officers to address the complaints.
- Comment:Contains additional notes or feedback from users and officers.
- Attachment:Stores any supporting documents or evidence provided with complaints.
- Location:Tracks the geographic location associated with the complaint.
- Priority: Represents the urgency or priority level of the complaint.
- Escalation:Records the history of complaint escalations to higher authorities.
- Resolution:Stores details of how the complaint was resolved.
- Feedback: Collects user feedback after the resolution of the complaint.
These entities are interconnected to capture the flow of data and ensure proper complaint management and resolution.
- FullName
- PhoneNumber
- Password
- Address
- UserType (Regular or VIP)
- DateJoined
- LastLogin
- ComplaintID (Primary Key)
- UserID (Foreign Key referencing User)
- CategoryID (Foreign Key referencing Category)
- StatusID (Foreign Key referencing Status)
- ComplaintTitle
- ComplaintDescription
- DateFiled
- LocationID (Optional, Foreign Key referencing Location)
- PriorityID (Optional, Foreign Key referencing Priority)
- EscalationID (Optional, Foreign Key referencing Escalation)
- ResolutionID (Optional, Foreign Key referencing Resolution)
- FeedbackID (Optional, Foreign Key referencing Feedback)
- AdminID (Primary Key)
- FullName
- PhoneNumber
- Password
- Role (e.g., Super Admin, Support Admin)
- DateJoined
- LastLogin
- Category (Complaint Type)
- CategoryID (Primary Key)
- CategoryName
- CategoryDescription
- StatusID (Primary Key)
- StatusName (e.g., Pending, In Progress, Resolved, Closed)
- StatusDescription
- DepartmentID (Primary Key)
- DepartmentName
- DepartmentHead
- DepartmentContact
- OfficerID (Primary Key)
- FullName
- PhoneNumber
- DepartmentID (Foreign Key referencing Department)
- AssignedComplaintsCount
- DateAssigned
- ResponseID (Primary Key)
- ComplaintID (Foreign Key referencing Complaint)
- OfficerID (Foreign Key referencing Officer)
- ResponseDescription
- DateResponded
- CommentID (Primary Key)
- ComplaintID (Foreign Key referencing Complaint)
- UserID (Foreign Key referencing User)
- OfficerID (Optional, Foreign Key referencing Officer)
- CommentText
- DateCommented
- AttachmentID (Primary Key)
- ComplaintID (Foreign Key referencing Complaint)
- AttachmentType (e.g., Image, PDF)
- AttachmentURL
- DateUploaded
- LocationID (Primary Key)
- ComplaintID (Foreign Key referencing Complaint)
- LocationName
- Latitude
- Longitude
- PriorityID (Primary Key)
- PriorityLevel (e.g., Low, Medium, High)
- PriorityDescription
- EscalationID (Primary Key)
- ComplaintID (Foreign Key referencing Complaint)
- EscalationLevel (e.g., Level 1, Level 2)
- EscalationDate
- EscalationDescription
- ResolutionID (Primary Key)
- ComplaintID (Foreign Key referencing Complaint)
- ResolutionDescription
- DateResolved
- ResolvedByOfficerID (Foreign Key referencing Officer)
- FeedbackID (Primary Key)
- ComplaintID (Foreign Key referencing Complaint)
- UserID (Foreign Key referencing User)
- Rating (e.g., 1 to 5 stars)
- FeedbackComments
- DateFeedbackGiven
- UserID → Complaint
- UserID → Comment
- UserID → Feedback
- ComplaintID → Category
- ComplaintID → Status
- ComplaintID → Department
- ComplaintID → Response
- ComplaintID → Comment
- ComplaintID → Attachment
- ComplaintID → Location (Optional)
- ComplaintID → Priority (Optional)
- ComplaintID → Escalation (Optional)
- ComplaintID → Resolution (Optional)
- ComplaintID → Feedback (Optional)
- AdminID → Complaint
- AdminID → Officer (Admin may assign officers)
- CategoryID → Complaint
- StatusID → Complaint
- DepartmentID → Officer
- DepartmentID → Complaint
- OfficerID → Response
- OfficerID → Comment
- OfficerID → Complaint (Assigned complaints)
- OfficerID → Resolution
- ResponseID → Complaint
- ResponseID → Officer
- CommentID → Complaint
- CommentID → User
- CommentID → Officer
- AttachmentID → Complaint
- LocationID → Complaint (Optional)
- PriorityID → Complaint (Optional)
- EscalationID → Complaint (Optional)
- ResolutionID → Complaint
- ResolutionID → Officer
- FeedbackID → Complaint
- FeedbackID → User
Level 0 (Context Diagram): Represents the entire system as a single process interacting with external entities like users and administrators.
Level 1: Breaks down the complaint submission, tracking, and resolution processes into smaller, detailed sub-processes.
The system follows a three-tier architecture:
Presentation Layer: User interface for web-based interaction (HTML, CSS, JavaScript).
Business Logic Layer: Handles the logic for complaint submission, tracking, and management (Node.js, Express).
Data Layer: Manages the database (MongoDB) for storing complaints, user details, and statuses.
User Table: Stores user details like user ID, name, email, and password.
Complaint Table: Stores complaint details like complaint ID, user ID, description, status, department assigned, and date.
Department Table: Stores department information with department ID and name.
Admin Table: Stores admin details and permissions.
5d17cfa6ed2c49ffbffb5d47dfb844f10c2eee57