Documentation - AlaminSheikhNaimNSU/CSE327-Project GitHub Wiki
- 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
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.
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.
-
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.
Refer to the User Story Section for detailed scenarios for students, advisors, and administrators.
-
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
.
-
Refer to the ER Diagram Section.
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.
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
-
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.
-
Unit Testing
- Tools: JUnit, Mocha.
-
Integration Testing
- Testing interaction between the UI, APIs, and database.
-
Performance Testing
- Simulate high traffic using JMeter.
-
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.
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.
- 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.
- 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.
- 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
- 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.
- Testing Strategy Unit Testing Tools: JUnit, Mocha. Integration Testing Testing interaction between the UI, APIs, and database. Performance Testing Simulate high traffic using JMeter.
- 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.