This commit introduces a significant update to both the frontend and backend, focusing on enhanced user engagement and a consistent visual identity.
Key changes include:
- **Frontend UI/UX Refactor**:
- Implemented a "hand-drawn" aesthetic across the entire application using CSS overrides, custom SVG charts, and specific border/shadow styles to match the Excalidraw experience.
- Added a new notification system in the Header to display user updates.
- Enhanced the Template Picker with more variety and improved interaction models.
- Added a "Presentation Mode" in the Editor.
- Improved Dashboard visualizations with hand-drawn style sparklines and charts.
- Added modal dialogs for creating drawings and templates with custom names.
- **Backend & API Enhancements**:
- Implemented full CRUD support for custom templates, allowing users to save their drawings as reusable templates.
- Added a notification service with endpoints to list, mark as read, and mark all as read.
- Updated the API client to handle more robust JSON responses and error states.
- Improved CORS/Origin validation in the HTTP middleware to handle proxy headers (`X-Forwarded-Host`, `X-Forwarded-Proto`) more reliably.
- **Database & Infrastructure**:
- Added a new PostgreSQL migration for the `notifications` table.
- Updated the data models in the workspace to support templates (including snapshot storage) and notifications.
- Updated `.gitignore` to exclude graphify cache and AST files.