The task at this stage is divide project into domains, identify domain terms and bounded context with domain experts and product managers together.

Domain

Domain refers to the specific subject that the project is being developed for. In most projects, the division of the domain is clear, in the case of e-commerce, for example, that should have domains of Order, Product and Stock. There is no right or wrong division of the field, only need every one reach an agreement of it.

Domain Terms

Domain terms refer to the name of enities, value objects, user cases, and so on. Domain terms should keep pace with the whole team(developers, domain exports, testers), eveyone must be use the same domain same terms in daily communication.
And most important, they should be refected in codes, the terms must be as the names of functions, classes, varialbes, and so on—no matter in frontend or backend.

Bounded Context

One term may have different meanings in different environments. For example, “door” will have different meanings in car and room, also means it will have different properies and methods in code level. this what bounded context used for, sometimes, you should divide damain into bounded contexts.

Bounded contexts should as the top folder in real a project, but In most cases, however, the domain and bounded contexts are overlaped, no need to make a deliberate distinction.

back to our todo app, there will be two domains: auth and todo.

Auth Domain

Auth domain is responsable for login, login status detection, logout, and so on.
it’s domain terms are: login, detect login status, logout,and so on.

Todo Domain

Todo domain is responsable for manage todos.
it’s domain terms are: add, delelte, view all, toggle, and so on.