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.