in this project, following functionalities are implemented-
- create user, assignment and submission tables using Sequelize ORM
- authenticate users that are imported from users.csv using JWT and basic auth
- check health of the application using the healthz endpoint
- perform CRUD operations for assignments with validations such as only the user creating an assignment should be allowed to delete it, the deadline must be future-dated, thepoints should be between 1-100, number of attempts should be between 1-10
- validate following API requirements as well- http response should contain only specific information, url should be checked, only specific methods should be allowed
- submit assignments with respect to number of attempts per user, apply validations to number of attempts, date of submission, and delete an assigment only if it doesn't have any submissions posted for it
- perform integration tests using mocha and chai frameworks
- add .env file
- run npm install
- run node start