Skip to content

Commit b5dc9fe

Browse files
authored
add project structure
1 parent dd2040d commit b5dc9fe

1 file changed

Lines changed: 92 additions & 1 deletion

File tree

README.md

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,95 @@ Shared utilities and logging are abstracted into `libs/` for reusability across
4444

4545
## Project Structure
4646

47-
notifylog/ ├── apps/ │ ├── notifylog-api/ # NestJS microservice (GraphQL + Notification logic) │ │ ├── src/ │ │ │ ├── application/ │ │ │ │ ├── factories/ │ │ │ │ │ ├── notification.factory.ts │ │ │ │ ├── strategies/ │ │ │ │ │ ├── email-notification.strategy.ts │ │ │ │ │ ├── sms-notification.strategy.ts │ │ │ ├── domain/ │ │ │ │ ├── interfaces/ │ │ │ │ │ ├── notification-repository.interface.ts │ │ │ │ │ ├── webhook-repository.interface.ts │ │ │ ├── infrastructure/ │ │ │ │ ├── repositories/ │ │ │ │ │ ├── notification.repository.ts │ │ │ │ │ ├── webhook.repository.ts │ │ │ ├── presentation/ │ │ │ │ ├── resolvers/ │ │ │ │ │ ├── notification.resolver.ts │ │ │ │ │ ├── webhook.resolver.ts │ │ │ │ │ ├── log.resolver.ts │ │ │ ├── dto/ │ │ │ │ ├── notification.dto.ts │ │ │ ├── services/ │ │ │ │ ├── log.service.ts │ │ │ ├── app.module.ts │ │ │ ├── main.ts │ │ ├── package.json │ │ ├── tsconfig.json │ │ ├── .env.example │ └── notifylog-ui/ # Next.js frontend dashboard │ ├── src/ │ │ ├── app/ │ │ │ ├── page.tsx │ │ │ ├── notifications/ │ │ │ │ ├── page.tsx │ │ │ ├── errors/ │ │ │ │ ├── page.tsx │ │ │ ├── layout.tsx │ │ │ ├── globals.css │ │ ├── components/ │ │ │ ├── Header.tsx │ │ │ ├── NotificationTable.tsx │ │ │ ├── ErrorTable.tsx │ │ ├── lib/ │ │ │ ├── api.ts │ │ │ ├── types.ts │ ├── public/ │ ├── package.json │ ├── tsconfig.json │ ├── next.config.js ├── libs/ │ ├── logger/ # Winston logger (MongoDB transport) │ │ ├── src/ │ │ │ ├── interfaces/ │ │ │ │ ├── log-repository.interface.ts │ │ │ ├── persistence/ │ │ │ │ ├── logger.schema.ts │ │ │ ├── repositories/ │ │ │ │ ├── log.repository.ts │ │ │ ├── services/ │ │ │ │ ├── logger.service.file.ts │ │ │ │ ├── logger.service.db.ts │ │ ├── package.json │ │ ├── tsconfig.json │ └── utils/ # Shared helpers, interceptors, constants │ ├── src/ │ │ ├── helpers/ │ │ │ ├── string.utils.ts │ │ │ ├── validation.utils.ts │ │ ├── interceptors/ │ │ │ ├── logging.interceptor.ts │ │ ├── constants/ │ │ │ ├── app.constants.ts │ ├── package.json │ ├── tsconfig.json ├── prisma/ # Prisma ORM config & schema │ ├── schema.prisma │ ├── migrations/ ├── docker/ # Docker & Docker Compose files │ ├── Dockerfile.api │ ├── Dockerfile.ui │ ├── docker-compose.yml ├── .github/ # Issue templates & GitHub Actions │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── feature_request.md │ ├── workflows/ │ │ ├── ci.yml ├── README.md ├── CONTRIBUTING.md ├── CODE_OF_CONDUCT.md ├── LICENSE
47+
notifylog/
48+
├── apps/ # Monorepo applications
49+
│ ├── notifylog-api/ # NestJS microservice (GraphQL + Notification logic)
50+
│ │ ├── src/
51+
│ │ │ ├── application/ # Business logic
52+
│ │ │ │ ├── factories/
53+
│ │ │ │ │ └── notification.factory.ts
54+
│ │ │ │ └── strategies/
55+
│ │ │ │ ├── email-notification.strategy.ts
56+
│ │ │ │ └── sms-notification.strategy.ts
57+
│ │ │ ├── domain/ # Core entities/interfaces
58+
│ │ │ │ └── interfaces/
59+
│ │ │ │ ├── notification-repository.interface.ts
60+
│ │ │ │ └── webhook-repository.interface.ts
61+
│ │ │ ├── infrastructure/ # DB adapters
62+
│ │ │ │ └── repositories/
63+
│ │ │ │ ├── notification.repository.ts
64+
│ │ │ │ └── webhook.repository.ts
65+
│ │ │ ├── presentation/ # GraphQL resolvers
66+
│ │ │ │ └── resolvers/
67+
│ │ │ │ ├── notification.resolver.ts
68+
│ │ │ │ ├── webhook.resolver.ts
69+
│ │ │ │ └── log.resolver.ts
70+
│ │ │ ├── dto/ # Data transfer objects
71+
│ │ │ │ └── notification.dto.ts
72+
│ │ │ ├── services/ # Core services
73+
│ │ │ │ └── log.service.ts
74+
│ │ │ ├── app.module.ts
75+
│ │ │ └── main.ts
76+
│ │ ├── package.json
77+
│ │ ├── tsconfig.json
78+
│ │ └── .env.example
79+
│ └── notifylog-ui/ # Next.js frontend dashboard
80+
│ ├── src/
81+
│ │ ├── app/
82+
│ │ │ ├── page.tsx
83+
│ │ │ ├── notifications/
84+
│ │ │ │ └── page.tsx
85+
│ │ │ ├── errors/
86+
│ │ │ │ └── page.tsx
87+
│ │ │ ├── layout.tsx
88+
│ │ │ └── globals.css
89+
│ │ ├── components/ # UI components
90+
│ │ │ ├── Header.tsx
91+
│ │ │ ├── NotificationTable.tsx
92+
│ │ │ └── ErrorTable.tsx
93+
│ │ └── lib/
94+
│ │ ├── api.ts # API integration layer
95+
│ │ └── types.ts # Shared types
96+
│ ├── public/ # Static assets
97+
│ ├── package.json
98+
│ └── next.config.js
99+
├── libs/ # Shared libraries
100+
│ ├── logger/ # Winston logger (MongoDB transport)
101+
│ │ ├── src/
102+
│ │ │ ├── interfaces/
103+
│ │ │ │ └── log-repository.interface.ts
104+
│ │ │ ├── persistence/
105+
│ │ │ │ └── logger.schema.ts
106+
│ │ │ ├── repositories/
107+
│ │ │ │ └── log.repository.ts
108+
│ │ │ └── services/
109+
│ │ │ ├── logger.service.file.ts
110+
│ │ │ └── logger.service.db.ts
111+
│ │ ├── package.json
112+
│ │ └── tsconfig.json
113+
│ └── utils/ # Shared utilities
114+
│ ├── src/
115+
│ │ ├── helpers/
116+
│ │ │ ├── string.utils.ts
117+
│ │ │ └── validation.utils.ts
118+
│ │ ├── interceptors/
119+
│ │ │ └── logging.interceptor.ts
120+
│ │ └── constants/
121+
│ │ └── app.constants.ts
122+
│ ├── package.json
123+
│ └── tsconfig.json
124+
├── prisma/ # Database layer
125+
│ ├── schema.prisma # Prisma schema
126+
│ └── migrations/ # DB migration history
127+
├── docker/ # Containerization
128+
│ ├── Dockerfile.api
129+
│ ├── Dockerfile.ui
130+
│ └── docker-compose.yml
131+
├── .github/ # GitHub configurations
132+
│ ├── ISSUE_TEMPLATE/ # Issue templates
133+
│ └── workflows/
134+
│ └── ci.yml # CI pipeline
135+
├── README.md
136+
├── CONTRIBUTING.md
137+
├── CODE_OF_CONDUCT.md
138+
└── LICENSE

0 commit comments

Comments
 (0)