This PR introduces the v2 "Enterprise" Upgrade, significantly enhancing the platform's security, interactivity, and administrative capabilities. The system transitions from a basic CRUD application into a production-ready Help Desk with real-time updates, role-based automation, and analytics.
- Google OAuth2: Secure sign-in using Google Accounts (replaces basic local authentication).
- Password Reset Flow: Email-based password reset using SMTP
(
fastapi-mail). - Role-Based Access Control (RBAC): Strict separation between Student and Admin APIs.
- WebSockets: Real-time updates via a WebSocket connection manager.
- Live Dashboard: Ticket status changes and new comments appear instantly without page refresh.
- Audit Logging: Logs critical Admin actions (e.g., Deleted Ticket #101) for compliance.
- Bulk Actions: Batch ticket operations (Resolve, Delete, Change Status).
- Canned Responses: Save and reuse predefined admin replies.
- Data Export: Download ticket reports as CSV or Excel.
- Department Filtering: Admin access restricted by department (IT, Facility, etc.).
- Visual Charts: Chart.js dashboards:
- Ticket Status Distribution
- Tickets by Category
- SLA Timers: High-priority tickets show countdowns and pulse red when nearing the 4-hour SLA.
- Smart Suggestions: FAQ/self-service recommendations while typing ticket subjects.
- Feedback System: Users can rate resolved tickets (1--5 stars) and leave reviews.
- Added
pandasandopenpyxlfor report generation. - Added Google authentication libraries for OAuth2 token verification.
- Refactored
main.pyto properly serialize MongoDBObjectIdvalues and prevent 500 errors.
- Integrated Chart.js via CDN.
- Refactored
dashboard.jsandadmin.htmlto support WebSocket-driven updates.
- Google Login
- Sign in or sign up using a Google account.
- Real-Time Updates
- Open the dashboard in two windows (Admin & Student).
- Update a ticket in one window and verify instant updates in the other.
- SLA Validation
- Create a High Priority ticket and observe the SLA countdown and warning indicators.
- Export Reports
- Click Export Report in the Admin panel and verify CSV/Excel downloads.
- Bulk Actions
- Select multiple tickets and apply Mark Resolved or other bulk actions.
-
Update the
.envfile with the following variables:GOOGLE_CLIENT_ID=your_google_client_id MAIL_USERNAME=your_email MAIL_PASSWORD=your_email_password -
Install new dependencies:
pip install -r requirements.txt
v2 -- Enterprise Edition
| Login Page | Student Dashboard |
|---|---|
![]() |
![]() |
| Create Ticket | Ticket Details |
|---|---|
![]() |
![]() |
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Python 3.10+
- MongoDB Account (or local instance)
- Git
git clone [https://github.com/codegallery-me/University-Help-Desk.git](https://github.com/codegallery-me/University-Help-Desk.git)
cd University-Help-Desk


