Commit graph

394 commits

Author SHA1 Message Date
Wuesteon
b8f9bc107c 🐛 fix(chat-backend): remove type-only ConfigService import
Fixed NestJS dependency injection error in ChatService by converting type-only import to regular import.

Root cause: Type-only imports are erased at compile time, causing NestJS to fail dependency injection at runtime.

Error: "Nest can't resolve dependencies of the ChatService (?, DATABASE_CONNECTION)"

This was the same issue we fixed in mana-core-auth services.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 23:02:26 +01:00
Till-JS
9dee75e06e feat(clock): improve UI across alarms, timers, pomodoro, and world clock pages
- Enhanced alarm page with preset suggestions and better layout
- Simplified timers page with cleaner controls
- Improved pomodoro with visual progress indicators
- World clock now shows interactive map with city markers
- Extended app.css with new utility classes and animations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 17:26:50 +01:00
Till-JS
f80b864ba8 feat(clock): add interactive world map to world clock page
Add D3.js powered world map with city markers showing timezone locations.
Extended timezone constants with lat/lng coordinates for 35 major cities.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 17:25:58 +01:00
Till-JS
b7eeae9590 feat(moodlit): add complete web app with fullscreen moods and sequences
- Add 24 default moods with various animation types (pulse, wave, candle, disco, etc.)
- Implement fullscreen mood view with play/pause, timer, and keyboard controls
- Add create mood dialog for custom moods with color picker and animation selection
- Implement sequences page with demo sequences and playback functionality
- Add MoodCard component with favorite toggle and animations
- Integrate with shared-branding (MoodlitLogo, AppId, APP_BRANDING config)
- Add i18n support (DE/EN) for all features
- Setup auth pages using shared-auth-ui
- Add feedback page with shared-feedback-service integration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:53:56 +01:00
Till-JS
ad0051a8fc feat(finance): add complete finance app with budget tracking
- Backend (NestJS, Port 3019):
  - Account management with multi-currency support
  - Categories with income/expense types and seed functionality
  - Transaction tracking with comprehensive filters
  - Monthly budgets with spending tracking
  - Transfers between accounts
  - Reports (dashboard, trends, category breakdown)
  - User settings (currency, locale, date format)
  - Exchange rates with ECB API integration
  - Bank sync architecture prepared (connected_accounts)

- Frontend (SvelteKit, Port 5189):
  - Dashboard with totals, budget progress, recent transactions
  - Transaction list with filters
  - Account management
  - Category management
  - Budget tracking per month
  - Reports & trends
  - Settings page
  - Auth pages (login, register, forgot-password)

- Shared package with types, constants, utilities
- Environment configuration for backend, web, mobile

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:41:43 +01:00
Till-JS
bbe540c3f1 feat: add global start page setting across all apps
- Add GeneralSettings types (startPages, weekStartsOn, soundsEnabled)
- Create app-routes.ts with available routes for 12 apps
- Extend UserSettingsStore with general settings support
- Update GlobalSettingsSection with start page selector UI
- Add start page redirect logic to all app layouts:
  - Clock, Calendar, Todo, Zitare, Picture
  - Manadeck, Presi, Chat, Manacore
- Create user-settings stores for Clock and Todo apps

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:31:04 +01:00
Till-JS
5b3c5ff4fb 🐛 fix: resolve type-check errors in finance and moodlit
- Add missing tsconfig.json to finance/packages/shared
- Remove recursive turbo scripts from moodlit/package.json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:30:01 +01:00
Till-JS
03b77eec46 feat(clock): add life clock page with minimal homepage redesign
- Simplify homepage by removing Quick Access section
- Add date/time info below clock with countdown counters
- Create new Life Clock (/life) page showing days lived
- Add 3 switchable visualizations: Circular Progress, Dot Grid, Year Rings
- DotGrid shows weeks as grid with decade markers and current week highlight
- Store birthdate in localStorage for life statistics calculation
- Add navigation entry for Life Clock

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:00:54 +01:00
Till-JS
6080902444 feat(clock): add multi-stopwatch support with improved UI
- Extend stopwatch store to manage multiple stopwatches simultaneously
- Add localStorage persistence for stopwatches
- Implement focused/compact card layout with color coding
- Support lap tracking with best/worst markers per stopwatch
- Add editable labels and automatic color assignment
- Update i18n strings for all 5 languages (DE, EN, ES, FR, IT)
2025-12-04 15:42:12 +01:00
Till-JS
10f4da819b feat(manacore): add configurable cross-app dashboard with widgets
- Add widget system with 9 widget types (credits, tasks, calendar, chat, contacts, quotes, etc.)
- Implement drag-and-drop grid layout with edit mode
- Create API services for todo, calendar, chat, contacts, and zitare backends
- Add dashboard store with localStorage persistence
- Include German and English i18n translations
- Replace legacy dashboard with new configurable widget-based UI
2025-12-04 15:41:24 +01:00
Till-JS
9eb0b51c4c feat(clock): add 10 new clock face designs
Add 5 new analog clock faces:
- Vintage: Antique clock with aged patina and spade hands
- Nautical: Marine-style brass ship clock with compass rose
- Industrial: Factory-style with rivets and metal accents
- Bauhaus: Geometric design with primary color accents
- Railway: Swiss station clock (SBB-style) with red lollipop second hand

Add 5 new digital clock faces:
- Retro: Pixel-style CRT display with scanlines
- Gradient: Modern display with dynamic color shifts
- Terminal: Command-line interface style
- Typewriter: Vintage mechanical keyboard style
- Radar: Military radar screen with sweep animation

Includes translations for all 5 languages (DE, EN, ES, FR, IT)
2025-12-04 15:37:34 +01:00
Wuesteon
a87e1389cf 🐛 fix(docker): fix manadeck backend Dockerfile to use pnpm
Changes:
- Replace npm with pnpm for workspace dependency support
- Copy workspace files (pnpm-workspace.yaml, package.json, pnpm-lock.yaml)
- Copy and build shared package dependencies:
  - @manacore/shared-errors
  - @manacore/manadeck-database
  - @mana-core/nestjs-integration
- Use pnpm install --frozen-lockfile
- Update base image to node:20-alpine
- Use dumb-init for proper signal handling

This fixes the "Unsupported URL Type 'workspace:'" error that was
preventing Docker builds. The new approach matches the pattern used
by the chat backend Dockerfile.

Fixes build error in CI/CD pipeline.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 02:43:58 +01:00
Wuesteon
aca6cdbaa5 🐛 fix(build): fix build errors and add troubleshooting docs
Fixes multiple build errors discovered after removing recursive turbo calls:

1. Documentation:
   - Add comprehensive TROUBLESHOOTING.md covering recursive turbo issues
   - Includes prevention checklist and validation scripts
   - Documents both build and linting recursive problems

2. Storage app fixes:
   - Fix nested button HTML validation in FileCard, FolderCard, FileRow, FolderRow
   - Fix theme constant imports (DEFAULT_VARIANT, THEME_VARIANTS)
   - Fix auth component imports (StorageLogo → ManaIcon)

3. Presi app fixes:
   - Fix authStore import mismatch (authStore → auth)

Build time improved from infinite loop to 36.3s (39/39 tasks successful).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 02:19:11 +01:00
Wuesteon
e32e4b1b3a 🐛 fix(build): remove recursive build scripts from parent packages
Parent workspace packages (apps/*/package.json, games/*/package.json) had
build scripts that called 'turbo run build' or 'pnpm run --recursive build',
creating infinite recursion when root turbo orchestrates builds.

When root turbo runs 'build', it finds packages with build scripts and
executes them. If those scripts also call 'turbo run build', it spawns
another turbo process → infinite loop.

Changes:
- Removed 'build' script from 7 parent packages (calendar, contacts, zitare, picture, presi, mana-games, voxel-lava)
- Also removed redundant 'clean', 'lint', 'type-check' scripts where they had recursive calls
- Root turbo.json already handles orchestration of these tasks

This follows the guideline in CLAUDE.md:
> Parent workspace packages must NEVER have scripts that call turbo run
> for tasks that turbo orchestrates from the root.

Fixes CI build timeout (was running for 10+ minutes with infinite task spawning).
2025-12-04 01:59:53 +01:00
Wuesteon
5ea7767833 🐛 fix(chat-backend): add missing shared-nestjs-auth package to Dockerfile
- Copy packages/shared-nestjs-auth in build stage
- Build shared-nestjs-auth before backend
- Resolves TS2307 errors in Docker build CI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 01:16:02 +01:00
Wuesteon
4900106021 🎨 style: fix Prettier formatting issues
Fixed formatting in 21 files across calendar, contacts, manacore, manadeck,
picture, storage apps and shared-ui package.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 01:05:10 +01:00
Wuesteon
843cf1e678 fixes 2025-12-04 00:51:40 +01:00
Wuesteon
e9caa4a217 fix lint 2025-12-04 00:32:13 +01:00
Wuesteon
16cb8e753b improve code quality 2025-12-03 23:42:37 +01:00
Till-JS
39b8a5682f 🔧 chore: extend CORS origins and update todo theme
- Add ports 5187-5190 to CORS origins for future apps
- Change todo app default theme from amethyst to ocean

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:27:18 +01:00
Till-JS
cda300440d 🔧 chore: misc updates across contacts, mail, and shared-ui
- Contacts app improvements and fixes
- Mail IMAP sync provider updates
- Shared UI package updates
- Updated pnpm-lock.yaml

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:13:50 +01:00
Till-JS
043acf33bd 🐛 fix(clock): fix Svelte class directive syntax errors
Replace class: directives containing slashes with inline conditionals
Svelte's class: directive doesn't support Tailwind classes with /

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:12:17 +01:00
Till-JS
8dcf543ed4 🐛 fix(clock): fix i18n initialization and add missing nav icons
- Fix svelte-i18n locale loading error by waiting for locale before render
- Add isLocaleLoading check to prevent rendering before translations ready
- Export waitLocale from i18n module for proper async initialization

- Add missing icons to PillNavigation component:
  - bell, timer, stopwatch, target, globe for Clock app
  - inbox, check, checkCircle, plus for Todo app

- Update Clock navItems to use proper icons:
  - Timer: clock → timer
  - Stoppuhr: activity → stopwatch

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:11:01 +01:00
Till-JS
2126cd5d3c feat(clock): redesign timer page with better UX
- Quick timer presets now work without authentication (local timers)
- Added "Recently Used" section with localStorage persistence
- Improved visual design with gradient backgrounds and icons
- Timer cards show progress as background fill
- Better spacing and visual hierarchy
- Quick preset buttons in create modal
- Status badges for running/paused/finished timers
- Notification support when timer finishes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:09:58 +01:00
Till-JS
604727c8f9 feat(mail): add complete Mail app with backend, web, mobile, and landing
- Backend (NestJS): Complete API with accounts, folders, emails, labels, compose, attachments, sync providers (IMAP, Gmail, Outlook), AI features (summarize, smart replies, categorization), and OAuth support
- Web (SvelteKit): Full email client UI with Svelte 5 runes, sidebar navigation, email list/detail views, compose modal, and theme support
- Mobile (Expo): React Native app with drawer navigation, email list/detail, compose screen, account management, and theme provider
- Landing (Astro): Marketing page with features, pricing, FAQ sections using shared-landing-ui components
- Storage: Added mail bucket and createMailStorage to shared-storage package
- Branding: Added MailLogo component

Note: Run `pnpm install` to install new dependencies (mailparser)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:06:32 +01:00
Till-JS
79dd56403e 🐛 fix(clock): use 'lume' as default theme variant instead of 'amber'
'amber' doesn't exist in THEME_VARIANTS - available themes are:
lume, nature, stone, ocean

Also added proper SSR fallbacks for theme store

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 15:58:34 +01:00
Till-JS
180eced0d0 feat(contacts): add import/export with Google Contacts integration
- Add vCard/CSV file import with duplicate detection and merge options
- Add Google Contacts OAuth2 integration for importing from Google
- Add vCard/CSV export with format selection and filtering options
- Add connected_accounts table for OAuth token storage
- Add FileUploader, ImportPreview, GoogleImport, ExportModal components
- Add i18n translations for import/export (DE/EN)
2025-12-03 15:55:04 +01:00
Till-JS
79b629b820 feat(contacts): add import/export with Google Contacts integration
- Add vCard/CSV file import with duplicate detection and merge options
- Add Google Contacts OAuth2 integration for importing from Google
- Add vCard/CSV export with format selection and filtering options
- Add connected_accounts table for OAuth token storage
- Add FileUploader, ImportPreview, GoogleImport components
- Add ExportModal with format selection (vCard/CSV)
- Add i18n translations for import/export (DE/EN)
2025-12-03 15:54:31 +01:00
Till-JS
32eef4005d 🐛 fix(clock): update theme.svelte imports
Update import paths to use explicit .svelte extension

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 15:49:08 +01:00
Till-JS
eca8ca6faa 🐛 fix(clock): rename theme.ts to theme.svelte.ts for Svelte 5 runes
$state rune requires .svelte.ts extension

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 15:46:48 +01:00
Till-JS
2ef457ea23 feat(clock): add complete Clock app with backend, web, and landing
Features:
- World clock with timezone support and drag & drop sorting
- Alarms with repeat days, snooze, and custom sounds
- Multiple timers with start/pause/reset controls
- Stopwatch with lap times (local only)
- Pomodoro timer with customizable intervals
- Analog and digital clock widgets
- i18n support (DE, EN, FR, ES, IT)

Stack:
- Backend: NestJS 10, Drizzle ORM, PostgreSQL (port 3017)
- Web: SvelteKit 2.x, Svelte 5 runes, Tailwind CSS 4 (port 5186)
- Landing: Astro 5.x with animated clock hero (port 4323)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 15:37:51 +01:00
Till-JS
110c6779a8 🐛 fix(calendar): shift FAB buttons when PillNav is in sidebar mode
FAB buttons (calendar icon and new event) are now positioned further
right when PillNav is displayed as a sidebar to avoid overlap.
2025-12-03 12:46:34 +01:00
Till-JS
80f8a0338e feat(calendar): add event detail modal and structured location fields
- Fix API response extraction for events and calendars (fixes Invalid Date)
- Convert event detail page to URL-based modal overlay (/?event=<id>)
- Add structured location fields (street, postal code, city, country)
- Add location details toggle in EventForm and QuickEventOverlay
- Add YearView component
- Improve calendar views with URL-based event navigation
- Move calendar settings to settings page
2025-12-03 12:44:39 +01:00
Till-JS
ba746fce04 Merge branch 'main' of https://github.com/Memo-2023/manacore-monorepo 2025-12-03 11:57:30 +01:00
Till-JS
e56485f21e feat(calendar): improve header UI and add quick event overlay
- Compact header styling with smaller buttons and reduced padding
- Add configurable hour filter display in header
- Add QuickEventOverlay component for fast event creation
- Add allDayDisplayMode to event metadata types
- Extend settings store with filter hours configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 11:54:17 +01:00
Wuesteon
ea3582d487 💄 style: apply prettier formatting across codebase
Run prettier --write to fix formatting inconsistencies in 80 files
across calendar, contacts, picture, presi, storage, zitare apps
and shared packages/documentation.
2025-12-03 02:02:09 +01:00
Till-JS
482509a574 🐛 fix(theme): add ShadCN-style CSS variable aliases for shared components
- Add aliases without color- prefix (--background, --foreground, --primary, etc.)
- Fix Mana/Subscription page styling across all apps
- Remove conflicting legacy aliases from contacts app.css
- Update contacts mana page to use toast instead of alert

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 00:20:49 +01:00
Till-JS
b01153ba87 🐛 fix(calendar): improve drag & drop and resize behavior
- Add hasMoved state to prevent accidental updates on simple clicks
- Only persist changes when actual drag/resize movement occurred
- Add Escape key handler to cancel drag/resize operations
- Improve visual feedback during resize with dashed outline
- Fix click handler to properly ignore clicks after drag/resize

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 00:14:47 +01:00
Till-JS
0e5d923faf feat(auth): add centralized user settings synced across all apps
- Add settings module to mana-core-auth with REST API endpoints
- Create user_settings table with globalSettings and appOverrides (JSONB)
- Add createUserSettingsStore() factory in shared-theme package
- Integrate user settings in all app layouts (calendar, chat, contacts, etc.)
- Support for nav position, theme, locale settings with per-app overrides
- Optimistic updates with localStorage caching for offline support
- Add comprehensive documentation in docs/USER_SETTINGS.md

API Endpoints:
- GET /api/v1/settings - Get all user settings
- PATCH /api/v1/settings/global - Update global settings
- PATCH /api/v1/settings/app/:appId - Set app override
- DELETE /api/v1/settings/app/:appId - Remove app override

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 00:09:47 +01:00
Wuesteon
2635281fd4 feat(storage): add shared package types and configuration
Add missing tsconfig.json and source files for @storage/shared package
to fix type-check failures. Includes type definitions for StorageFile,
StorageFolder, FileVersion, Share, Tag, and FileTag interfaces.
2025-12-03 00:04:35 +01:00
Till-JS
0f2aae631d feat(calendar): add drag & drop and page-level scrolling
- Add drag & drop for events in all 6 calendar views (Day, Week, Month, 5/10/14-day)
- Add resize handles for adjusting event start/end times
- Remove internal scroll containers for page-level scrolling
- Add 15-minute snap-to-grid for time adjustments
- Add view type selector in CalendarHeader
- Add sidebar collapsed state management
2025-12-02 23:42:03 +01:00
Till-JS
9d8c1849ee feat(calendar): add comprehensive settings and profile pages
- Add settings store with localStorage persistence for user preferences
- Implement language selection (DE, EN, FR, ES, IT) in settings
- Add calendar view settings: default view, week start day, time format
- Add weekday-only filter and week number display options
- Add event defaults: duration and reminder settings
- Integrate settings into WeekView, MonthView, MultiDayView components
- Add profile page to calendar and contacts web apps
- Support drag & drop and resize for events in WeekView

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 23:18:49 +01:00
Till-JS
02c82c7547 feat(a11y): add accessibility settings and theme improvements
Add comprehensive accessibility support across shared packages:
- A11y store with contrast, colorblind mode, and reduce motion settings
- A11yQuickToggles and A11ySettings UI components
- PillNavigation and PillDropdown components in shared-ui
- Calendar app updates to integrate new theme/a11y features

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 22:56:09 +01:00
Till-JS
6cc9f70a4a feat(contacts): add archive, favorites, groups, and feedback pages
- Add feedback service and route
- Add archive page for deleted contacts
- Add favorites page for starred contacts
- Add groups page for contact organization
- Add mana integration page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 14:42:01 +01:00
Till-JS
19500e8467 feat(storage): add Storage app scaffolding and root config
- Add storage app directory structure
- Add storage dev scripts to root package.json
- Add storage backend and web env generation in generate-env.mjs
- Update COMMANDS.md with calendar app reference

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 14:41:15 +01:00
Till-JS
fb9945c0f7 🔧 fix(chat): update schema for Better Auth nanoid user IDs
- Change userId columns from uuid to text to support Better Auth's nanoid format
- Update conversations, spaces, space_members, templates, usage_logs schemas
- Fix web API endpoint path from /api to /api/v1

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 14:40:02 +01:00
Till-JS
3799fe1b54 🎨 style(calendar): improve UI components and integrate shared-auth-ui
- Refactor CSS from @layer to plain CSS for guaranteed inclusion
- Add Svelte 5 runes safety checks in calendars/events stores
- Integrate shared-auth-ui pages with CalendarLogo and translations
- Add AppSlider and LanguageSelector components
- Add feedback service and mana route
- Add auth route detection in layout to skip navigation on auth pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 14:39:23 +01:00
Till-JS
a00a02a822 🎨 style(contacts): fix CSS variables and add modern contact pages
- Fix CSS variable names to match shared-tailwind themes
  - --primary → --color-primary
  - --background → --color-background
  - --card → --color-surface
  - etc.
- Add new contact page with modern design
  - Live avatar preview with initials
  - Section-based form with icons
  - Input fields with inline icons
- Add contact detail page with view/edit modes
  - Quick actions (call, email, message)
  - Detail cards for contact info, work, address, notes
  - Favorite toggle button
- Update central test user credentials (t@t.de)
- Add port 5184 to CORS origins for contacts web app

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 13:50:19 +01:00
Till-JS
45d70150f4 feat(contacts): add complete contacts app with backend, web, and landing
- Add NestJS backend with CRUD endpoints for contacts, groups, tags, notes, and activities
- Add SvelteKit web app with auth pages (login, register, forgot-password)
- Add Astro landing page
- Add ContactsLogo to shared-branding package
- Add contacts to MANA_APPS configuration
- Update shared-storage with contacts bucket support
- Update environment scripts and Docker configuration for contacts database
- Integrate mana-core-auth for JWT authentication
- Follow existing app architecture patterns (route groups, PillNavigation)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 13:17:42 +01:00
Till-JS
00176a25e0 feat(calendar): add complete calendar app with backend, web, and landing
- NestJS backend with Drizzle ORM (port 3014)
  - Calendar, Event, Reminder, Share, Sync modules
  - Full CRUD API endpoints
  - PostgreSQL database schema (5 tables)

- SvelteKit web app with Svelte 5 runes (port 5179)
  - Week, Day, Month views
  - Agenda list view
  - Event management (create, edit, delete)
  - Calendar management
  - Auth integration with Mana Core Auth
  - i18n support (DE, EN, FR, ES, IT)

- Astro landing page (port 4322)
  - Hero, Features, Pricing sections
  - Responsive dark theme design

- @calendar/shared package
  - TypeScript types for Calendar, Event, Reminder, Share
  - RFC 5545 RRULE support for recurring events

- Full documentation (CLAUDE.md, README.md)
2025-12-02 13:15:04 +01:00