Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/minericefield/trying-nestjs-ddd
https://github.com/minericefield/trying-nestjs-ddd
clean-architecture ddd ddd-architecture hexagonal-architecture layerd-architecture nestjs typeorm typescript
Last synced: 3 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/minericefield/trying-nestjs-ddd
- Owner: minericefield
- Created: 2022-02-05T15:59:21.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-02-13T16:22:02.000Z (almost 3 years ago)
- Last Synced: 2024-04-09T15:09:47.917Z (7 months ago)
- Topics: clean-architecture, ddd, ddd-architecture, hexagonal-architecture, layerd-architecture, nestjs, typeorm, typescript
- Language: TypeScript
- Homepage:
- Size: 143 KB
- Stars: 11
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# trying-nestjs-ddd
Based on layered architecture.
# Development
- Install dependencies by running `yarn install`.
- Copy the **.env.example** as **.env**.
- Add values to the **.env**.
- Create **trying_nestjs_ddd** to your mysql database.
- Initialize tables by running `yarn migration`.
- Initialize data by running `yarn seed`.
- If you wan't to use **in-memory repository**, switch the **REPOSITORY_TYPE** to **in-memory**.
In this case, no database is needed.
- Start development by running `yarn start:dev`.# Rough requirement definition
- It's a task management application.
- It's a web server.
- The user is only you.
- Task contains rules below.
- Task has it's name and done state.
- Task name must not be duplicated.
- Name of the task is 1 to 20 characters.
- It provides the following features.
- Create a task.
- Get all tasks.
- Update a task.
- Delete a task.# Rough development policy
- Based on layered architecture.
- Since the unit of aggregation is only task, there are no modules or packages that are conscious of aggregation.
- For example, there is no directory named task.
- Try not to depend on libraries as much as possible at the application or domain layers.
- Task identifiers are serial numbers.
- Executing domain behavior is not allowed in presentation layer.