SRS - DrAlzahraniProjects/csusb_fall2024_cse6550_team2 GitHub Wiki

Software Requirements Specification (SRS)

for CSE Academic Advisor Chatbot


Prepared by

Group Name: csusb_fall2024_cse6550_team2

S.No Name Email GitHub Username
1. Gummalla, Jahnavi [email protected] Jahnavi24csusb

Instructor: - Dr. Nabeel Alzahrani
Course: CSE 6550: Software Engineering Concepts - Fall 2024


Contents


1. Introduction

This Software Requirements Specification (SRS) document outlines the objectives, functionalities, and technical requirements for the Academic Chatbot Advisor. Developed as part of the CSE6550 course (Fall 2024) at California State University, San Bernardino (CSUSB), the project aims to create a virtual assistant powered by Natural Language Processing (NLP). The system automates responses to academic queries, such as course selection, GPA calculation, and graduation requirements, reducing the workload on human advisors. The chatbot will be accessible via web and mobile platforms to provide students with round-the-clock academic assistance.

1.1 Document Purpose

The purpose of this document is to specify the requirements for the Academic Chatbot Advisor to ensure all stakeholders have a clear understanding of the functionalities and constraints involved in its development. It will serve as a guide for the design, implementation, and testing of the chatbot, ensuring that the final product aligns with the expectations of users and university standards.

1.2 Document Overview

This document is structured to provide a comprehensive overview of the software requirements, beginning with an introduction to the project, followed by a detailed overall description, specific requirements, and non-functional requirements. The aim is to facilitate communication among developers, project managers, and stakeholders throughout the development lifecycle.


2. Overall Description

The Academic Chatbot Advisor is designed to enhance the academic advisory process by automating routine queries. It integrates with university systems, such as student databases, to provide real-time, personalized guidance to students. This chatbot can offer suggestions on course selection, track academic progress, and calculate GPA based on current grades. Students can access the system through both web and mobile interfaces, allowing for seamless usage. The chatbot will be built using a scalable architecture, ensuring it can handle high traffic during peak academic periods, such as course registration, providing efficient and timely support to students.

2.1 Product Perspective

The Academic Chatbot Advisor is a web-based and mobile-accessible tool designed to enhance the academic advisory process. It will allow students to input their academic inquiries and receive immediate, reliable answers powered by an intelligent backend. By automating responses, the chatbot will enable human advisors to focus on more complex student needs, thereby improving the overall efficiency of academic advising at the university.

2.2 Product Functions

The chatbot offers several essential functions: it answers frequently asked questions regarding academic policies, calculates GPA in real-time, and provides personalized course recommendations based on academic records. The chatbot will interact with students using natural language, making it easy for users to engage with the system. Furthermore, the chatbot will continuously learn from interactions to improve its responses over time, providing an increasingly efficient academic support system.

2.3 User Classes and Characteristics

The primary users of this system include students, academic advisors, and administrators. Students are the main users who will interact with the chatbot to receive academic guidance and support. Advisors can use the system to review the chatbot's recommendations and performance, ensuring they align with university standards. Lastly, administrators will be responsible for the system's upkeep, including configuring the chatbot, ensuring its accuracy, and maintaining its integration with university databases. Each user class has a specific role in interacting with or maintaining the system, ensuring its continued efficiency and accuracy.

2.4 Assumptions and Dependencies

The system assumes that students will access it through modern web browsers or mobile devices with an internet connection. It depends on reliable integration with CSUSB’s internal student databases to provide accurate and up-to-date academic information. Furthermore, the system assumes that users will have a stable internet connection and that the university’s database systems will provide real-time data access. Successful operation of the chatbot is contingent upon the availability and responsiveness of these external systems.

2.5 Design and Implementation Constraints

The system design and implementation face several constraints that must be adhered to during development and deployment:

  1. Cross-Platform Compatibility: The system should work seamlessly across both web and mobile platforms, ensuring users have a consistent experience regardless of the device they use.
  2. Performance Requirements: The chatbot must handle high user loads during peak academic periods, such as course registration or exam times. It must scale to handle up to 150 concurrent users.
  3. Database Integration: The system must integrate with the university’s internal databases to provide real-time data access. Any downtime in the university’s databases could disrupt the chatbot's ability to deliver accurate responses.
  4. Technological Limitations: The project is bound by the tools and technologies included in the syllabus, as described in the following section.

2.6 Required Tools and Technologies

The development of the Academic Chatbot Advisor necessitates a range of essential tools and technologies, each critical to achieving the project objectives. These tools, as outlined in the syllabus, support various stages of the project from development to deployment, security, and performance optimization.

1. Visual Studio Code (IDE)
Visual Studio Code is the integrated development environment (IDE) used for writing, testing, and debugging code. It provides support for various programming languages and integrates seamlessly with GitHub, facilitating collaborative development.

2. Docker
Docker is used to containerize the development environment, ensuring consistency across different systems. The Docker image for the project includes key files, such as app.py, Dockerfile, README.md, and requirements.txt. This setup enables the chatbot to run reliably in isolated environments, mitigating compatibility issues.

3. Milvus
Milvus is used as a vector database to manage and index large amounts of vector data generated by the chatbot, which enhances the speed and efficiency of query responses.

4. Mamba
Mamba, a package management tool, is used to create and manage the virtual environment, ensuring efficient installation of Python libraries and dependencies required by the chatbot, all while maintaining compatibility across the project’s software dependencies.

5. Jupyter
Jupyter is employed for interactive development, making it especially useful for prototyping and testing. Its notebook environment allows developers to run code and document progress side-by-side, aiding in clarity for those contributing to the project’s early stages.

6. GitHub
GitHub serves as the version control system and central repository for all project elements. Team members use it to store code, manage versions, and collaborate effectively through repositories dedicated to each team.

7. Python
Python is the primary programming language used, chosen for its extensive library support in machine learning and NLP. It powers both backend and frontend development through libraries such as Flask and Streamlit.

8. Streamlit
Streamlit is used to develop the chatbot’s web-based user interface. Its framework allows for rapid creation of interactive applications, making it ideal for building the chatbot’s front end and enhancing the user experience.

9. LangChain
LangChain enables the chatbot’s language model processing, allowing the chatbot to comprehend and generate human-like responses through pre-trained language models.

10. LangChain with Milvus LangChain integrates seamlessly with Milvus, an open-source vector database, to enable efficient storage and retrieval of vector embeddings. This combination enhances AI applications by powering advanced semantic search and similarity-based tasks for natural language processing projects.

11. NeMo Curator
NVIDIA NeMo Curator is a tool within the NeMo framework that helps manage, curate, and preprocess datasets for training large language models. It supports data augmentation, filtering, and customization to streamline the preparation of high-quality datasets for AI applications.

12. Security Tools (DoS Protection, ZAP, and Burp Suite)
The project incorporates several security measures, including Denial of Service (DoS) protection. When a user exceeds 10 questions per minute, the chatbot restricts further requests for a few minutes to preserve resources. Security tools like Burp Suite Community Edition and Zed Attack Proxy (ZAP) are used to detect and fix vulnerabilities. Docker Scout is also employed to scan the Docker image, identifying potential security issues and ensuring robust protection for student data.


3. External Interface Requirements

The Academic Chatbot Advisor interacts with students through a user-friendly interface designed for web and mobile platforms. This section defines the user interface, the software and hardware interfaces, and the communication protocols used to ensure smooth and secure interactions between the chatbot, students, and the university’s databases.

3.1 User Interfaces

The user interface will be simple, intuitive, and accessible through web browsers and mobile devices. The interface will display input fields for students to enter their queries and a chat window where responses will be delivered in real-time. The design prioritizes usability and responsiveness, ensuring that students can easily navigate the system regardless of the device they use. The interface will include clear instructions and prompts to help guide students through various functionalities such as GPA calculation and course recommendations.

3.2 Software Interfaces

The chatbot requires integration with CSUSB’s student databases, which store critical information such as course enrollments, grades, and academic records. The system will communicate with the database via secure APIs to retrieve and process relevant academic data. Additionally, the backend system will use libraries such as Flask, Streamlit, and NLP libraries (e.g., Spacy) to interpret queries and return appropriate responses. The integration ensures that the chatbot’s responses are accurate and based on real-time data.

3.3 Hardware Interfaces

The system must operate on university-managed or cloud-based servers capable of handling multiple connections. The architecture must ensure that the chatbot can retrieve data efficiently from the university’s databases. Since the system is web-based, there are no specific hardware requirements for end users, allowing access from standard desktop and mobile devices.

3.4 Communications Interfaces

All communication between the chatbot and the backend servers will occur over secure HTTP/HTTPS protocols. The system will rely on SSL encryption to protect sensitive academic data in transit. Additionally, the chatbot must optimize request-response cycles to deliver timely responses to users. The efficient management of API calls between the chatbot and databases will be critical for maintaining real-time data accuracy.

3.5 Low Fidelity Diagram

3.6 Architecture Diagram

WhatsApp Image 2024-11-22 at 10 32 11 PM (1)


4. System Features

The system includes several essential features that enable it to deliver accurate and personalized academic guidance. These features include Query Processing, Feedback Mechanism, and Usage Statistics and Analytics.

4.1 Query Processing

Description and Priority
The Query Processing feature is a crucial component of the chatbot, allowing students to submit academic inquiries through a chat interface. This feature employs Natural Language Processing (NLP) techniques to interpret the user's intent and context. Its high priority is due to its central role in facilitating effective communication between students and the system.

Stimulus/Response Sequences
The student submits a question in the chat box, the chatbot processes the input using NLP algorithms, the system retrieves relevant information from the database, and the chatbot provides an appropriate response in the chat window.

Functional Requirements
The system shall accept text input from users, analyze queries and return responses within two to three seconds, and support multiple simultaneous queries from different users.

4.2 Feedback Mechanism

Description and Priority
The Feedback Mechanism allows students to rate the chatbot's responses using a thumbs-up/thumbs-down feature. This mechanism is essential for maintaining the quality of interactions and driving continuous improvement based on user feedback.

Stimulus/Response Sequences
After receiving a response, the student can select a thumbs-up or thumbs-down. The feedback is logged in the system for analysis and future enhancements.

Functional Requirements
The system shall provide options for users to give feedback on chatbot responses, store feedback for analysis and performance tracking, and utilize feedback to refine response accuracy and relevance.

4.3 Usage Statistics and Analytics

Description and Priority
The Usage Statistics and Analytics feature is designed to track various performance metrics of the chatbot. It captures data on user interactions, query volumes, and response times, which are critical for assessing the chatbot's effectiveness and identifying areas for improvement.

Stimulus/Response Sequences
The system records each user interaction in a log and aggregates this data for reporting and analysis.

Functional Requirements
The system shall log user interactions, including timestamps and query types, generate reports on user engagement and response times, and analyze usage patterns to inform future development.


5. Non-functional Requirements

Non-functional requirements define the operational attributes of the system, ensuring it meets quality standards for performance, security, usability, and availability.

5.1 Performance Requirements

The system shall be designed to respond to user queries within 2-3 seconds to ensure a smooth user experience. Additionally, it must support up to 150 concurrent users without noticeable degradation in performance, particularly during peak times such as registration periods.

5.2 Security Requirements

The system must comply with the Family Educational Rights and Privacy Act (FERPA) to safeguard student information. All data transactions between the chatbot and university databases shall be encrypted, ensuring both data in transit and at rest are secure. Furthermore, user authentication measures must be in place to restrict access to authorized individuals only.

5.3 Usability

The chatbot's interface should be intuitive, requiring minimal training for users to navigate effectively. It must adhere to best practices for accessibility, ensuring all students, including those with disabilities, can utilize the system. Clear error messages should guide users in case of incorrect input or system failures, enhancing the overall user experience.

5.4 Availability

The system must maintain an availability rate of 99.9%, particularly during critical academic periods. This requirement ensures that students can rely on the chatbot for assistance whenever needed. The system should include backup processes and regular maintenance to minimize downtime and enhance reliability.


Appendix A – Data Dictionary

Variable/Constant Description Possible States/Values Operations/Requirements
userQuery User's input question or issue for IT support Text input The chatbot retrieves the user’s query for processing.
chatbotResponseTime Time taken by chatbot to respond to user query Numeric (in seconds) Must be < 3 seconds (FR-1).
response Generated answer by the chatbot Text output Provides information or troubleshooting steps.
feedbackRating User’s feedback on the response ‘Like’, ‘Dislike’ Used to track user satisfaction (FR-4).
userEngagementMetrics Data tracking user interaction (e.g., clicks, inputs) Metrics data Tracks user engagement (FR-3).
report A statistical report generated by the system 10 different statistics (numeric, text) Required to generate for admin purposes (FR-5).
systemStatus Status of the chatbot system Enum: ‘Active’, ‘Idle’, ‘Error’ System status for monitoring and maintenance.
citationList List of sources/citations used to generate an answer Array of text links Cited for transparency and credibility (FR-2).
concurrentUsers Number of users interacting with the system simultaneously Numeric Must handle 100 concurrent users (Performance).
dataFetch Data retrieved from university’s IT database JSON data Fetches relevant data for responding to user queries.
DoSProtection Security measure to prevent Denial of Service attacks Boolean: ‘Enabled’, ‘Disabled’ Must be enabled for system security (Security).
userSessionID Unique ID associated with each user session Alphanumeric Used for session tracking and response personalization.
serverStatus Health status of the server Enum: ‘Running’, ‘Down’, ‘Maintenance’ Indicates server health for proper operation.
chatWindowState State of the chat window Enum: ‘Open’, ‘Closed’ Tracks whether the user is actively engaged in a chat session.
userLanguage Language preference for chatbot responses Enum: ‘English’, ‘Spanish’, ‘French’, etc. Provides localized responses based on user preference.

Appendix B – Meeting Hours and References

Every Monday and Friday from 12:00pm(PST) to 1:00pm(PST)

CSUSB CSE Website

IEEE SRS Standards Link

Relevant Academic Literature and Articles on NLP and Chatbots