From 810f5d48d058aff2d2d9b677bf5170a0da9faac7 Mon Sep 17 00:00:00 2001 From: Tirsvad Date: Sat, 17 Oct 2026 09:41:57 +0200 Subject: [PATCH] Publish wiki from the repository --- Architecture.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Architecture.md diff --git a/Architecture.md b/Architecture.md new file mode 100644 index 0000000..e1d5663 --- /dev/null +++ b/Architecture.md @@ -0,0 +1,14 @@ +# 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`.