University Timetable Management System API

Welcome to the University Timetable Management System API! This RESTful API facilitates the creation, modification, and querying of class schedules for students, faculty, and administrative staff. With an emphasis on secure access and data integrity, this project simulates real-world software development challenges and solutions within an educational institution context.

Setup Instructions

  1. Get Started:

    git clone https://github.com/sliitcsse/assignment-01-IsuruX98.git
    cd assignment-01-IsuruX98/backend
  2. Install Dependencies:

    npm install
  3. Launch the Server:

    npm start

Folder Structure

Screenshot 2024-03-23 185911

API Documentation

Discover and interact with the API endpoints using the user-friendly Postman UI. Click here to access detailed documentation that thoroughly describes each endpoint, including request parameters, responses, and examples. You can effortlessly test each endpoint directly within Postman, ensuring a seamless experience while exploring the capabilities of the API.

sample screenshot ->

Screenshot (47)

Testing

Run comprehensive tests with Jest. Install Jest using:

npm install --save-dev jest

Testing files are located in the tests/ directory. To run specific tests, use:

npx jest <filename.ext>

sample test run screenshot ->

Screenshot 2024-03-23 190523

Performance Testing

Evaluate performance using scripts in tests/performanceTesting. Ensure Artillery.io is installed globally:

npm install -g artillery

Before running performance tests, ensure PowerShell is opened as an administrator and set the execution policy:

Set-ExecutionPolicy RemoteSigned

Then execute performance tests with:

artillery run <filename.ext>

Security Testing

Ensure backend security with OWASP ZAP. Run the Spider and Active Scan, and review the HTML report located in tests/securityTesting.

Screenshot (48)

Additional Notes

  • MongoDB must be operational before launching the server.