Challenge Overview
The Role-Based Curriculum App (RBC App) is a tool created to automate the processes of role-based curriculum checklist management. The Role-Based Curriculum App is utilized to track the overall proficiency and capabilities of associates to perform role-based tasks.
We’ve recently completed the wireframe challenge for this application. You can see the wireframe challenge spec here to understand the application better. The backend REST services are built in Java (Spring) and latest code is in our backend repo. We’ve also built the Swagger documentation for these proposed REST services in the last challenge.
In this challenge we will implement tests that primarily test the following:
-
Does the endpoint perform the required actions (functional) - for each of the endpoints in scope we need tests that verify the endpoint makes the correct changes to the database and return the correct data in response.
-
Does it respect role based access and restrictions - we have six roles in the app (User, RoleMentor, Learning Catalyst, Manager, Admin, App Admin) and each of them can call different endpoints. For example both Manager and admin roles can add users to a team, but manager can do that only for teams that he is manager of, while admin can do it for all teams. We have a roles matrix in the attached document - a table detailing what each of the roles can and can not do in the system. Tests should cover success/failure tests for each role. If there are bugs in the current code that cause these tests to fail, fixing them is in scope (it's just simple role checks).
Endpoints in scope are Users, Teams, Checklists and Scores. Using Spring TestContext framework is mandatory and annotation based configuration is preferred over xml.
Provided Artefacts
- Backend code
- Swagger & API mapping document for various pages
- Frontend code frontend repo (please see forums for how to access) - just for reference
- RBC App Business Requirements - document containing the role matrix
Final Submission Guidelines
Submit the updated backend codeSubmit a deployment/verification guide