Skip to content

10. Interim Conclusion

Examples 01 through 28 have presented, one by one, all the concepts required by the case study:

Concept
Examples
In the case study
controllers, actions, routing, redirects
01 through 05
folder [src/web/controllers]
modules, services, dependency injection
06
[app.module.ts], [auth/auth.module.ts]
action model, pipes, class-based validation
07 through 12
[web/models/person-form.dto.ts]
views, template, partial views, helpers
13 to 16
folder [views], [web/views/handlebars-helpers.ts]
forms, validation, redispatch
17 to 19
[web/helpers/form.helper.ts], [views/persons/form.hbs]
Post / Redirect / Get, flash message
20
[web/view-context.ts]
Links and buttons, confirmation window
21
[views/partials/confirmation.hbs], [public/js/app.js]
Internationalization
22
[i18n/*.json], [web/i18n.ts], [language.controller.ts]
Data Scopes
23
[web/application-model.service.ts], [res.locals], cookies
middleware, guard, interceptor, filter
24
[web/view-context.ts], [web/view-user.interceptor.ts], [web/html-exception.filter.ts]
JWT, roles, CAPTCHA, limitation
25 to 27
[src/auth] folder
Web / Business / DAO, TypeORM, Transactions
28
files [business], [repositories], [entities]

The case study brings them together into a complete, realistic-sized application (about sixty files, approximately 5,500 lines, including comments). It was written with the same care as the examples: each file begins with a comment explaining its role, and tricky sections are annotated in the code. The document’s commentary emphasizes what the examples did not show and refers to them for the rest.