Please note that the architectural approach used in this project is intentionally complex and not reflective of what would typically be necessary for a task of this scope. This complexity was adopted solely for educational purposes to provide hands-on experience with certain design patterns and advanced features. We acknowledge that this might not be the optimal approach for the given task and appreciate your understanding and feedback.
Tasks:
Create REST based WEB API for Users.
Functional Requirements:
Version 1 - API should support the following actions:
a. List of users (for admin), includes roles
b. List of children (/courses/id/mentors/... (parent - child rel table)
c. List of parents /children/id/parents
e. Add parent (userName, email)
Add child POST /parents/id/children (child DTO)
f. Update user
g. Delete user
only for Admin, Parents delete
Version 2 – the same as Version 1 but with the following changes:
a. Search children
Non-functional Requirements (NFR):
Testability
All endpoints should correspond to at least the 2nd level of the maturity model. Few of the endpoints should follow the 3rd level.
Extensibility (via Versioning)
Self-Documented API. API documentation should be generated during the build. XML-Docs could be used for providing details of the endpoints. (build action *.csproj)
API documentation. Each API version should have its documentation.
Disclaimer
Please note that the architectural approach used in this project is intentionally complex and not reflective of what would typically be necessary for a task of this scope. This complexity was adopted solely for educational purposes to provide hands-on experience with certain design patterns and advanced features. We acknowledge that this might not be the optimal approach for the given task and appreciate your understanding and feedback.
Tasks:
Create REST based WEB API for Users.
Functional Requirements:
g. Delete user
Non-functional Requirements (NFR):
API documentation. Each API version should have its documentation.