- 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>
30 lines
602 B
JSON
30 lines
602 B
JSON
{
|
|
"name": "AcadeDoc",
|
|
"short_name": "AcadeDoc",
|
|
"start_url": "/",
|
|
"display": "standalone",
|
|
"background_color": "#222",
|
|
"theme_color": "#222",
|
|
"icons": [
|
|
{
|
|
"src": "icons/favicon-16x16.png",
|
|
"type": "image/png",
|
|
"sizes": "16x16"
|
|
},
|
|
{
|
|
"src": "icons/favicon-32x32.png",
|
|
"type": "image/png",
|
|
"sizes": "32x32"
|
|
},
|
|
{
|
|
"src": "icons/app-icon-192x192.png",
|
|
"type": "image/png",
|
|
"sizes": "180x180 192x192"
|
|
},
|
|
{
|
|
"src": "icons/app-icon-512x512.png",
|
|
"type": "image/png",
|
|
"sizes": "512x512"
|
|
}
|
|
]
|
|
}
|