Skip to content

9. Interim Conclusion

The twenty-five examples have introduced the concepts we need to write the [RdvMedecins] client:

Concept
Usage in the case study
components, props, functions in props, [children]
navigation bar, form fields, windows
[useState], calculated values, [useEffect]
all pages; the calendar based on its URL
validated fields, server-side validation
login, doctor and client profiles, account creation, user account
formatting functions, [Intl]
formatting of dates, times, and names
custom hooks
form submission, CAPTCHA
stores [Zustand]
logged-in user, messages, confirmation window
[React Router] and its guards
pages, permissions for each role, session to be restored after F5
[i18next]
French and English, and the translation of server errors
[fetch], httpOnly cookie, proxy
the connection, the expired session, all exchanges with the server
the access layer to API, [TanStack Query]
A [rdvmedecins.api.ts] file, one function per route; reading and caching data

The client will be the exact equivalent of the HTML application from the [NestJS] course, page by page. The difference lies elsewhere: the server no longer generates any pages; it responds in JSON, and everything related to display (pages, language, date formatting, messages) has been moved to the browser.