Commit Graph

80 Commits

Author SHA1 Message Date
Bastian Masanek
7ee1a24216 Add new test command for role switcher keyboard functionality 2025-11-04 12:39:34 +01:00
Bastian Masanek
3fc87bd546 Update RoleSwitcher.vue to enhance role descriptions and accessibility features
- Changed role descriptions for 'individual' and 'educator' to provide clearer context.
- Added a new 'company' role with appropriate details.
- Improved accessibility for the role switcher by implementing a high-contrast checkmark for better visibility.
- Updated instructional text to clarify the role's impact on product visibility.

These changes aim to improve user understanding and accessibility within the role selection interface.
2025-11-04 12:39:22 +01:00
Bastian Masanek
4d30516fcf Update AppHeader.vue to adjust logo height and margin for improved visual consistency 2025-11-03 19:33:36 +01:00
Bastian Masanek
2bda321fe7 Enhance navigation components to conditionally display role switcher based on user login status
- Updated AppHeader.vue to show the role switcher only when the user is logged in, improving the relevance of displayed options.
- Modified CartButton.vue to adjust spacing based on item presence, enhancing visual consistency.

These changes aim to refine user navigation and ensure a more tailored experience within the application.
2025-11-03 19:22:29 +01:00
Bastian Masanek
a22e4b42ca Refactor navigation components for improved layout and functionality
- Updated UserMenu.vue to enhance button styling and spacing for a more modern look.
- Simplified CartFAB.vue to always show the cart button when items are present, regardless of the route.
- Adjusted AppHeader.vue for better alignment of elements.
- Enhanced AreaTabs.vue to enable the educator tab and improve badge styling.
- Refined BottomNav.vue to handle cart visibility and navigation more effectively.

These changes aim to enhance user navigation and overall experience within the application.
2025-11-03 19:20:10 +01:00
Bastian Masanek
37a1d234a7 Refactor UserMenu and navigation components for improved user experience
- Enhanced UserMenu.vue by implementing an extended user type for better user data handling and updated user initials logic.
- Adjusted AppHeader.vue and AreaTabs.vue for improved layout and spacing, ensuring a more cohesive design.
- Updated CartButton.vue and Tabs components for consistent styling and better responsiveness.

These changes aim to enhance the overall usability and visual appeal of the application, providing a smoother user experience.
2025-11-03 18:28:27 +01:00
Bastian Masanek
860cd3ec9d Refactor AppHeader and AreaTabs components for improved layout and functionality
- Adjusted AppHeader.vue for better spacing and alignment of elements, enhancing the overall visual appeal.
- Updated AreaTabs.vue to include a new 'Start' tab with a home icon, improving navigation options.
- Modified route handling in AreaTabs.vue to dynamically determine the current area based on the route.
- Changed default redirect destination in useAuth.ts to the root path for a more intuitive user experience.
- Enhanced index.vue to provide a more welcoming message and improved content presentation.

These changes aim to enhance user navigation and overall experience within the application.
2025-11-03 17:36:54 +01:00
Bastian Masanek
f6f09ca147 Refactor UI components for improved styling and user experience
- Updated UserMenu.vue to enhance button and avatar styles for a more modern look.
- Adjusted alert component styles in index.ts for consistent rounded corners.
- Simplified loading state markup in order confirmation page for cleaner code.
- Enhanced button and link text for better clarity and user navigation.

These changes aim to improve the overall aesthetic and usability of the application, ensuring a more cohesive user experience.
2025-11-03 17:17:40 +01:00
Bastian Masanek
782bd6cdd7 Enhance CheckoutForm and Order components with user data integration
- Refactored CheckoutForm.vue to utilize an extended user type, incorporating additional address fields for improved user data handling.
- Updated OrderSummary.vue to conditionally display salutation based on user input.
- Standardized error alert styling across multiple pages, changing variant from 'destructive' to 'error' for consistency.
- Adjusted button styles in various components to align with the new 'experimenta' variant.

These changes aim to improve user experience by ensuring accurate data representation and consistent UI elements across the checkout and order processes.
2025-11-03 17:00:22 +01:00
Bastian Masanek
66ba95439d Update progress and implement UI/UX refinements post-checkout phase
- Updated last modified date and overall progress in project documentation.
- Implemented critical UX improvements including route localization to English, cart item position stability, text selection prevention, and scrollbar styling fixes.
- Enhanced cart functionality with a new MockPayPalButton component and ensured cart state synchronization after order completion.
- Fixed accessibility issues with the cart edit button and improved responsive rendering for cart components.

These changes aim to enhance user experience and maintain consistency across the application.
2025-11-03 16:53:54 +01:00
Bastian Masanek
c4607d26a0 Fix ScrollBar component styling 2025-11-03 16:43:06 +01:00
Bastian Masanek
29f77afdcf Enhance CartItem component with non-selectable elements
- Added 'select-none' class to subtotal and remove button in CartItem.vue to prevent text selection during user interaction, improving the overall user experience.
2025-11-03 16:39:21 +01:00
Bastian Masanek
0b7098662b Enhance CartItem component with non-selectable elements
- Updated quantity control buttons and display in CartItem.vue to include the 'select-none' class, preventing text selection during user interaction.
2025-11-03 16:31:05 +01:00
Bastian Masanek
b302411626 Implement checkout and payment flow with new components
- Added Checkout and Payment pages to handle user authentication and order processing.
- Introduced MockPayPalButton for simulating payment during development.
- Updated CartSheet and CartSidebar components to navigate to the new checkout page.
- Enhanced Cart UI with responsive design for mobile and desktop views.
- Implemented order confirmation and success pages to provide feedback after payment completion.

These changes complete the checkout and payment functionality, improving the overall user experience and ensuring a seamless transition from cart to order confirmation.
2025-11-03 16:24:00 +01:00
Bastian Masanek
527379a2cd Enhance checkout flow with new components and validation
- Added AddressForm and CheckoutForm components for user input during checkout.
- Implemented validation using Zod and VeeValidate for billing address fields.
- Created OrderSummary and MockPayPalButton components for order confirmation and payment simulation.
- Updated CartSheet and CartSidebar to navigate to the new checkout page at '/kasse'.
- Introduced new API endpoints for validating checkout data and creating orders.
- Enhanced user experience with responsive design and error handling.

These changes complete the checkout functionality, allowing users to enter billing information, simulate payment, and confirm orders.
2025-11-03 15:38:16 +01:00
Bastian Masanek
47fe14c6cc Add guideline for URL creation in English
- Updated CLAUDE.md to specify that URLs should always be created in English, using the example "/checkout" instead of "/kasse".

This change aims to standardize URL formatting across the codebase for better accessibility and consistency.
2025-11-03 15:37:53 +01:00
Bastian Masanek
4a3ef037ab Update AreaTabs and experimenta page for educator annual pass visibility
- Disabled the educator tab in AreaTabs and added a 'Demnächst' badge for future visibility.
- Updated the experimenta page header to singular form for consistency and improved layout of ProductCard components for better readability.

These changes enhance the user experience by clarifying product availability and improving the overall presentation of the educator annual pass.
2025-11-03 14:17:58 +01:00
Bastian Masanek
ca0c4dddf4 Update progress and refine cart UI with bug fixes and new educator products page
- Updated last modified date and overall progress in the project documentation.
- Enhanced cart UI by fixing the Warenkorb button hover bug, improving CartItem layout, and refining the quantity selector for better user experience.
- Improved styling of the Warenkorb button for better visual consistency.
- Created a new Educator Products page to showcase educator annual passes with optimized content.

These changes aim to enhance the shopping cart functionality and user experience for educators.
2025-11-03 14:08:11 +01:00
Bastian Masanek
e252d68f0c Add educator annual pass functionality and update product listings
- Introduced a new page for educator annual passes, displaying relevant products with a dedicated layout and loading/error states.
- Updated AreaTabs component to include the educator tab and adjusted routing logic.
- Modified useAuth to redirect users to the products page after login.
- Adjusted mock product prices and stock quantities in the database seeding script to reflect new pricing strategy.

These changes enhance the user experience for educators and improve product visibility in the application.
2025-11-03 14:03:29 +01:00
Bastian Masanek
ebb6dc0b27 Refactor CartFAB and CartSidebar components for improved UI and functionality
- Simplified Transition component structure in CartFAB.vue for better readability.
- Enhanced FAB button size and adjusted ShoppingCart icon scale for improved visibility.
- Updated Badge component styling for better alignment and visual appeal.
- Modified CartSidebar.vue to adjust empty state layout, improving user experience when the cart is empty.

These changes aim to enhance the overall user interface and interaction within the shopping cart components.
2025-11-03 13:18:26 +01:00
Bastian Masanek
b372e2cf78 Implement shopping cart functionality with UI components and API integration
- Added CartItem, CartSummary, CartEmpty, CartSidebar, and CartSheet components for managing cart display and interactions.
- Integrated useCart and useCartUI composables for cart state management and UI control.
- Implemented API endpoints for cart operations, including fetching, adding, updating, and removing items.
- Enhanced user experience with loading states and notifications using vue-sonner for cart actions.
- Configured session management for guest and authenticated users, ensuring cart persistence across sessions.

This commit completes the shopping cart feature, enabling users to add items, view their cart, and proceed to checkout.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-03 12:43:13 +01:00
Bastian Masanek
9d0e77fc98 Add cart button to desktop header with price display
Implemented desktop cart button in navigation header that displays:
- Shopping cart icon with item count badge (red, top-right)
- Total cart price in German locale (EUR)
- Click opens CartSidebar via useCartUI() composable
- Responsive: visible only on lg breakpoint and above
- Hidden on mobile (FAB is used instead)

Uses useCart() composable for itemCount and total, with proper
Intl.NumberFormat formatting for EUR display.

Also standardized CartFAB price formatting to use Intl.NumberFormat
for consistency with rest of codebase.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 11:41:32 +01:00
Bastian Masanek
f9a2857abe Hide role 'company' 2025-11-03 11:07:46 +01:00
Bastian Masanek
863fa671cb Update progress and prioritize cart and checkout phases 2025-11-03 11:03:21 +01:00
Bastian Masanek
d6404434a3 Refactor database schema for roles and visibility management
- Updated the roles table to use `code` as the primary key, enhancing readability and simplifying junction tables.
- Modified `user_roles` and `product_role_visibility` tables to reference `role_code` instead of `role_id`, maintaining many-to-many relationships.
- Added foreign key constraints and created new indexes to optimize queries.
- Removed the previous migration file that was no longer needed, ensuring a cleaner migration history.
- Updated related documentation to reflect the new schema changes and their benefits.
2025-11-03 10:54:58 +01:00
Bastian Masanek
14fc293ebe Refactor AreaTabs component to correct product area labels and routing logic
- Updated labels for 'experimenta' and 'makerspace' to singular form for consistency.
- Adjusted computed property to return simplified area identifiers for improved routing clarity.
2025-11-03 10:45:45 +01:00
Bastian Masanek
68ab42f2f4 Refactor roles management to use role code as primary key
- Updated the roles table schema to use role code as the primary key, enhancing readability in junction tables.
- Modified related tables (user_roles, product_role_visibility) to reference role code instead of role ID.
- Adjusted seeding logic and utility functions to accommodate the new primary key structure, ensuring consistent role management across the application.
- Added a migration script to facilitate the database schema changes.
2025-11-03 10:45:11 +01:00
Bastian Masanek
a6d09d76fd Update CLAUDE.md to clarify role definitions and database schema
- Added details about the primary key for the `roles` table, emphasizing its enum nature and direct readability in junction tables.
- Included information on foreign key relationships for `user_roles` and `product_role_visibility` referencing `roles.code`.
- Documented the auto-assignment of the 'private' role for new users upon first login and clarified the use of UUID primary keys in most tables.
2025-11-03 10:44:52 +01:00
BaM
ba0267ef88 Add Docker management scripts to package.json 2025-11-02 17:16:49 +01:00
Bastian Masanek
cb4810893c Add automatic role assignment for new and existing users
- Implemented auto-assignment of the 'private' role for new users upon first login, ensuring they have access to products.
- Added a safety check to assign the 'private' role to existing users without roles during login.
- Updated relevant documentation to reflect these changes in role management and visibility patterns.
2025-11-02 10:40:52 +01:00
Bastian Masanek
268d91f548 Enhance database management with cleanup and reset scripts
- Added a new database cleanup script to remove all data while preserving the schema, facilitating a clean state before seeding.
- Updated package.json to include new commands for database cleaning and resetting.
- Modified schema definitions to use an array format for index and constraint definitions, improving clarity and consistency.
- Updated product seeding logic to utilize role-based assignments directly from mock data, enhancing flexibility in product-role relationships.
2025-11-02 10:35:07 +01:00
Bastian Masanek
ff9960edef Add role-based visibility and management features for products
- Introduced a role-based visibility system for products, ensuring that only users with approved roles can view specific products.
- Added new database tables for roles, user roles, and product role visibility to manage access control.
- Implemented utility functions for role management, including fetching approved roles, checking product visibility, and assigning roles to users and products.
- Updated API endpoints to filter products based on user roles, enhancing security and user experience.
- Prepared the database schema for future role request and approval workflows in upcoming phases.
2025-11-02 10:17:40 +01:00
Bastian Masanek
6e4f858883 Refactor AreaTabs component to simplify product area IDs
- Updated product area IDs for 'experimenta' and 'makerspace' to enhance clarity and navigation consistency.
- Maintained existing functionality while improving the overall structure of the AreaTabs component.
2025-11-02 10:17:23 +01:00
Bastian Masanek
abdec40119 Refactor AreaTabs component to update product area identifiers and visibility settings
- Changed product area IDs for 'experimenta' and 'makerspace' to simplify navigation.
- Updated visibility settings for areas to ensure 'experimenta' and 'labs' are now visible.
- Adjusted logic in computed property to reflect new area IDs for improved routing consistency.
2025-11-02 10:17:04 +01:00
Bastian Masanek
8b8e6fbb14 Update settings.local.json to add database migration command for Playwright integration 2025-11-02 10:16:29 +01:00
Bastian Masanek
82b5e61f94 Refactor ProductCard component to enhance clickability and visual indicators
- Updated the template structure to make the entire card clickable by wrapping the CTA button in a div instead of a NuxtLink.
- Improved the visual indication of the CTA button with clearer comments and hover effects for better user experience.
2025-11-02 09:34:38 +01:00
Bastian Masanek
d6bed8fb50 Import CheckCircle icon from lucide-vue-next in product detail demo page for enhanced visual representation 2025-11-02 09:31:07 +01:00
Bastian Masanek
e55c7613cd Add Role Switcher component to styleguide with detailed usage instructions
- Introduced RoleSwitcher component to the styleguide, allowing users to switch between different roles (individual, educator, company).
- Enhanced the styleguide with a live example, design features, and component usage instructions for better clarity and usability.
- Updated layout to include a new section for the Role Switcher, improving overall navigation and user experience.
2025-11-02 09:24:36 +01:00
Bastian Masanek
f4d47b8399 Update settings.local.json to include new browser command for Playwright integration 2025-11-02 09:23:34 +01:00
Bastian Masanek
0c875af73c Refactor RoleSwitcher component for improved clarity and consistency
- Updated role descriptions for clarity by removing unnecessary phrases.
- Enhanced template structure for better readability and consistency in styling.
- Adjusted dropdown menu width for improved layout and user experience.
2025-11-01 20:18:20 +01:00
Bastian Masanek
a826ea1344 Implement experimenta product listing page and enhance navigation components
- Added a new page for displaying experimenta annual passes, integrating ProductCard and ProductGrid components for product presentation.
- Updated API to filter products by category, allowing for specific product queries.
- Enhanced navigation components, including AreaTabs and RoleSwitcher, to improve user experience and accessibility.
- Refactored existing components for better styling consistency and responsiveness.
- Improved dropdown menu components with updated styles and hover effects for better usability.
2025-11-01 20:08:28 +01:00
Bastian Masanek
81495d5e17 Enhance navigation and UI components for improved user experience
- Added new AppHeader and BottomNav components for better navigation across the application.
- Introduced AreaTabs for product area navigation and integrated RoleSwitcher for user role management.
- Created CartButton component to display cart status and item count.
- Implemented UserMenu with login/logout functionality and user greeting.
- Added Badge component for notifications and status indicators.
- Updated layout to accommodate new navigation components and ensure mobile responsiveness.
- Created product detail demo page to showcase design patterns and features.
- Enhanced existing components with improved styling and functionality.
2025-11-01 19:51:02 +01:00
Bastian Masanek
7ab80a6635 Add product detail and listing pages with API integration
- Created a new product detail page to display individual product information, including images, descriptions, and pricing.
- Implemented a product listing page to showcase all available products using the ProductCard and ProductGrid components.
- Added API endpoints for fetching product data, ensuring only active products are returned.
- Introduced a database seed script to populate the database with initial mock product data for development and testing.
- Updated settings to include new database seeding command and adjusted routing for product links.
2025-11-01 19:07:59 +01:00
Bastian Masanek
9150af3ac2 Refactor ProductCard component for improved readability and styling consistency
- Simplified template structure by removing unnecessary line breaks and indentation.
- Enhanced badge and discount badge styles for better visual appeal.
- Updated class names for consistency and improved hover effects on buttons.
- Maintained functionality while improving code clarity and maintainability.
2025-11-01 18:26:16 +01:00
Bastian Masanek
5115a4db82 Add ProductCard and ProductGrid components for mobile-optimized product listings
- Introduced ProductCard component to display individual product details, including image, title, description, price, and optional badges.
- Added ProductGrid component to create a flexible grid layout for displaying multiple ProductCard components, supporting 1-4 columns.
- Created a demo page to showcase the ProductCard and ProductGrid components in action, highlighting their responsive design and features.
- Updated styleguide to include links and descriptions for the new components.
2025-11-01 18:19:31 +01:00
Bastian Masanek
bff23bdaa0 Add new browser resize command to settings.local.json 2025-11-01 18:19:16 +01:00
Bastian Masanek
e48f3b5ece Refactor session encryption variable names for consistency
- Changed `NUXT_SESSION_SECRET` to `NUXT_SESSION_PASSWORD` across configuration files and documentation to align with the usage in nuxt-auth-utils.
- Updated related comments and documentation to reflect the new variable name, ensuring clarity for developers and users.
2025-11-01 16:22:00 +01:00
Bastian Masanek
d231081b08 Integrate ConfigProvider to manage body scrolling behavior during modal interactions
- Added ConfigProvider component to prevent body scrolling when modals are open, enhancing user experience.
- Included comments explaining the rationale behind the scroll-body setting to avoid layout shifts caused by dropdown menus.
2025-11-01 16:13:04 +01:00
Bastian Masanek
55ff1f71e8 Add test credentials and guidelines for staging environment in CLAUDE.md 2025-11-01 15:36:33 +01:00
Bastian Masanek
cc35636d1a Implement Password Grant Flow for Authentication and Enhance User Experience
- Introduced Password Grant Flow for user authentication, allowing direct login with email and password.
- Updated `useAuth` composable to manage login and logout processes, including Single Sign-Out from Cidaas.
- Enhanced user interface with a new `UserMenu` component displaying user information and logout functionality.
- Updated homepage to show personalized greetings for logged-in users and a login prompt for guests.
- Added logout confirmation page with a countdown redirect to the homepage.
- Documented the implementation details and future enhancements for OAuth2 flows in CLAUDE.md and other relevant documentation.
- Added test credentials and guidelines for automated testing in the new TESTING.md file.
2025-11-01 15:23:08 +01:00