Documentation - AlaminSheikhNaimNSU/CSE327-Project GitHub Wiki

NSU Advising System Documentation


Table of Contents

  1. Introduction
    1.1 Overview
    1.2 Scope
  2. System Features
  3. User Stories
  4. Database Design
    4.1 Entities and Attributes
    4.2 Entity-Relationship Diagram
  5. UI Design
  6. API Endpoints
  7. Security Features
  8. Testing Strategy
  9. Deployment and Maintenance

1. Introduction

1.1 Overview

The NSU Advising System automates and simplifies the academic advising process for students, advisors, and administrators at North South University. The system facilitates course registration, advising approvals, and progress tracking to enhance efficiency and transparency.

1.2 Scope

The system serves three types of users:

  • Students: Course selection and advising requests.
  • Advisors: Approval/rejection of advising requests and monitoring student progress.
  • Administrators: Managing users, course catalogs, and system settings.

2. System Features

  1. Role-Based Access

    • Secure login for students, advisors, and administrators.
  2. Course Selection and Advising

    • Students select courses and submit advising requests.
    • Advisors approve or reject requests with feedback.
  3. Progress Tracking

    • Displays academic progress for students and advisors.
  4. Admin Panel

    • User and course management.

3. User Stories

Refer to the User Story Section for detailed scenarios for students, advisors, and administrators.


4. Database Design

4.1 Entities and Attributes

Primary Entities

  1. User:

    • user_id (PK), username, password_hash, role, email.
  2. Student:

    • student_id (PK), user_id (FK), degree_program, completed_credits, current_courses.
  3. Advisor:

    • advisor_id (PK), user_id (FK), department.
  4. Admin:

    • admin_id (PK), user_id (FK), permissions.
  5. Course:

    • course_id (PK), course_name, prerequisites.
  6. Advising:

    • advising_id (PK), student_id (FK), advisor_id (FK), selected_courses, approval_status.
  7. Registration:

    • registration_id (PK), student_id (FK), course_id (FK), registration_status.

4.2 Entity-Relationship Diagram

Refer to the ER Diagram Section.


5. UI Design

5.1 Key Screens

  1. Login Page: Role-based login.

  2. Student Dashboard:

    • Academic progress tracking.
    • Course selection and advising status.
  3. Advisor Dashboard:

    • Approve/reject advising requests.
    • View student progress.
  4. Admin Panel:

    • Manage users and courses.

Refer to the UI Flow Diagram.


6. API Endpoints

Endpoint | Method | Description | Role -- | -- | -- | -- /login | POST | Authenticates users | All Users /students/courses | GET | Fetches available courses | Students /students/advising | POST | Submits selected courses for approval | Students /advisors/requests | GET | Retrieves pending advising requests | Advisors /advisors/approve | POST | Approves/rejects advising requests | Advisors /admin/users | POST, PUT | Adds or edits users | Admins /admin/courses | POST, PUT | Manages the course catalog | Admins

7. Security Features

  1. Authentication
    • Single Sign-On (SSO) for login.
  2. Authorization
    • Role-based access control (RBAC).
  3. Data Protection
    • SSL/TLS encryption for all data transmission.
    • Passwords hashed using bcrypt.

8. Testing Strategy

  1. Unit Testing
    • Tools: JUnit, Mocha.
  2. Integration Testing
    • Testing interaction between the UI, APIs, and database.
  3. Performance Testing
    • Simulate high traffic using JMeter.

9. Deployment and Maintenance

  1. Deployment
    • Deployed on a cloud platform (AWS, Azure).
    • Load balancers for scalability.
  2. Maintenance
    • Periodic backups for the database.
    • Regular updates for security patches and new features.
NSU Advising System Documentation Table of Contents Introduction 1.1 Overview 1.2 Scope System Features User Stories Database Design 4.1 Entities and Attributes 4.2 Entity-Relationship Diagram UI Design API Endpoints Security Features Testing Strategy Deployment and Maintenance 1. Introduction 1.1 Overview The NSU Advising System automates and simplifies the academic advising process for students, advisors, and administrators at North South University. The system facilitates course registration, advising approvals, and progress tracking to enhance efficiency and transparency.

1.2 Scope The system serves three types of users:

Students: Course selection and advising requests. Advisors: Approval/rejection of advising requests and monitoring student progress. Administrators: Managing users, course catalogs, and system settings. 2. System Features Role-Based Access

Secure login for students, advisors, and administrators. Course Selection and Advising

Students select courses and submit advising requests. Advisors approve or reject requests with feedback. Progress Tracking

Displays academic progress for students and advisors. Admin Panel

User and course management. 3. User Stories Refer to the User Story Section for detailed scenarios for students, advisors, and administrators.

  1. Database Design 4.1 Entities and Attributes Primary Entities User:

user_id (PK), username, password_hash, role, email. Student:

student_id (PK), user_id (FK), degree_program, completed_credits, current_courses. Advisor:

advisor_id (PK), user_id (FK), department. Admin:

admin_id (PK), user_id (FK), permissions. Course:

course_id (PK), course_name, prerequisites. Advising:

advising_id (PK), student_id (FK), advisor_id (FK), selected_courses, approval_status. Registration:

registration_id (PK), student_id (FK), course_id (FK), registration_status. 4.2 Entity-Relationship Diagram Refer to the ER Diagram Section.

  1. UI Design 5.1 Key Screens Login Page: Role-based login.

Student Dashboard:

Academic progress tracking. Course selection and advising status. Advisor Dashboard:

Approve/reject advising requests. View student progress. Admin Panel:

Manage users and courses. Refer to the UI Flow Diagram.

  1. API Endpoints Endpoint Method Description Role /login POST Authenticates users All Users /students/courses GET Fetches available courses Students /students/advising POST Submits selected courses for approval Students /advisors/requests GET Retrieves pending advising requests Advisors /advisors/approve POST Approves/rejects advising requests Advisors /admin/users POST, PUT Adds or edits users Admins /admin/courses POST, PUT Manages the course catalog Admins
  2. Security Features Authentication Single Sign-On (SSO) for login. Authorization Role-based access control (RBAC). Data Protection SSL/TLS encryption for all data transmission. Passwords hashed using bcrypt.
  3. Testing Strategy Unit Testing Tools: JUnit, Mocha. Integration Testing Testing interaction between the UI, APIs, and database. Performance Testing Simulate high traffic using JMeter.
  4. Deployment and Maintenance Deployment Deployed on a cloud platform (AWS, Azure). Load balancers for scalability. Maintenance Periodic backups for the database. Regular updates for security patches and new features.
⚠️ **GitHub.com Fallback** ⚠️