Inspiration

One of out team members is a new RA (resident assistant) on Georgia Tech’s campus, and deals with maintenance complaints from her residents and other buildings almost on a daily basis. In her weekly staff meetings, her fellow RAs and Hall Director face the burden of being the middlemen for our residents when it comes to recurring maintenance issues, seeing first-hand how every other room in Nelson Shell has ant infestation and nearly eight residents have been living without a working toilet for over two weeks, but being left completely in the dark after a maintenance request is submitted, not knowing how long the wait would be for a remedy.

After gaining access to the admin portal for maintenance, she was shocked to see nearly hundreds of new maintenance requests submitted from on-campus GT students every day, and no way in the back-end to organize or prioritize any of these work orders. The current system, according to GT’s Residence Hall Association, relies on a number of people to sift through and manually delegate each form submission to each maintenance/housing department. In this process, a great number of requests get lost or go unaddressed for weeks on end. Many times, a bed-lofting request will be handled more quickly than a mold report, which is genuinely concerning to students’ health and well-being.

We, as students, have all faced difficulties dealing with maintenance reports, and ended up having to wait weeks for help. From finding cockroaches under laundry bags, to flooded bathrooms with every other flush, we’ve lost faith in the reliability of on-campus maintenance, and find it almost pointless to file work orders, especially for emergency situations. Not only is there no way for us to track or get an estimate about where our work order stands at a given time, but there is also no way to mark orders as high in priority, in comparison to others.

Because of these ongoing issues, we decided to create an AI platform that can automatically prioritize and delegate work orders and maintenance requests right after they are submitted. Our platform uses a smart algorithm to assess the urgency of each request and ensure that higher-priority tasks, such as health and safety concerns, are addressed first. By streamlining the process, it takes the burden off the middlemen and ensures that no requests are lost or delayed. Additionally, the platform gives administrators a clear, real-time view of where their building and maintenance orders stand, allowing them to better allocate resources and improve response times. This solution aims to restore trust in the campus maintenance system and improve the overall living conditions for residents.

What it does

Our project is a comprehensive end-to-end solution designed for effective priority management of query systems. At the front end, it captures user queries that combine categorical descriptors with free-text input, ensuring maximum convenience for users. Once a query is submitted, it is swiftly categorized by the department and processed through a trained text analysis model and an optimized machine learning algorithm. This system accurately identifies the issue type from the user’s complaint and assigns an appropriate priority or urgency level to the request.

Furthermore, all relevant data is efficiently relayed and stored in an SQL database, organized into both a general table and department-specific tables. This streamlined approach not only enhances the responsiveness of query handling but also empowers administrators with the tools they need to address issues promptly and effectively.

How we built it

Synthetic Data Generation with OpenAI GPT-3.5 API: Leveraged the OpenAI API, specifically the GPT-3.5-turbo model, to generate synthetic data that mimicked realistic maintenance requests in various categories (e.g., kitchen, electrical, pest control). This data was used to simulate how students might file maintenance requests, ensuring the system could handle a variety of inputs.

Text Vectorization and Machine Learning Model Optimization: Optimized the parameters of a text vectorizer and a Naive Bayes classifier to improve the classification of maintenance request descriptions. These models were tuned to maximize accuracy in predicting the priority and urgency of requests based on textual input. Final models were serialized and stored using Joblib for efficient reuse within the system.

Intelligent Request Routing Based on Classification Confidence: Based on the model's confidence in its identification and urgency classification, the system intelligently routes requests to different tables. When the model is fully certain of its classification, requests are sent directly to the general table, ensuring efficient processing and response. Conversely, if the model exhibits slight uncertainty in its classification, those requests are directed to a separate table for manual review by administrators. This dual-routing approach not only enhances the accuracy of issue handling but also allows for human oversight on less certain cases, ensuring that all requests are addressed appropriately and efficiently.

Web Application Development with ASP.NET and Flask: Initially developed the web application using ASP.NET Razor to create a multi-page structure with dynamic content rendering. The project was later migrated to the Flask framework for Python, ensuring greater flexibility and integration with Python-based machine learning models. The final web app includes: (1) A landing page to introduce the system. (2) A login and authentication system to differentiate between students and admins. (3) A maintenance request form for students to submit issues. (4) An admin dashboard to review and manage all submitted requests.

SQL Database Integration: Designed and implemented a SQL database to store all the user-submitted maintenance request data. The database includes a general table to track request details (issue_id, student_id, building_type, department, issue_type, certainty) and dynamically generated tables that help prioritize requests based on urgency and other factors.

Machine Learning Integration for Request Prioritization: Integrated Python-based machine learning models with the SQL database to generate additional tables for the prioritization of maintenance requests. These models were trained to assess the urgency of different requests and categorize them based on factors such as the nature of the issue and building location.

Data Visualization with Looker Studio: Exported maintenance request data via SQL queries into CSV format and built an interactive dashboard using Looker Studio (formerly Google Data Studio). This dashboard allows admins to easily view and analyze statistics about the maintenance requests, including the number of issues submitted, breakdown by category, and response times.

User Authentication with Auth0: Integrated Auth0 for secure user authentication, ensuring the app could differentiate between students submitting maintenance requests and administrators managing them. Authentication data was used to dynamically adjust user experiences, such as routing admins to the dashboard and allowing students to submit requests only after verifying their identity.

Challenges we ran into

Some of the main challenges we ran into involved:

Data Quality: Generating synthetic data that accurately mimics real student queries was challenging. Ensuring it was realistic enough to train our models required extensive testing and iteration.

Model Optimization: Tuning the parameters of our text vectorizer and Naive-Bayes classifier for optimal accuracy was a complex process, as we had to balance performance and processing time.

Integration Issues: Integrating the front-end with the back-end and ensuring smooth data flow between the Flask app and the SQL database posed some hurdles, especially during the final testing phase. Additionally, establishing a reliable connection with the SQL server was more complex than anticipated, requiring extensive debugging and adjustments.

TinyMCE Setup: Integrating the TinyMCE editor for enhanced user input proved challenging, as it required extra time for proper configuration and frequently disrupted our code, causing delays in our progress.

Interfacing SQL with Python: Ensuring seamless communication between our SQL database and Python models was a hurdle that needed careful handling.

Transitioning our nearly completed C# front-end, developed using ASP.NET Razor, to a Flask-based model: As we attempted to integrate the front-end with our Python backend and SQL database, we discovered that the C# framework was less compatible and necessitated much clunkier code. Recognizing the need for a cohesive architecture, we made the difficult decision to rewrite our UI in Flask. This transition required us to recreate almost all UI components to ensure a consistent and intuitive user experience while adapting to the new framework. This challenge tested our team's adaptability and reinforced the importance of selecting compatible technologies from the start, ultimately strengthening our commitment to delivering a robust solution.

Accomplishments that we're proud of

Comprehensive Solution: We successfully developed an end-to-end system that not only collects user queries but also processes and prioritizes them effectively, streamlining the maintenance request process.

User-Friendly Interface: Our multi-page web app design features a clear navigation structure, allowing users to easily submit requests and for admins to manage those requests efficiently.

Model Accuracy: After multiple iterations, we achieved an accuracy rate of about 97.1% with our machine learning model, effectively categorizing and prioritizing certain requests that students have the ability to make.

User Authentication: Implementing Auth0 to track user logins and emails added a robust layer of security and user management to our application.

What we learned

Synthetic Data Generation: We learned the intricacies of generating synthetic data and its importance in training machine learning models, especially when real-world data is limited or unavailable.

Text Processing Techniques: Our experience with text vectorization and classification deepened our understanding of natural language processing and its application in real-world scenarios.

System and Language Integration: We gained valuable insights into the challenges of integrating different components of a web application, emphasizing the need for thorough testing at each stage.

Flask Framework: Gained hands-on experience with Flask, enhancing our understanding of web development and backend integration.

Language Integration: Learned how to effectively interface Python with SQL, allowing us to manipulate and retrieve data dynamically.

Team Collaboration: Improved our teamwork and project management skills, learning to keep each other accountable and on track to meet our timeline.

User-Centric Design: Understood the importance of designing with the user in mind, ensuring the application meets the needs of both residents and administrators.

What's next for Priorit.AI

Although inspired by the struggles that Georgia Tech students face with the maintenance system for housing, Priorit.AI can be expanded to a wide range of applications. At its core, the software can be adapted to any form of a helpdesk, making request processing easier and more efficient for both front end users and those maintaining a backlog of incoming requests.

Scalability: Our solution can be scaled to accommodate larger user bases and additional features, such as AI-driven response suggestions or predictive analytics for maintenance trends.

Cross-Departmental Applications: This framework could be adapted for other departments (e.g., IT support, student services) to streamline their query handling processes, making it versatile across various contexts.

Enhanced User Engagement: We see potential in incorporating user feedback mechanisms to continually improve the system and increase user satisfaction, fostering a more interactive and responsive platform.

Broader Applications: While inspired by Georgia Tech’s housing issues, Priorit.AI can be adapted to various help desk scenarios, enhancing request management across different sectors, such as IT support or customer service.

Feature Expansion: Potential features include automated response suggestions, analytics dashboards for maintenance trends, and a feedback loop for continuous improvement.

Integration with Other Systems: There’s potential to integrate Priorit.AI with existing management systems, creating a seamless user experience and improving overall efficiency.

Share this project:

Updates