SRS - JUCSE49-Mavericks/Smart-Class-Routine-Management-System GitHub Wiki

JU Logo

Jahangirnagar University

SMART CLASS ROUTINE MANAGEMENT SYSTEM


Submitted To:

DR. MD. MUSFIQUE ANWAR
Professor
Department of Computer Science and Engineering
Jahangirnagar University

DR. MD. HUMAYUN KABIR
Professor
Department of Computer Science and Engineering
Jahangirnagar University


Submitted By:

Full Name Roll No.
SADIA HOSSAIN 347
UMMA SUMAIYA JAHAN 351
JANNATI TAJRIMIN MITU 358
TRISHA SARKAR 359
AKILA NIPO 368
RUBAYED ALL ISLAM 370

Department of Computer Science and Engineering
Jahangirnagar University
Savar, Dhaka, Bangladesh


Table Of Contents:


1. Introduction

Recognizing the significance of efficient routine management, our Smart Class Routine Management System aims to revolutionize the way schedules are managed. It focuses on a dynamic routine management system that automates the scheduling process. From educational institutions to corporate environments, creating schedules and managing time is crucial. Constructing a department's class timetable demands substantial effort and precision, as the arrangement must align with the preferences of all users. Traditionally, this process involves manual efforts and consumes a significant amount of time. The laborious and challenging task of manually creating class timetables, which involves considerations such as teacher allocations, course timings, and avoiding conflicts, becomes significantly easier.

1.1 Purpose

The primary purpose of developing the Class Routine Management System is to streamline and enhance the process of creating, managing, and communicating class schedules within universities. The system aims to offer a dynamic and automated approach to routine generation, ensuring optimal resource utilization and minimizing conflicts.

1.2 Intended Audience

The target audience for this SRS includes a range of stakeholders involved in different aspects of the software development process and system utilization:

  1. Developers: Responsible for coding and implementing the system's features and functionalities.
  2. Testers: Professionals verifying the system's behavior against the specified requirements.
  3. Project Managers: Individuals overseeing the project's planning and execution.
  4. System Administrators: Individuals responsible for maintaining and managing the system's database and overall functionality.
  5. Teachers: Educational professionals who will interact with the system for communication, scheduling, and management.
  6. Students: Users who will access the system to view class schedules, academic calendar, and receive class-related notifications.
  7. Staff: Users who can view the academic calendar and class schedules.
  8. QA/QC Engineers: Responsible for ensuring product quality.
  9. Business Analysts (BA): Responsible for understanding and defining business requirements.
  10. Stakeholders:
    • Leadership Teams: Assess the system's alignment with strategic objectives.
    • Sales and Marketing: Promote the system's benefits and features.
  11. Investors: Evaluate the system's potential for market success and financial returns.

1.3 Intended Use

The intended audience comprises various roles, each utilizing the system to enhance their specific responsibilities and contribute to the institution's effective functioning:

  1. Developers: Use the SRS to understand functional and non-functional requirements and maintain necessary quality standards.
  2. Testers: Understand expected system behavior, develop test cases, and ensure features are working as intended.
  3. Project Managers: Oversee development, align project goals, and ensure the final product meets defined requirements.
  4. System Administrators: Make informed decisions regarding system adoption, customization, and workflow integration.
  5. Teachers: Manage class schedules and communication with students, enhancing teaching efficiency.
  6. Students: Access class schedules and notifications, maximizing academic success.
  7. Staff: Support institutional operations by coordinating with faculty through the system.
  8. QA/QC Engineers: Create test plans and validate functionality to meet required specifications.
  9. Business Analysts (BA): Analyze user needs and refine system requirements to align with strategic goals.
  10. Stakeholders:
    • Leadership Teams: Assess the system's alignment with institutional objectives.
    • Sales and Marketing: Market and promote the system effectively.
  11. Investors: Evaluate the system's viability and potential market impact for investment decisions.

1.4 Product Scope

The Class Routine Management System is a comprehensive software solution designed to make scheduling and managing class routines within universities easier. This system encompasses a wide range of features, including user registration, personalized dashboards, notifications, and rescheduling requests.

Key Features:

  1. Eliminate manual scheduling efforts, reducing time and resources for routine creation and adjustments.
  2. Send notifications to each type of user, ensuring they receive relevant information.
  3. Ensure efficient allocation of teachers, classrooms, and courses for a well-organized, conflict-free routine.

Objectives:

  1. Develop a smart routine management system that automates scheduling based on provided data.
  2. Provide a user-friendly interface accessible to teachers, students, staff, exam committees, and administrators.
  3. Facilitate timely notifications for class schedules, changes, and updates.
  4. Enable teachers to confirm, cancel, and request rescheduling of classes.
  5. Provide administrators with tools to review and resolve scheduling conflicts.
  6. Implement secure user registration, login, and logout functionalities.
  7. Allow modifications to teacher, student, staff, and department information for accurate record-keeping.
  8. Provide access to the syllabus and academic calendar.
  9. Generate class routines for each semester using an algorithm, integrating the university's academic calendar.
  10. Allow exam committee representatives to monitor class progress, approve cancellations, and rescheduling requests for their sessions.

2.OVERALL DESCRIPTION

2.1.User Classes and Characteristics

In this academic scheduling system, user classes are designed to meet the specific roles and needs of teachers, students, superusers, exam committee members, and staff. Each class has distinct responsibilities and interactions with the system.

2.1.1.Superusers

Characteristics:

  • Generate Routine: Superusers generate class schedules for departments, considering teacher preferences, time slots, and room availability.
  • Manage Room Assignments: Superusers handle room assignments, ensuring that rooms are appropriately allocated for theory and lab classes.
  • Review and Approve Requests: Superusers review and approve requests for class rescheduling and other administrative tasks.
  • Maintain System Integrity: Superusers oversee system operations and ensure the overall functionality and accuracy of the scheduling process.

2.1.2.Teachers

Characteristics:

  • Access and Manage Courses: Teachers view and manage the courses they are assigned to, including updating course details and accessing the syllabus.
  • View and Filter Syllabus: Teachers can view and filter the syllabus for their courses, selecting specific portions they want to review or display.
  • Download and Print: Teachers can download or print the syllabus and other relevant documents for their records.
  • Update Profile: Teachers maintain their profiles, ensuring that their personal and professional information is current.

2.1.3.Students

Characteristics:

  • View Class Routine: Students access their class schedules and receive notifications of any changes or updates to their routine.
  • Access and View Syllabus: Students view the syllabus for their courses, including learning objectives, chapters, and other relevant details based on their academic year.
  • Download Syllabus: Students have the option to download the syllabus for their entire academic year or specific courses as a PDF for future reference.
  • Manage Profile: Students keep their profiles updated with accurate information, including contact details and academic status.

2.1.4.Exam Committee Members

Characteristics:

  • Schedule Exams: Exam committee members schedule exams for various courses, ensuring alignment with the academic calendar and available resources.
  • Manage Exam Information: They handle and update exam details, including dates, times, and venues.
  • Review Requests: Committee members review requests related to exam schedules and adjustments.
  • Coordinate with Teachers: They communicate with teachers to finalize exam arrangements and ensure smooth execution.

2.1.5.Staff

Characteristics:

  • Support Routine Generation: Staff assist with the routine generation process by providing necessary information and handling administrative tasks.
  • Update Information: They manage and update the data related to rooms, schedules, and other logistical details.
  • Assist Users: Staff provide support to teachers, students, and superusers, addressing any issues or queries related to the scheduling system.
  • Monitor System Operations: Staff help monitor system performance and ensure that all features are functioning correctly.

2.2.User Needs

The Class Routine Management System serves distinct user classes, each with specific characteristics and roles within the universities. These user classes encompass a wide range of responsibilities, from routine management to decision-making.

2.2.1.Teachers:

  • Needs: Confirm, cancel, and reschedule previously scheduled classes. View academic calendar and syllabus. Download syllabus as a PDF file.

2.2.2.Students:

  • Needs: Receive confirmed class schedules, including class timings for the next day. View academic calendar and syllabus.

2.2.3.Staff:

  • Needs: Receive confirmed class schedules, including timings for the next day, for the classrooms they are responsible for.

2.2.4.Exam Committee:

  • Needs: Real-time course progress monitoring. Schedule makeup classes if course progress is unsatisfactory. Declare exam dates.

2.2.5.System Admins:

  • Needs: Upload teacher, student, department, session, and exam year information. Upload syllabus. Generate class routine and integrate it with the university's academic calendar to generate class schedules for one semester. Update all system information.

3.Operating Environment

3.1.Hardware Platform

  • Desktops: Intel Core i5 processor or equivalent, 8GB RAM, 256GB SSD or higher.
  • Laptops: Intel Core i3 processor or equivalent, 4GB RAM, 128GB SSD or higher.
  • Mobile Devices: iOS devices (iPhone 6S and above), Android devices (Android 8.0 and above).

3.2.Operating System and Versions

  • Windows: Windows 10 (64-bit), Windows 11 (64-bit).
  • macOS: macOS Catalina (10.15) and above.
  • Linux: Ubuntu 20.04 LTS and above, Fedora 33 and above.
  • Mobile: iOS 13 and above, Android 9.0 and above.

3.3.Software Components and Applications

  • Web Browsers: Google Chrome, Mozilla Firefox, Microsoft Edge, Safari (latest stable versions).

3.4.Database Compatibility

  • Databases: MySQL (version 8.0)

3.5.Interoperability

  • Standards: RESTful APIs and JSON data interchange standards.

3.6.Network Requirements

  • Connection: Stable internet with 5 Mbps minimum bandwidth.
  • Supported: Wired (Ethernet) and wireless (Wi-Fi).

3.7.Security Considerations

  • Encryption: TLS encryption (SSL certificates) for secure data transmission.
  • Compliance: Adheres to industry data security standards.

4.Constraints

4.1 Technical Constraints

  • System Scalability: The system needs to handle up to 500 simultaneous active users during peak usage times.

4.2 Performance Constraints

  • Routines should be generated within 2 seconds after uploading relevant files.
  • The interface must load within 2-3 seconds, especially for data-heavy screens like schedule views and syllabus files.

4.3 Time Constraints

  • Real-Time Updates: Schedule changes must be reflected in the system within 2-3 seconds of modification.

  • Development Phases:

    • Feature Implementation Deadlines: Core features such as routine generation, file uploads, and academic data management must be completed within 2-3 months.
    • Testing and Deployment: A testing window of 3-5 weeks is needed to ensure that routines are generated correctly without overlaps or scheduling conflicts, directly impacting launch readiness.

4.4 Budget Constraints

  • Allocation of resources for development (proficiency in Node.js, SQL, ReactJS, and database optimization techniques), cloud hosting, and maintenance efforts.

4.5 Regulatory and Compliance Constraints

  • Data Protection Requirements:
    • Data Privacy Regulations: The system must comply with data protection laws to ensure the secure handling of personal information.
    • Security Standards: The system must comply with security standards to protect against data breaches, unauthorized access, and other cybersecurity threats.

4.6 Resource Constraints

  • Server Capacity: The system requires dedicated servers with at least 8 GB RAM (for system administrators) to handle routine generation algorithms and multiple concurrent database transactions efficiently.

4.7 User Experience Constraints

  • Training and Onboarding: A minimum of 5 hours of training per user role (Super User, Teacher) is required to ensure effective use of the system.

5. Assumptions

5.1. The system may be unavailable if the internet server is down.

5.2. Users, including teachers, students, staff, and Class Representatives, are assumed to have a basic level of digital literacy and familiarity with web-based applications, allowing them to navigate the system's features and functionalities.

5.3. It is assumed that system administrators and relevant personnel will update the system's database promptly to reflect changes in course schedules, teacher assignments, and classroom availability. Delays in data updates may lead to inconsistencies in the generated routines.

5.4. Users are assumed to actively engage with the system, regularly checking notifications, accessing dashboards, etc. Low user engagement may limit the system's effectiveness in achieving its intended goals.

5.5. We assume that the system has enough memory to handle large files.

5.6. We assume that if a teacher joins or leaves for higher studies in the middle of a course, the system should update the course-related information as soon as possible.

5.7. We assume that there are enough classrooms in the departments to manage any scheduling conflicts in the routine.


6. Risk Definitions

6.1 Technical Risks

Challenges related to system scalability may lead to performance degradation, especially during peak times.

6.2 Data Security Risks

Handling sensitive data like teacher and student information poses risks related to data breaches and unauthorized access.

6.3 Regulatory Risks

Non-compliance with data privacy laws and security standards can result in legal consequences and damage the institution's reputation.

6.4 Performance Risks

Delays in routine generation or slow interface response times could impact user experience, leading to dissatisfaction among super users and teachers.

6.5 Time Risks

Tight development schedules with set deadlines for core features and testing phases could lead to rushed implementations, increasing the chances of bugs and system failures.

6.6 Resource Risks

Limited availability of skilled developers and infrastructure resources could constrain the project’s ability to meet performance and scalability requirements.

Understanding these risks is essential to implementing mitigation strategies, such as rigorous testing, regular backups, and ensuring compliance with security standards to safeguard the project’s success.


7. Functional Requirements

The functional requirements of the project include:

7.1. User Login

  • This feature should provide a secure login mechanism for users to access their accounts.

7.2. Personalized Dashboard

  • The system should provide a personalized dashboard for each user (teachers, students, staff, and Superuser) upon login.

7.3. Generating Routine

  • The system should allow the superuser to generate a class routine for a department. This routine must take into account teacher preferences, time slots, and room availability. It should allow flexible scheduling and provide options for both theory and lab classes, considering the number of classes per week and the specific room types required.

7.4. Generating Makeup Routine

  • This feature should generate a makeup class routine (out of the normal class schedule) based on the number of classes (if the number of classes is below the threshold) for each particular course.

7.5. View Academic Calendar

  • This feature provides different view formats (by week, month, or only vacations, etc.) of the academic calendar.

7.6. Assign Course Teacher

  • This feature enables a SuperUser (SU) to assign teachers to courses for a specific exam year within a particular session using either a CSV file upload or a manual interface. The SU can upload a CSV file containing course and teacher assignments. The system will validate the file for correct format and data consistency, processing it to update course assignments accordingly. Alternatively, the SU can manually assign teachers through an interface. By selecting a course and pressing the "Assign Teacher" button, a list of available teachers is displayed. The SU can then select one or more teachers and save the assignment, updating the course records. Additionally, the SU can update existing teacher assignments for each course, adding or removing teachers as needed. The system will validate all assignments and notify teachers about their new or updated assignments, while the SU receives confirmation of the changes.

7.7. Schedule Class

  • This feature allows teachers to manage their class schedules by confirming, canceling, or requesting rescheduling of classes. Teachers can view their current schedule and choose to confirm or cancel a class with a single action, providing a reason for cancellation if needed. If rescheduling is required, teachers can propose new time slots from available options. These rescheduling requests are sent for approval to the Exam Committee of the exam year of that particular session, and teachers are notified of the status of their requests. The system will update the class schedule accordingly and handle any scheduling conflicts that arise, ensuring that all affected students and stakeholders are informed of the changes.

7.8. Filter Syllabus

  • Teachers and students should be able to filter and view the syllabus for one or more courses based on the specific courses they teach or their academic year.

7.9. Upload File

  • This feature should allow uploading different formats of files (CSV, XML, PDF, etc.) for storing information about teachers, students, staff, and system administrators.

7.10. Request for Rescheduling Class Timing

  • The system should provide a feature that allows teachers to submit a request for rescheduling a class, providing the reason and preferred alternative timings.

7.11. View Class Routine

  • This feature enables students, teachers, and staff to get notified about the dynamic class routine.

7.12. Approve Rescheduling Class

  • The system should notify the admin whenever a reschedule request is received. The admin should be able to access the details of the request, review the reason for rescheduling, and make an informed decision.

7.13. View Class Representative Information

  • This feature includes displaying detailed information about the class representative such as name, photo, contact details, and assigned batch. This feature should allow users to easily access the representative's information as needed.

7.14. Update Class Representative Information

  • This system allows the administrator to modify the details of the class representative such as name, contact information, and assigned batch. This feature should ensure that any changes are saved and reflected accurately in the system.

8. Non-Functional Requirements

1. Performance Requirements

  • Response Time: The system should respond to user actions (e.g., routine generation, class scheduling) within 2 seconds under normal conditions.
  • Scalability: The system must handle up to 10,000 concurrent users without degradation in performance.
  • Throughput: The system should be able to process and update class schedules and room availability for up to 1,000 classes per hour.
  • Batch Processing: Bulk data uploads (CSV or XML files) for syllabus or course assignment should be processed within 5 minutes for files containing up to 10,000 records.

2. Availability and Reliability

  • System Uptime: The system should be available 99.9% of the time (maximum downtime of 8.76 hours per year).
  • Failover Support: In case of hardware failure, the system should automatically switch to a backup server within 1 minute.
  • Data Consistency: All class schedules, teacher assignments, and room allocations should be consistent and correctly reflected across all system components without delay.

3. Security Requirements

  • User Authentication: The system should support role-based authentication (teachers, students, staff, super users) using secure password storage (e.g., hashed passwords with salt).
  • Data Encryption: Sensitive data, such as user credentials and personal information, must be encrypted during transmission using TLS (SSL certificates).
  • Access Control: Different levels of access should be provided based on user roles (e.g., only super users can assign teachers, and only teachers can confirm or cancel classes).
  • Audit Logging: All critical actions (class cancellation, routine updates, teacher assignments) should be logged for auditing purposes, with timestamps and user information.

4. Usability Requirements

  • User Interface: The system should provide a clear, intuitive, and responsive UI, accessible on both desktop and mobile devices.
  • Mobile Compatibility: The interface must be fully functional on mobile browsers (Chrome, Safari, Firefox, Edge) and scale appropriately for various screen sizes.
  • Accessibility: The system should comply with accessibility standards (e.g., WCAG 2.1) to ensure it is usable by individuals with disabilities.

5. Maintainability and Modularity

  • Code Maintainability: The system’s codebase should follow clean coding principles and be modular, ensuring easy updates and bug fixes.
  • Documentation: The system should be well-documented, including API documentation, user manuals, and developer guidelines.
  • Versioning: The system should use version control (e.g., Git) to track changes and updates to the codebase, supporting rollback in case of issues.

6. Scalability and Extensibility

  • Horizontal Scalability: The system must be able to handle increased load by adding more servers or cloud instances.
  • Modularity for New Features: The system should be designed in a way that new features (e.g., support for new types of classes or rooms) can be added with minimal changes to the core structure.

7. Data Backup and Recovery

  • Automatic Backups: Data should be backed up automatically on a daily basis to prevent data loss in the event of a failure.
  • Recovery Time Objective (RTO): In case of system failure, the system should recover and be fully functional within 2 hours.
  • Recovery Point Objective (RPO): The maximum acceptable data loss should be limited to 15 minutes.

8. Interoperability

  • API Support: The system should provide RESTful APIs for integrating with other systems, such as university portals or student information systems (SIS).
  • Data Formats: The system should support standard data formats (e.g., JSON, CSV, XML) for data import/export.

9. Compliance Requirements

  • Data Privacy: The system must comply with data protection laws (e.g., GDPR, CCPA), ensuring that personal data is collected, stored, and processed securely.
  • Legal Compliance: The system should adhere to any educational standards and regulations required by institutions or government bodies.

10. Logging and Monitoring

  • System Logs: The system should log all critical events, including user logins, class schedule updates, and room assignments.
  • Monitoring: Real-time monitoring should be in place for tracking system performance, user activity, and potential security threats.

11. Capacity and Storage

  • Storage Requirements: The system must be capable of storing data for multiple academic years, including historical class schedules, with no performance degradation.

12. Disaster Recovery

  • Disaster Recovery Plan: A comprehensive disaster recovery plan should be in place to restore services within a short time frame in case of catastrophic failure (e.g., fire, flood, cyberattack).
  • Offsite Backups: Regular backups should be stored in an offsite location to ensure data recovery in case of localized damage.

9. User Story

9.1 User Story: SuperUser Registration:

As an administrator, I want to register a new SuperUser by accessing a specific URL and using a generated registration link, so that a new SuperUser account can be created with proper credentials and a password.

Confirmation:

Success -

  1. Accessing SuperUser Registration URL:

    • The administrator accesses a specific URL set by the authority that includes a "Generate SuperUser" button.
  2. Generating SuperUser Registration Link:

    • Upon clicking the "Generate SuperUser" button, the system sends an email containing a hashed link to the university's administrative email address.
  3. Accessing the Registration Page:

    • The administrator receives the email and clicks on the hashed link, which redirects them to the SuperUser registration page.
  4. Creating SuperUser Account:

    • On the registration page, the administrator fills in the SuperUser's profile details, including credentials and password.
    • The administrator clicks "Save" to create the SuperUser account.
  5. Confirmation of Account Creation:

    • If the SuperUser account is successfully created, the system displays a confirmation message: "SuperUser account has been successfully created."
  6. Sending Password to New SuperUser:

    • An email containing the SuperUser's password is sent to the newly created SuperUser's email address.

Failure -

  1. Error Accessing Registration URL:

    • Message: "Unable to access the registration URL. Please ensure the URL is correct and try again."
    • Reason: The URL might be incorrect or the registration page may be down.
  2. Error Generating Registration Link:

    • Message: "Failed to generate the SuperUser registration link. Please try again later or contact support."
    • Reason: System issues or errors in the link generation process.
  3. Expired Registration Link:

    • Message: "The registration link has expired. Please request a new registration link."
    • Reason: The registration link has surpassed its validity period and can no longer be used.
  4. Invalid Registration Link:

    • Message: "The registration link is invalid. Please check the link or contact support."
    • Reason: The link may have been tampered with or was not properly generated.
  5. Error Accessing Registration Page:

    • Message: "Unable to access the registration page. Please check the link or contact support."
    • Reason: The registration page might be unavailable or there could be a problem with the URL.
  6. Error Creating SuperUser Account:

    • Message: "Failed to create the SuperUser account. Please check the details and try again."
    • Reason: Issues with the account creation process, such as invalid details or system errors.
  7. Unsuccessful Email Sending:

    • Message: "Failed to send the SuperUser account password. Please try again later or contact support."
    • Reason: Email service issues or errors in sending the password email.

9.2 User Story: User Login:

As a user, I want to log in to the Smart Class Routine Management System (SCRMS) so that I can access the system using my credentials.


Confirmation:

Success -

  1. If the user had logged out in the last session, redirect them to the login page.
  2. If the user didn't log out in the previous session, but the session duration is over, redirect them to the login page.
  3. On the login page:
    • Check if the user wants to remember the session and save their credentials for a limited time.
    • If the user logs in with valid credentials, redirect them based on the user type:
      • SuperUser: Redirect to the SuperUser dashboard.
      • Teacher: Redirect to the Teacher dashboard.
      • Student: Redirect to the Student dashboard.
      • Staff: Redirect to the Staff dashboard.
    • If the session is still active and valid, redirect them directly to the Home page based on their role.
    • If login is from an unknown device or location:
      1. Send a confirmation email and SMS to the user's registered email and contact number for verification.
      2. Upon successful verification, allow access to the system.
    • If the user forgets their password:
      1. Send an email containing the reset password link. By clicking on the reset password link from user can go to reset password page and reset the password.
      2. Send an OTP to the user’s registered contact number.
      3. Send an email requiring the user to enter the OTP code.
      4. Upon validating the OTP, allow the user to reset their password.
      5. After resetting, update the password in the database.
  4. After login:
    • Show a welcome message to the user based on their role (SuperUser, Teacher, Student, Staff).
    • Redirect to the appropriate dashboard with personalized data.

Failure -

  1. If the user enters invalid credentials:
    • Show an error message indicating incorrect email or password.
    • Allow retrying up to three times before locking the account for a limited time (e.g., 10 minutes).
  2. If the user tries to log in from an unverified device or location and verification fails:
    • Deny access until the device/location is verified.
    • Prompt the user to contact support if verification cannot be completed.
  3. If the user tries to log in from a suspended account:
    • Display an error message: "Your account has been suspended. Please contact the administrator."
    • Do not allow login attempts from suspended users.
  4. If unusual activity is detected (e.g., multiple failed login attempts or logins from multiple locations):
    • Lock the account and send a warning email to the user.
    • Require manual verification from the admin to unlock the account.
  5. If the user’s session has expired and they attempt to continue without re-logging:
    • Redirect to the login page and show a message indicating session expiration.
  6. If the user doesn’t have the required role to access a specific section (e.g., a student trying to access the SuperUser dashboard):
    • Display an error message: "You do not have permission to access this section."
    • Redirect them to their appropriate dashboard based on role.

9.3 User Story: Forget Password:

As a user, I want to reset my password if I forget it, so that I can regain access to the system. I should have the option to choose how I want to reset my password: via email reset link or OTP sent to email or phone.

Confirmation:

Success -

  1. Accessing the Forget Password Page: The user clicks on the "Forget Password?" button from the login page, which redirects them to a page where they can choose the method for resetting their password.

  2. Choosing Reset Method:

    • Reset via Email Link:

      • The user selects the option to receive a reset password link via email.
      • The user enters their registered email address and clicks "Send Reset Password Link."
      • If the email is valid, the system sends a password reset email with a unique, time-sensitive link.
      • If the email is invalid, the user sees: "The email is invalid or unrecognized email ID."
    • Reset via OTP:

      • The user selects the option to receive an OTP via email or phone.
      • The user enters their registered email address or phone number and clicks "Send OTP."
      • If the email/phone is valid, the system sends an OTP to the specified contact method.
      • If the email/phone is invalid, the user sees: "The email or phone number is invalid or unrecognized."
  3. Using Reset Link:

    • Upon receiving the reset link email, the user clicks the link, which redirects them to the reset password page.
    • The user enters and confirms the new password.
    • If the passwords match, the system updates the password and displays: "Your password has been successfully reset."
    • The user is then redirected to the login page.
    • If the passwords do not match, the user sees: "Passwords do not match. Please try again."
  4. Using OTP:

    • The user receives an OTP and enters it on the reset password page.
    • If the OTP is valid and not expired, the user is allowed to enter and confirm the new password.
    • If the OTP is invalid or expired, the user sees: "Invalid or expired OTP. Please request a new OTP."
  5. Password Update:

    • After successfully resetting the password via email link or OTP, the user is redirected to the login page.
    • The user logs in with the new password and gains access to the system.

Failure -

  1. Invalid Email or Phone Entry:

    • Message: "The email or phone number is invalid or unrecognized."
  2. Expired Reset Link:

    • Message: "The reset link has expired. Please request a new password reset link."
  3. Mismatched Passwords:

    • Message: "Passwords do not match. Please try again."
  4. Attempt to Use an Expired OTP:

    • Message: "The OTP has expired. Please request a new OTP."
  5. Invalid OTP:

    • Message: "Invalid OTP. Please try again."
  6. Unsuccessful Password Save:

    • Message: "Failed to save your new password. Please try again."
  7. Reset Link Already Used:

    • Message: "This reset link has already been used. Please request a new link."
  8. Multiple Failed Attempts:

    • Message: "You have reached the maximum number of attempts. Please try again later or contact support."
  9. Forgot Password Without Valid Contact:

    • Message: "Your email or phone number is not registered. Please check and try again."

SuperUser Password Reset:

As a SuperUser, I want to reset the password for any user account (Teacher, Student, Staff) directly, so that I can manage user accounts effectively.

Success -

  1. Accessing User Management:

    • The SuperUser navigates to the user management interface and selects the user account (Teacher, Student, Staff) for which they want to reset the password.
  2. Resetting Password:

    • The SuperUser chooses to reset the password for the selected user.
    • The system provides an option to generate a new temporary password or reset via email/OTP.
    • The SuperUser can update the password directly or initiate a password reset process.
    • A confirmation message is displayed: "Password has been successfully reset for the selected user."

Failure -

  1. Invalid User Account:

    • Message: "The selected user account is invalid or does not exist."
  2. Unsuccessful Password Update:

    • Message: "Failed to reset the password. Please try again."
  3. Reset Process Failure:

    • Message: "The password reset process failed. Please ensure all details are correct and try again."
  4. Access Denied:

    • Message: "You do not have permission to reset the password for this user account."

9.4 User Story: Generate Routine

As a superuser, I want to generate a routine for a department so that the department’s classes can be scheduled efficiently, accounting for teacher preferences, available time slots, and room availability.

Confirmation:

Success -

  1. Retrieving a Department:

    • The user retrieves a department from a dropdown menu listing all available departments.
  2. Defining the Number of Slots:

    • The user inputs the number of daily class slots (e.g., 4 or 5) for the selected department.
  3. Defining Slot Duration:

    • The user selects the duration of each class slot for that department from a number of available options.
  4. Retrieving Start and End Time of the Day:

    • The user specifies the start and end times for the class day of that department (e.g., 9 AM to 5 PM).
  5. Defining the Duration and Time of Lunch Break:

    • The user selects the duration and the specific time when the lunch break will occur, based on the already defined class slots and duration.
  6. Specifying the Class Counts per Week:

    • The system retrieves the class count data for each course from a file stored in the database. The file contains information on how many classes each course in the department will have per week (e.g., theory classes twice a week, lab classes once a week).
  7. Defining the Duration of Specific Classes through Files:

    • Super users will upload a file that specifies the duration for each course. The file should include details such as the course name and the required duration in class slots or total minutes (e.g., a lab class that takes up two theory slots). The super user specifies the number of regular slots required for that course.
  8. Retrieving Number of ‘Regular Classrooms’ Available in the Department:

    • The number of regular classrooms available in the department is specified via file upload and stored in the database.
  9. Retrieving Specialized Classroom Categories and Keeping their Counts:

    • The system retrieves the categories of specialized classrooms available in the department (e.g., ‘Circuit Lab’, ‘Computer Lab’).
      • For each category, an option appears for retrieving the name of that category and specifying the number of rooms available in the department for that category.
      • (e.g., In Dept. of CSE, Jahangirnagar University, there are 2 categories of dedicated rooms: Computer Lab (3 rooms), Circuit Lab (1 room))
  10. Specifying Courses according to Dedicated Rooms:

    • The system retrieves the course-room specifications (type of room needed for each course) from the database.
      • The superuser can also make real-time modifications for the type of room needed for each course by choosing between ‘regular’ and ‘specialized’ rooms. Specialized rooms are further classified according to the available specialized rooms in the department, such as circuit labs for circuit classes and computer labs for programming or networking courses.
  11. Generating the Routine:

    • The user clicks "Generate Routine." The system processes all the inputs, creates the class schedule, and displays it for review.

Failure -

  1. Department Retrieval Failure:

    • Message: "Department retrieval failed. Please try again."
  2. Number of Slots Not Defined:

    • Message: "Number of class slots is missing. Please define the number of slots to proceed."
  3. Slot Duration and Break Time Not Defined:

    • Message: "Class duration or break time not specified. Please provide the duration for each slot and the break time."
  4. Start and End Time Not Specified:

    • Message: "Start and end times of the day are missing. Please set the working hours to proceed."
  5. Lunch Break Not Scheduled:

    • Message: "Lunch break time not provided. Please specify when the break will occur."
  6. Class Count Not Specified for Courses:

    • Message: "Unable to retrieve class counts for courses from the database. Please ensure the data is correctly stored in the database."
  7. Class Duration for Specific Courses Not Defined:

    • Message: "Combined slot duration for a specific course is not provided. Please ensure the data is correctly stored in the database."
  8. Regular Classroom Count Not Retrieved:

    • Message: "Unable to retrieve the number of regular classrooms available in the department from the database."
  9. Specialized Classroom Category Not Retrieved:

    • Message: "Unable to retrieve the category of specialized classrooms from the database. Please ensure the data is correctly stored."
  10. Room Type Not Specified for Courses:

    • Message: "Unable to retrieve course-room specifications from the database. Please ensure the data is correctly stored or updated in the database."
  11. Teacher Preferences Not Recorded:

    • Message: "Unable to retrieve teacher preferences for time slots or days from the database. Please ensure the data is correctly stored."
  12. Routine Generation Failure:

    • Message: "Failed to generate the routine due to incomplete or conflicting inputs. Please review the inputs and try again."

9.5 User Story: Filter Syllabus (Teacher)

As a teacher, I want to fetch the syllabus for the courses I teach so that I can easily access and review the course details, including learning objectives, chapters, and other criteria.

Confirmation:

Success -

  1. Redirecting to the Syllabus Filtering Interface:

    • Upon logging in, the teacher can redirect to the syllabus filtering interface from the navigation bar.
  2. Session and Course Retrieval:

    • Based on the teacher's login information, the system automatically retrieves their associated department and presents a list of available sessions and courses for selection.
  3. Selecting the Session (Batch):

    • The teacher selects the session or batch (e.g., 2019-2020) from the list provided.
      • The system then displays the available courses for that session.
  4. Selecting Single or Multiple Courses:

    • The teacher is presented with a list of courses relevant to the selected session.
      • He/She can select either a single course or multiple courses (e.g., "CSE 403", "CSE 404") from the list.
  5. Selecting Syllabus Portions to View:

    • After selecting the courses, the teacher is given the option to filter specific portions of the syllabus. Options include:
      • Student Learning Outcomes
      • Recommended Books
      • Chapters
      • Course Credit
      • Contact Hours
      • Course Title
    • The teacher selects one or multiple portions they want to view.
  6. Fetching the Syllabus:

    • After making the necessary selections, the teacher clicks the "Fetch Syllabus" button.
      • The system retrieves and displays the syllabus based on the selected courses and portions in either a consolidated or separate view.
  7. Displaying the Filtered Syllabus:

    • The filtered syllabus appears on the screen, showing all the requested details, either for multiple courses or separately for each course.
      • The teacher can view each course’s learning objectives, chapters, required readings, contact hours, and more.
  8. Downloading the Syllabus:

    • The teacher is given the option to download the syllabus for the selected courses.
      • The system provides an option to download either separate files for each course or a merged document containing the syllabus for all selected courses.

Failure -

  1. Redirect Failure:

    • Message: "Unable to redirect to the syllabus filtering interface. Please try again later."
  2. Session Selection Error:

    • Message: "No sessions found for your department. Please verify your session or contact the administrator."
  3. Course Selection Failure:

    • Message: "No courses available for the selected session. Please check your session or contact the administrator."
  4. Syllabus Portion Selection Error:

    • Message: "You must select at least one portion of the syllabus to proceed."
  5. Syllabus Fetch Failure:

    • Message: "Failed to retrieve syllabus. Please check your selection and try again."
  6. Display Failure:

    • Message: "Unable to display the syllabus. Please try again later."
  7. Download Failure:

    • Message: "Failed to download the syllabus. Please try again later."---

9.6 User Story: Filter Syllabus (Student)

As a student, I want to view and download the syllabus for my academic year so that I can easily access the course details, learning objectives, and required chapters for all courses in that year.

Confirmation:

Success -

  1. Redirecting to the Syllabus Filtering Interface:

    • Upon logging in, the student can redirect to the syllabus filtering interface from the navigation bar.
  2. Academic Year and Course Retrieval:

    • Based on the student’s login information, the system automatically retrieves their academic year (e.g., 1st Year, 2nd Year, etc.) and presents a list of all courses associated with that year for selection.
  3. Selecting Single or Multiple Courses:

    • The student is shown a list of courses relevant to their academic year.
      • They can select either a single course or multiple courses to view the syllabus (e.g., "CSE 403", "CSE 404").
  4. Selecting Syllabus Portions to View:

    • After selecting the courses, the student has the option to filter specific parts of the syllabus they wish to view, including:
      • Student Learning Outcomes
      • Recommended Books
      • Chapters
      • Course Credit
      • Contact Hours
      • Course Title
    • The student selects one or multiple portions they want to review.
  5. Fetching the Syllabus:

    • After making the selections, the student clicks the "Fetch Syllabus" button.
      • The system retrieves and displays the syllabus for the selected courses and portions in either a consolidated or separate view.
  6. Displaying the Filtered Syllabus:

    • The filtered syllabus appears on the screen, showing all the requested details for the selected courses.
      • The student can view information like learning objectives, chapters, required readings, contact hours, and more, either for multiple courses or separately for each course.
  7. Downloading the Syllabus:

    • The student is given the option to download the syllabus for the selected courses.
      • They can download either separate files for each course or a merged document containing the syllabus for all the selected courses.

Failure -

  1. Redirect Failure:

    • Message: "Unable to redirect to the syllabus filtering interface. Please try again later."
  2. Academic Year Retrieval Error:

    • Message: "Failed to retrieve your academic year details. Please log in again or contact the administrator."
  3. Course Selection Failure:

    • Message: "No courses available for the selected academic year. Please verify your year or contact the administrator."
  4. Syllabus Portion Selection Error:

    • Message: "You must select at least one portion of the syllabus to proceed."
  5. Syllabus Fetch Failure:

    • Message: "Failed to retrieve syllabus. Please check your selection and try again."
  6. Display Failure:

    • Message: "Unable to display the syllabus. Please try again later."
  7. Download Failure:

    • Message: "Failed to download the syllabus. Please try again later."---

9.7 Scheduling Class:

As a Teacher, I want to schedule my class so that I may be able to confirm, cancel, and reschedule my class.

Confirmation:

Success -

  1. Selecting the Date:

    • The teacher selects the exact date to confirm, cancel, or reschedule the class.
  2. Viewing Unconducted Classes:

    • Only the classes of the teacher that are not conducted will be shown in the list.
  3. Confirming the Class:

    • If the class is confirmed before a threshold time, a notification will be sent to the student profiles associated with that session. Additionally, the staff of the classroom will be notified.
  4. Confirmation Process:

    • To confirm a previously scheduled class, the teacher presses the "Class Confirm" button from the list. A notification is sent to the student profiles and the staff of the classroom.
  5. Rescheduling the Class:

    • If the teacher presses the "Reschedule" button, a popup window will appear with a form. The form includes:
      • A dropdown menu to select the class to reschedule.
      • A list of free time slots based on the best choices determined by the system’s algorithm.

Failure -

  1. Confirmation Reminder:

    • Message: "The class has not been confirmed before the threshold time. Please confirm it as soon as possible."
    • Reason: The class was not confirmed in time, leading to a reminder notification to the teacher.
  2. Cancellation Deadline:

    • Message: "Cancellation request cannot be processed after the allowed time (e.g., after 9:00 PM the previous day)."
    • Reason: The teacher is attempting to cancel the class past the allowed deadline.
  3. Cancellation Request:

    • Message: "Cancellation request sent to the exam committee representative. Approval is required for the class to be canceled."
    • Reason: The cancellation request is pending approval from the exam committee representative.
  4. Cancellation Denial:

    • Message: "Cancellation request was not approved by the exam committee representative. The class remains scheduled."
    • Reason: The request for cancellation was not approved, and the class remains unchanged.
  5. Rescheduling Slot Availability:

    • Message: "The selected time slot for rescheduling is not available. Please choose an alternate slot from the suggestions."
    • Reason: The chosen time slot for rescheduling is unavailable, prompting the system to suggest other options.

9.8 Assign Course Teacher:

As a Super User, I want to assign one or more teachers for each of the courses in an exam year so that the courses have assigned teachers.

Confirmation:

Success -

  1. Prerequisite Check:

    • The prerequisite for assigning course teachers is that the courses need to be uploaded for the exam year.
  2. Uploading the CSV File:

    • The Super User navigates to the ExamYear page of a particular session.
    • The Super User uploads a CSV file containing the course and the assigned course teacher.
  3. Successful File Upload:

    • If the file uploading process is successful:
      • The update will reflect across the system.
      • The courses will have assigned course teachers.

Failure -

  1. Incorrect CSV Format:

    • If the format of the CSV file doesn’t match the format of the table AssignedCourseTeacher in the database:
      • An error will pop up asking to provide the correct format of the CSV file.
  2. File Upload Failure:

    • If the file uploading process fails for any reason:
      • An error message will be displayed indicating the failure of the file upload.

9.9 User Story: Update Class Representative Information (Administrator)

As an administrator, I want to update the class representative (CR) information for particular batches so that students and teachers can easily contact their CRs for updates or assistance.

Confirmation:

Success -

  1. Redirecting to the CR Update Interface:

    • Upon logging in, the administrator can access the "Update Class Representative Information" option from the navigation bar.
  2. Batch and Current CR Retrieval:

    • The system automatically retrieves the list of batches (courses) assigned to the administrator based on their login.
    • It also displays the current class representative's information for each batch (e.g., name, contact number, email).
  3. Selecting a Batch:

    • The administrator selects the batch for which they want to update the class representative details from a list of their assigned batches.
  4. Updating CR Information:

    • The administrator is presented with fields to update or input the following information about the new class representative:
      • Name
      • Contact Number
      • Email Address
      • Student ID
      • Any additional notes (optional)
  5. Submitting the Updates:

    • After filling in the updated information, the administrator clicks the "Submit" button to save the changes.
    • The system updates the class representative information for the selected course.
  6. Confirmation of Success:

    • A message confirming successful update appears: "Class Representative details have been successfully updated."
  7. Notification to Class:

    • The system optionally sends a notification or email to the entire class with the updated class representative information.

Failure -

  1. Redirect Failure:

    • Message: "Unable to access the Class Representative Update interface. Please try again later."
  2. Batch Retrieval Error:

    • Message: "Failed to retrieve your batch(courses). Please log in again or contact the administrator."
  3. CR Selection Failure:

    • Message: "Unable to retrieve the current Class Representative information. Please try again later."
  4. Incomplete Information Error:

    • Message: "All fields must be filled out to update the Class Representative information."
  5. Update Failure:

    • Message: "Failed to update Class Representative details. Please check your input and try again."
  6. Notification Failure:

    • Message: "Failed to send notification to the class. Please contact the administrator."

9.10 User Story: View Class Representative Information (Student and Teacher)

As a student or teacher, I want to view the contact details of the class representative for my batch and courses so that I can easily reach out to them for assistance and updates.

Confirmation:

Success -

  1. Redirecting to the CR View Interface:

    • Upon logging in, the student or teacher can access the "View Class Representative Information" option from the navigation bar.
  2. Batch and CR Information Retrieval:

    • The system automatically retrieves the list of batches and courses the student or teacher is associated with, based on their login information.
    • For each batch, the class representative's details (name, contact number, email) are displayed.
  3. Selecting a Batch:

    • The student or teacher selects a specific batch from the list to view the detailed class representative information for that batch.
  4. Displaying CR Information:

    • After selecting a batch, the class representative’s information for that batch is displayed, including:
      • Name
      • Contact Number
      • Email Address
      • Office Hours or Availability (if applicable)
  5. Option to Download CR Information:

    • The student or teacher is given the option to download the class representative’s contact details in PDF or CSV format for easy reference.
  6. Confirmation of Success:

    • A confirmation message appears: "Class Representative information displayed successfully."

Failure -

  1. Redirect Failure:

    • Message: "Unable to access the Class Representative Information interface. Please try again later."
  2. Batch Retrieval Error:

    • Message: "Failed to retrieve your batch/course. Please log in again or contact the administrator."
  3. CR Information Retrieval Failure:

    • Message: "Failed to retrieve Class Representative information for the selected batch. Please try again later."
  4. Display Failure:

    • Message: "Unable to display the Class Representative information. Please try again later."
  5. Download Failure:

    • Message: "Failed to download the Class Representative details. Please try again later."

9.11 User Story: View Academic Calendar

As a user, I want to view the academic calendar so that I can know about different scheduled academic activities.

Confirmation:

Success:

  1. Show Academic Calendar in Generalized View Mode:

    • The system displays the academic calendar in a generalized view, covering all academic activities.
  2. Show Academic Calendar According to a Specific Department:

    • The user can view the academic calendar filtered for a specific department.
  3. Show Academic Calendar Month Wise:

    • The user can view the academic calendar organized by month.
  4. Show Academic Calendar Week Wise:

    • The user can view the academic calendar organized by week.
  5. Show All Vacations (Considering Different Time Range):

    • The user can view all vacations within a specified time range.
  6. Show All Academic Activities (Considering Different Time Range):

    • The user can view all academic activities within a specified time range.

Failure:

  1. Failure to Show Academic Calendar in Generalized View Mode:

    • Message: "Unable to load the academic calendar. Please refresh or try again later."
  2. Failure to Show Department-Specific Academic Calendar:

    • Message: "The academic calendar for the selected department couldn’t be displayed. Please try again later."
  3. Failure to Show Academic Calendar Month Wise:

    • Message: "No data available for the selected month. Please check another month or try again later."
  4. Failure to Show Academic Calendar Week Wise:

    • Message: "Unable to retrieve the weekly academic calendar. Please try again later."
  5. Failure to Show All Vacations (Considering Different Time Range):

    • Message: "Unable to load vacation data for the selected time range. Please adjust the range or try again later."
  6. Failure to Show All Academic Activities (Considering Different Time Range):

    • Message: "No academic activities found for the selected time range. Please refine your search or try again later."

9.12 User Story: View Class Routine

As a user, I want to view the class routine so that I can get the class schedule.

Confirmation:

Success:

  1. Show Class Routine in Normal Modes:

    • The system displays the class routine in the standard view mode.
  2. Show Class Routine for a Specific Date:

    • The user can view the class routine for a specific date.
  3. Show Class Routine According to Date Range:

    • The user can view the class routine within a specified date range.
  4. Show Class Routine for a Time Range:

    • The user can view the class routine within a specific time range.
  5. Show Class Routine Batch Wise:

    • The user can view the class routine filtered by batch.
  6. Show Class Routine Teacher Wise:

    • The user can view the class routine filtered by teacher.
  7. Show Class Routine Course Wise:

    • The user can view the class routine filtered by course.
  8. Show Class Routine Only for Lab Courses of a Particular Batch:

    • The user can view the class routine specifically for lab courses within a selected batch.
  9. Show Class Routine Only for Theory Courses of a Particular Batch:

    • The user can view the class routine specifically for theory courses within a selected batch.

Failure:

  1. Failure to Show Class Routine in Normal Modes:

    • Message: "Unable to load the class routine. Please refresh or try again later."
  2. Failure to Show Class Routine for a Specific Date:

    • Message: "The class routine for the selected date couldn’t be displayed. Please try again later."
  3. Failure to Show Class Routine According to Date Range:

    • Message: "No class routine available for the selected date range. Please adjust the range or try again later."
  4. Failure to Show Class Routine for a Time Range:

    • Message: "Unable to retrieve the class routine for the selected time range. Please try again later."
  5. Failure to Show Class Routine Batch Wise:

    • Message: "The class routine for the selected batch couldn’t be displayed. Please try again later."
  6. Failure to Show Class Routine Teacher Wise:

    • Message: "Unable to load the class routine for the selected teacher. Please try again later."
  7. Failure to Show Class Routine Course Wise:

    • Message: "No class routine available for the selected course. Please try again later."
  8. Failure to Show Class Routine Only for Lab Courses of a Particular Batch:

    • Message: "Unable to load the lab course routine for the selected batch. Please try again later."
  9. Failure to Show Class Routine Only for Theory Courses of a Particular Batch:

    • Message: "Unable to load the theory course routine for the selected batch. Please try again later."

9.13 User Story: Generate Makeup Class Routine

As a user, I want to create a Makeup Class Routine so that if enough classes is not performed for any particular course then it can be compensated.

Confirmation:

Success -

  1. Selecting a Course and type:

    • The user selects a course and type of that course (Lab or theory) from a dropdown menu listing all available course.
      • Then system check if the number of classes held for that course is below the threshold level or not.
      • If the number of classes held for that course is below the threshold level then show:
        • Message: "The course needs makeup class."
        • and if not then :
        • Message: "No need of makeup class for that course"
  2. Defining the Number of Slots:

    • The user inputs the number of class slots (e.g., 1 or 2) for a particular day.
  3. Defining Slot Duration:

    • The user selects the duration of the makeup class slot for that course from a number of available options.
  4. Selecting Start and End Time of the for the particular makeup class:

    • The user specifies the start and end times for the class (e.g., 9AM to 10AM , 2PM to 4PM etc).
  5. Defining the Duration and Time of Lunch Break:

    • The user selects the duration and the specific time when the lunch break will occur, based on the the condition if there is long period defined for a makeup class
  6. Selecting Number of ‘Regular Classrooms’ available in the department:

    • The user selects the number of regular classrooms available in the department.
  7. Selecting Specialized Classroom Categories:

    • The user selects the category of specialized classrooms available in the department (e.g., ‘Circuit Lab’, ‘Computer Lab’).
  8. Generating the Routine:

    • The user clicks "Generate Makeup Class Routine." The system processes all the inputs, creates the class schedule, and displays a routine suggestion for review.

Failure -

  1. Course Name and Type Selection Failure:

    • Message: "Department selection failed. Please try again."
  2. Number of Slots Not Defined:

    • Message: "Number of class slots is missing. Please define the number of slots to proceed."
  3. Slot Duration and Break Time Not Defined:

    • Message: "Class duration or break time not specified. Please provide the duration for each slot and the break time."
  4. Start and End Time Not Specified:

    • Message: "Start and end times of the day are missing. Please set the working hours to proceed."
  5. Lunch Break Not Scheduled:

    • Message: "Lunch break time not provided. Please specify when the break will occur."
  6. Specialized Classroom Category Not Selected:

    • Message: "Category of specialized classroom not selected. Please select the type and number of specialized room"
  7. Room Type Not Specified for Courses:

    • Message: "Room type for one or more courses is missing. Please specify if the course requires a regular or specialized room."
  8. Routine Generation Failure:

    • Message: "Failed to generate the makeup class routine due to incomplete or conflicting inputs. Please review the inputs and try again."

9.14 User Story: Upload Files

As a Super user, I want to upload files so that I can store various information of departments, students, teachers and faculties.

Confirmation:

Success -

  1. Selecting a valid file format:

    • User selects a valid CSV or XML file that contains accurate syntax and complete data for users.
      • Student: (e.g.,Id, first name, last name, email, department, session, registration number).
      • Teacher:(e.g.,Id, Name, Abriviation, Designation, Department, phone, email).
      • There are lots of file type for the department , room , staff course etc.
  2. Catagorize uploding file format in respect of user account and syllabus:

    • For storing the information of all user account and course, department, room etc. accepted file format is CSV.
    • For Viewing Syllabus the file format should be XML format.
  3. For accurate file Syntax:

    • If the file was in correct format and have correct syntax then :
    • Message: "File Uploaded Successfully" -The table for storing the information has been successfully created in database and reflect to the whole project. -The admin can view a list of successfully created accounts within the system.

Failure -

  1. Not selecting correct file format:

    • Message: "Error in file uploading."
  2. Syntax of the file not correct:

    • Message: "Error in file uploading."

9.15 User Story: Approve Rescheduling Class (Exam Committee)

As an administrator, I want to approve or reject class rescheduling requests so that I can manage the class schedule.

Confirmation:

Success -

  1. Accessing Rescheduling Requests:

    • Upon logging in, the administrator can access the rescheduling requests from the navigation menu under "Class Rescheduling."
  2. Viewing Pending Requests:

    • The system displays a list of pending rescheduling requests. Each request includes details such as the original class time, requested new time, reason for rescheduling etc.
  3. Evaluating and Approving/Rejecting Requests:

    • The administrator reviews the requested time proposed by the system. The administrator then decides to approve or reject the request by clicking the "Approve" or "Reject" button.
  4. Notification of Decision:

    • Once a decision is made, the system automatically notifies the requester (e.g., the teacher or student) of the approval or rejection of their rescheduling request, including the automatically adjusted class time if applicable.
  5. Updating the Class Schedule:

    • If approved, the class schedule is updated with the new time. The updated schedule is reflected in the system, and the changes are communicated to all relevant parties (e.g., students, teachers).

Failure -

  1. Access Failure:

    • Message: "Unable to access rescheduling requests. Please try again later."
  2. Request Retrieval Error:

    • Message: "Failed to retrieve pending rescheduling requests. Please log in again or contact the system administrator."
  3. Request Detail Display Issue:

    • Message: "Unable to display the details of the rescheduling request. Please try again later."
  4. Approval/Reject Failure:

    • Message: "Unable to process the approval or rejection of the request. Please try again later."
  5. Notification Failure:

    • Message: "Failed to notify the requester of the decision. Please check the notification system and try again."
  6. Schedule Update Failure:

    • Message: "Unable to update the class schedule with the new time. Please contact the system administrator."

9.16 User Story: View Personalized Dashboard

As a teacher/student/staff/superuser,
I want to view a personalized dashboard so that I can easily access the information relevant to my role, such as my daily class schedule, any updates, and notifications related to my responsibilities within the system.

Confirmation:

Success:

  1. Logging in:

    • Upon logging in with valid credentials, the system directs the user to their personalized dashboard.
  2. Displaying Personalized Information:

    Teacher:

    • Sees their assigned class schedule for the day.
    • Notices any rescheduled or canceled classes.
    • Receives updates about upcoming classes or any changes made by the superuser.
    • Can view their preferred teaching slots or modify their preferences.
    • Can view their profile and edit it.

    Student:

    • Sees their daily class schedule.
    • Receives notifications about rescheduled or canceled classes.
    • Can view their Profile.
    • Views class representative information (name, contact details).

    Staff:

    • Accesses schedules of classes they are assigned to support (e.g., room availability, setup requirements).
    • Receives notifications about room changes, canceled classes, or rescheduled sessions.
    • Can view their profile.

    Superuser:

    • Sees an overview of department-wide schedules.
    • Gets notified of pending reschedule requests.
    • Can quickly access options to generate a routine or update existing schedules.
  3. Dynamic Schedule Updates:

    • The system dynamically updates the dashboard when there are changes to user roles, class schedules, room allocations, or rescheduling requests.
  4. Quick Access to Actions:

    • Teacher: Options to request class rescheduling.
    • Superuser: Buttons to generate a new routine, view requests, and assign teachers to courses.
    • Staff: Access to room schedules and class support assignments.
    • Student: A view of updated class schedules and the ability to check class representative details.
  5. Dashboard Layout:

    • The layout adapts to each role’s requirements:
      • Teachers and students see a timetable.
      • Superuser sees an overview with department-level scheduling tools.
      • Staff sees room assignments and required setup details.
  6. Access to Detailed Views:

    • Users can click on specific days or sessions in their schedule to see more detailed information (e.g., class duration, room number, teacher, etc.).

Failure:

  1. Login Failure:

    • Message: "Unable to log in. Please check your credentials and try again."
  2. Dashboard Retrieval Error:

    • Message: "Failed to load your dashboard. Please refresh the page or try again later."
  3. Dashboard Access Failure:

    • Message: "Unable to load the dashboard. Please check your connection or try again later."
  4. Incomplete Dashboard Information:

    • Message: Some sections of the dashboard are unavailable. Please contact the administrator."

⚠️ **GitHub.com Fallback** ⚠️