Files
032-birthday-wisher/docs/wiki/Architecture.md
T
Tirsvad 457b84c6da Add README, screenshots, tri-lingual wiki and wiki workflow (MIL-003)
README from the framework template, three terminal screenshots rendered by
script, wiki pages in English, Danish and Bahasa Malaysia, the publish-wiki
workflow, and the milestone links in the Project Plan.

Refs #13
Refs #14
Refs #15
Refs #16
Refs #17
Refs #18
2026-10-17 15:41:15 +08:00

15 lines
805 B
Markdown

# Architecture
🌐 **English** · [Dansk](Architecture-da) · [Bahasa Melayu](Architecture-ms)
The code follows a small clean architecture. Imports point inward.
| Layer | Folder | Holds |
| --- | --- | --- |
| Domain | `src/birthday_wisher/domain/` | `Person` and the errors |
| Application | `src/birthday_wisher/application/` | The use case `send_birthday_wishes` and the ports (`BirthdayRepository`, `LetterSource`, `MailSender`) |
| Infrastructure | `src/birthday_wisher/infrastructure/` | CSV reader, letter files, SMTP mailer, settings |
| Presentation | `src/birthday_wisher/presentation/` | The command line and the composition root |
The tests mirror the layers: `tests/unit`, `tests/integration`, `tests/e2e`. The course hint of a dictionary keyed by `(month, day)` is `birthdays_by_day`.