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.
-
Get Started:
git clone https://github.com/sliitcsse/assignment-01-IsuruX98.git cd assignment-01-IsuruX98/backend
-
Install Dependencies:
npm install
-
Launch the Server:
npm start
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 ->
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 ->
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>
Ensure backend security with OWASP ZAP. Run the Spider and Active Scan, and review the HTML report located in tests/securityTesting
.
- MongoDB must be operational before launching the server.