Ungerfall / ekids-chatbot

Apache License 2.0
0 stars 0 forks source link

[Dev] Create users API the parent-child relationship #5

Open Ungerfall opened 9 months ago

Ungerfall commented 9 months ago

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:

  1. 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
  2. Version 2 – the same as Version 1 but with the following changes: a. Search children

Non-functional Requirements (NFR):

  1. Testability
  2. All endpoints should correspond to at least the 2nd level of the maturity model. Few of the endpoints should follow the 3rd level.
  3. Extensibility (via Versioning)
  4. 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.