Ungerfall / ekids-chatbot

Apache License 2.0
0 stars 0 forks source link

[Dev] Homeworks #18

Open Ungerfall opened 2 months ago

Ungerfall commented 2 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.

1

Create BLL (business logic layer) and DAL (data-access layer) for Tasks Service. Any implementation of the layered architecture can be used. Layers should be logically separated (via separate folders/namespaces).

Functional Requirements:

  1. Single entity – Task
  2. The task has a unique ID which is maintained (generated) on the client side.
  3. The following actions should be supported: a. Get list of items. b. Add a task. c. Remove task

Each item contains the following info: Id – required, ID of the item in an external system Name – required, plain text. Description – required, plain text. URL – optional, plain text.

Non-functional Requirements (NFR):

  1. Testability
  2. Extensibility

Constraints:

  1. NoSQL database for persistence layer (for example - https://www.litedb.org/).
  2. Layers should be logically separated.

2

Create BLL (business logic layer) and DAL (data-access layer) for Homework Service. You must follow Clean Architecture with physical layers separation (via separate DLLs).

Constraints:

  1. SQL database for persistence layer (for example - Microsoft SQL Server Database File).
  2. Layers should be physically separated.

Non-functional Requirements (NFR):

  1. Testability
  2. Extensibility

Functional Requirements:

  1. Key entities: Homework
  2. The following operations are allowed for Homework: get/list/add/update/delete.