AcadeDoc/apps/client
Corentin b53ab5043f feat(acadedoc): add AcadeDoc branding, Brevo SMTP preset, UI customization — R4.4
- Rebranding: BRAND_NAME env var (default AcadeDoc) replaces hardcoded "DocAdenice"
  in index.html title/meta, PWA manifest, app-header logo text, email footer/body
- lib/config.ts: getAppName() reads BRAND_NAME; new getBrandLogoUrl/PrimaryColor/AccentColor helpers
- vite.config.ts: BRAND_* vars exposed via define block to client
- brand-theme.ts: getBrandTheme() generates 10-shade MantineColorsTuple from hex
  (no @mantine/colors-generator dep); merged into MantineProvider at boot
- theme/__tests__/brand-theme.test.ts: 11 vitest tests (generateColorTuple + getBrandTheme)
- Workspace branding: migration adds primary_color/accent_color to workspaces table
  WorkspaceBrandingService + WorkspaceBrandingController (POST /workspace/branding,
  POST /workspace/branding/update — admin only) + DTO hex validation
- Settings: /settings/branding page (WorkspaceBranding) + sidebar entry (admin-only)
- workspace-branding.spec.ts: 13 vitest tests (service + controller + DTO validation)
- SMTP Brevo: .env.example preset block + transactional/README.md ops guide
  (key gen, port 587 STARTTLS, 300/day free limit, swaks/curl test)
- environment.service.ts: getMailFromName() falls back to BRAND_NAME if MAIL_FROM_NAME unset
- vitest.config.ts server: include pattern extended to src/core/workspace/spec/**
- i18n: 11 branding keys added to en-US and fr-FR translations
- 0 TypeScript errors client + server, 11 client + 13 server new tests all green

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 11:36:38 +02:00
..
public feat(acadedoc): add AcadeDoc branding, Brevo SMTP preset, UI customization — R4.4 2026-05-08 11:36:38 +02:00
src feat(acadedoc): add AcadeDoc branding, Brevo SMTP preset, UI customization — R4.4 2026-05-08 11:36:38 +02:00
.dockerignore
.gitignore
Dockerfile.e2e test(e2e): add data-testid attributes for Playwright e2e (Patch 008 R3.1.e) 2026-05-08 00:37:39 +02:00
eslint.config.mjs chore: fix linting (#544) 2024-12-09 14:51:31 +00:00
index.html feat(acadedoc): add AcadeDoc branding, Brevo SMTP preset, UI customization — R4.4 2026-05-08 11:36:38 +02:00
package.json feat(acadenice): add timeline view (Gantt) for databases — R4.1 2026-05-08 11:27:11 +02:00
postcss.config.js
README.md
tsconfig.json
tsconfig.node.json
vite.config.ts feat(acadedoc): add AcadeDoc branding, Brevo SMTP preset, UI customization — R4.4 2026-05-08 11:36:38 +02:00
vitest.config.mts fix(acadenice): resolve test suite failures across R3 sub-blocks (Patch 017) 2026-05-08 10:36:19 +02:00

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

  • Configure the top-level parserOptions property like this:
   parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    project: ['./tsconfig.json', './tsconfig.node.json'],
    tsconfigRootDir: __dirname,
   },
  • Replace plugin:@typescript-eslint/recommended to plugin:@typescript-eslint/recommended-type-checked or plugin:@typescript-eslint/strict-type-checked
  • Optionally add plugin:@typescript-eslint/stylistic-type-checked
  • Install eslint-plugin-react and add plugin:react/recommended & plugin:react/jsx-runtime to the extends list