Commit Graph

25 Commits

Author SHA1 Message Date
Alex Polo
87ef9e3a94 refactor: Simplify descriptions in USP list and user bio 2025-11-07 15:05:56 +01:00
Alex Polo
996a090aba feat: Implement menu management and ingredient CRUD functionality
- Added menu generator page with existing menu loading and selection.
- Enhanced menus management page with editing capabilities and improved table layout.
- Updated booking page to allow for menu and package data fetching.
- Integrated Tailwind CSS line-clamp plugin for better text handling.
- Created a migration script for initializing ingredients database.
- Developed ingredients management page with search, filter, and CRUD operations.
- Implemented API routes for ingredients with proper error handling and logging.
2025-11-07 15:00:42 +01:00
Alex Polo
86685da067 feat: Add menu generation enhancements and API testing script
- Updated package.json to include new test scripts for API testing.
- Modified postcss.config.mjs to correctly configure Tailwind CSS and autoprefixer.
- Enhanced MenuGeneratorPage component to accept starter, main, and dessert requests.
- Updated API route to handle new menu generation parameters and log requests.
- Created LOGIN_CREDENTIALS.md for admin login information and user management instructions.
- Implemented test-api.mjs script to automate API endpoint testing and validate responses.
2025-11-07 14:46:33 +01:00
Alex Polo
570c41f465 Add comprehensive Playwright tests for calendar functionality
- Implemented tests for debugging browser cache vs server response.
- Verified calendar displays correct dates for November 2025.
- Added visual inspection screenshot for calendar layout.
- Created tests to ensure calendar fits within its container.
- Checked for correct styling of available and blocked dates.
- Debugged login form behavior and cookie handling.
- Added tests for forced browser refresh and cache verification.
- Conducted visual tests to compare actual calendar layout with expected.
- Enhanced logging for better traceability during test execution.
2025-11-07 14:09:22 +01:00
Alex Polo
4dec4745ae Refactor sample data structure and update components to use new data format
- Renamed `sampleData` to `data` in `src/config/sample-data.ts` and updated references in components.
- Added ingredients to menu items in `sample-data.ts` for detailed ingredient lists.
- Updated `USPList` component to reflect changes in data structure.
- Modified `Menu` interface in `models.ts` to include optional ingredients property.
- Implemented new `MenuGeneratorPage` for AI-driven menu creation with user input.
- Created `MenuIngredientsPage` for managing and calculating ingredient costs.
- Developed API route for menu generation using OpenAI API.
- Enhanced navigation component to exclude admin pages and login from display.
- Comprehensive logging and error handling added to API route.
2025-11-07 13:01:23 +01:00
Alex Polo
cbc1e31440 feat: Add address column and booking extras to bookings table
- Implemented a script to add an 'address' column to the 'bookings' table if it doesn't exist.
- Created a script to add 'include_service', 'include_cleanup', and 'total_price' columns to the 'bookings' table.
- Set up a 'users' table with an admin user and password hashing using bcrypt.
- Developed login and logout API routes with JWT authentication.
- Created a login page with form handling and error display.
- Designed a profile page for Christian Wärme showcasing skills and experience.
- Added a logout button component for admin interface.
- Implemented tests for login functionality and visual calendar layout.
2025-11-07 10:58:19 +01:00
Alex Polo
fdbc422c95 feat: add image upload functionality to MenuForm and update image handling in database
- Implemented image upload feature in MenuForm with file size validation and preview.
- Updated the API response for blocked dates to include block_date and note.
- Enhanced booking page to handle URL parameters for date and guests.
- Improved date picker component with better styling and functionality.
- Added CSS styles for a more user-friendly calendar interface.
- Created scripts to alter the image column in the database and embed images as base64.
2025-11-05 10:43:03 +01:00
Alex Polo
baec54814d Implement booking cancellation feature and refactor booking fetching logic 2025-10-31 22:23:59 +01:00
Alex Polo
b2e326c309 Add filter/search to blocked dates list
- Add search input field to filter blocked dates
- Search works on both date and note fields
- Show count: 'Viser X af Y blokeringer'
- Max height with scroll for long lists (max-h-96)
- Hover effect on list items for better UX
- Empty state when no matches found
2025-10-31 21:08:01 +01:00
Alex Polo
02cef8d619 Simplify availability logic: all days open by default
Breaking change: Weekly schedule is now reference-only
- Remove nonWorking modifier and gray styling
- All calendar days show as green (available) by default
- Only manually blocked dates show as red
- Remove confirmation prompts about work schedule
- Update UI text to clarify: 'all days are open unless manually blocked'
- Weekly schedule section now explains it's reference information only

This aligns with the actual business logic: Christian sets his normal
work hours for 2-3 weeks at a time, and the calendar should be open
for bookings on all days unless he manually blocks specific dates
(vacation, sick days, etc.)
2025-10-31 21:05:14 +01:00
Alex Polo
7edcbbb1bf Fix Ctrl+click batch blocking: ensure calendar updates and shows red
- Clear pendingDates after successful blocking
- Add key props to DayPicker to force re-render on state change
- Improve error handling with revert on failure
- Call fetchAll() after batch operations to get real IDs
2025-10-31 20:54:21 +01:00
Alex Polo
c931aa5b98 Fix blocked dates red styling - add modifiersClassNames
- Add modifiersClassNames to both DayPicker modes (single and multiple)
- Blocked dates now show with rdp-day_blocked class (red background)
- NonWorking and pending modifiers also properly styled
- Improve layout: single column with centered calendar
- Better spacing and hover effects on buttons
2025-10-31 20:42:37 +01:00
Alex Polo
d9eb9cb314 Add advanced calendar features and toast notifications
Features:
- Toast notifications system (replaces alerts/confirms)
- Shift+click range selection for blocking dates
- Ctrl/Cmd+click for non-contiguous multi-date selection
- Progress indicators for all async operations
- Improved blocked dates list with formatted dates
- Red styling for blocked dates in calendar
- Blue styling for pending dates (Ctrl+click)
- Weekly schedule awareness (confirm before blocking work days)
- Non-working day styling (gray, dashed border)

Other improvements:
- Featured flag for menus (DB migration script included)
- Image handling fixes (renamed PNG files, updated references)
- Optimistic UI updates for better UX
- Multi-select bulk delete for blocked dates
- Show-only-blocked filter mode

Components:
- src/components/ui/toast.tsx (new)
- scripts/add-featured-column.mjs (new DB migration)
- scripts/README.md (migration documentation)
2025-10-31 20:06:41 +01:00
Alex Polo
b006314526 Fix image formats: rename public images to .png and update sample-data refs; make ImagePlaceholder sizing defer to parent 2025-10-30 19:40:24 +01:00
Alex Polo
2bb9237eef feat(booking): disable blocked and unavailable dates using weekly availability and blocked dates API 2025-10-29 11:17:55 +01:00
Alex Polo
8afd6a36f3 feat(admin): availability management - weekly schedule & blocked dates (DB + API + admin UI) 2025-10-29 10:52:31 +01:00
Alex Polo
5b9bbace8b fix(contact): send from authenticated mailbox and set Reply-To for Office365 SMTP; update env example and README with app-password notes 2025-10-29 10:40:50 +01:00
Alex Polo
19ea933927 feat(contact): add contact form and server-side email via SMTP (Office365); .env.example updated 2025-10-29 10:34:14 +01:00
Alex Polo
dda9b515e1 docs: add deployment, migration and image generation instructions to README; ignore dist/generated images 2025-10-29 10:31:25 +01:00
Alex Polo
b7d6729234 chore: stop tracking generated images + ignore dist and image-cache 2025-10-29 10:28:49 +01:00
Alex Polo
c982bafee4 feat: add MariaDB support, admin API + admin UI persistence, image generation caching and missing menu images; move credentials to .env and add .env.example 2025-10-29 10:26:00 +01:00
Alex Polo
cc2fb207eb Merge branch 'main' of https://github.com/alexpolo1/kokken 2025-10-28 23:27:56 +01:00
Alex
b4efc417b4 Initial commit 2025-10-28 23:23:02 +01:00
Alex Polo
4acfa6a213 Initial commit - Warme catering website 2025-10-28 23:22:33 +01:00
Alex Polo
a8b85b58be Initial commit from Create Next App 2025-10-28 21:59:06 +01:00