Commit Graph

29 Commits

Author SHA1 Message Date
Matt f57f6b6bb2 Fix countries export in utils/countries.ts - add lowercase alias for backward compatibility
Build And Push Image / docker (push) Successful in 2m13s Details
The ViewMemberDialog component was importing 'countries' (lowercase) but the file only exported 'COUNTRIES' (uppercase). Added an export alias to maintain backward compatibility.
2025-09-04 14:39:34 +02:00
Matt 888059a612 Implement dues reminder system with monthly payment cycle
Build And Push Image / docker (push) Failing after 1m10s Details
- Add API endpoint and email templates for dues reminders
- Change due date calculation from yearly to monthly billing
- Add visual status indicators for overdue and due-soon members
- Enhance member cards with status stripes and styling
2025-08-15 14:39:22 +02:00
Matt 503d68cd2d Replace date-fns with native date formatting and remove unused code
Build And Push Image / docker (push) Successful in 1m34s Details
Remove date-fns dependency in favor of native Intl.DateTimeFormat APIs, clean up obsolete admin endpoints, utility files, and archived documentation. Consolidate docs structure and remove unused plugins.
2025-08-14 15:08:40 +02:00
Matt 676bbc04f6 fixes
Build And Push Image / docker (push) Successful in 1m29s Details
2025-08-14 10:56:55 +02:00
Matt 2ff0c31bbd Add profile image system with MinIO storage
Build And Push Image / docker (push) Failing after 1m5s Details
- Implement ProfileAvatar component for user avatars
- Integrate MinIO for profile image storage and management
- Add profile image fields to Member type definition
- Create server utilities and API endpoints for image handling
- Replace basic avatar icon with new ProfileAvatar in dashboard
- Update sharp dependency to v0.34.3
2025-08-14 10:28:40 +02:00
Matt 4b1a77de90 Add Keycloak group management for member portal access control
Build And Push Image / docker (push) Successful in 3m53s Details
- Add portal access control section to EditMemberDialog for admins
- Implement API endpoints for managing member Keycloak groups
- Add group selection UI with user/board/admin access levels
- Enhance admin config with reload functionality
- Support real-time group synchronization and status feedback
2025-08-13 16:31:54 +02:00
Matt 62fb84d25e Add guest support for events and RSVP system
Build And Push Image / docker (push) Successful in 3m52s Details
- Add guest settings to event creation with configurable max guests per person
- Implement guest selection in RSVP form when guests are permitted
- Update API endpoints to handle guest count in RSVP requests
- Extend event and RSVP types to support guest-related fields
2025-08-13 15:14:43 +02:00
Matt d215dfedc7 db updates and fixes
Build And Push Image / docker (push) Successful in 3m59s Details
2025-08-13 13:51:27 +02:00
Matt 67d4d5236b Add NocoDB events/RSVPs table config and improve session handling
Build And Push Image / docker (push) Successful in 3m24s Details
- Add events and rsvps table ID fields to NocoDB settings dialog
- Replace mock getUserSession with proper SessionManager integration
- Improve type safety with explicit type casting and error handling
- Add comprehensive events system bug analysis documentation
2025-08-12 12:24:16 +02:00
Matt f096897129 Add event management system with calendar and CRUD operations
Build And Push Image / docker (push) Failing after 2m37s Details
- Add EventCalendar component with FullCalendar integration
- Create event CRUD dialogs and upcoming event banner
- Implement server-side events API and database utilities
- Add events dashboard page and navigation
- Improve dues calculation with better overdue day logic
- Install FullCalendar and date-fns dependencies
2025-08-12 04:25:35 +02:00
Matt abf6ade8cd Add comprehensive dues tracking with overdue calculations and enhanced UI
Build And Push Image / docker (push) Successful in 3m17s Details
2025-08-11 15:29:42 +02:00
Matt ecae3795ee Add global branding and implement member ID system
Build And Push Image / docker (push) Successful in 3m2s Details
- Add MonacoUSA logo component with global header placement
- Implement member ID generation and migration system
- Create profile page and improve dashboard navigation
- Add member ID as payment reference in dues banner
- Enable support contact functionality with pre-filled email
2025-08-10 16:49:23 +02:00
Matt 8b05fdd3d7 Add mobile Safari reload loop prevention for auth pages
Build And Push Image / docker (push) Successful in 3m2s Details
- Implement comprehensive reload loop prevention utility
- Add initialization checks to setup-password, verify, and signup pages
- Include timeout protection and error handling for config loading
- Add fallback defaults to prevent page failures on mobile devices
- Document mobile reload loop prevention system
2025-08-10 16:21:54 +02:00
Matt 86977ca92a Fix mobile Safari reload loop by persisting config cache in window object
Build And Push Image / docker (push) Successful in 2m56s Details
- Store config cache in window.__configCache instead of module-level variable to maintain persistence across Vue reactivity cycles
- Fix cardClasses ref to store computed value instead of function
- Add client plugin for config cache initialization
- Add documentation for mobile Safari reload loop fix
2025-08-10 16:09:15 +02:00
Matt 62be77ec34 Add circuit breaker pattern to email verification system
Build And Push Image / docker (push) Successful in 2m53s Details
Implement rate limiting and attempt tracking to prevent verification abuse and infinite reload loops. Add temporary blocking with clear user feedback, enhanced error states, and retry logic. Includes new verification state utilities and improved UI components for better user experience during blocked states.
2025-08-10 15:48:11 +02:00
Matt 30136117ce Fix Safari iOS reload loop with static device detection and caching
Build And Push Image / docker (push) Successful in 3m7s Details
- Replace reactive device detection with static utilities to prevent
  infinite reload loops on mobile Safari
- Add static-device-detection.ts for one-time device info computation
- Add config-cache.ts for improved configuration loading performance
- Apply mobile Safari viewport and CSS optimizations across auth pages
- Remove reactive dependencies that caused rendering issues on iOS
2025-08-10 15:18:34 +02:00
Matt 2eaf9cda95 Refactor mobile detection to use built-in Nuxt device module
Build And Push Image / docker (push) Failing after 2m27s Details
Replace custom useMobileDetection composable with Nuxt's useDevice(),
removing reactive mobile detection in favor of static detection to
prevent reload loops and simplify viewport handling
2025-08-10 14:38:02 +02:00
Matt 44cdc988ee Add Mobile Safari optimizations and fixes to signup page
Build And Push Image / docker (push) Successful in 3m10s Details
- Implement device detection and performance optimization flags
- Add dynamic CSS classes based on device capabilities
- Create mobile safari utility functions and client plugin
- Optimize backdrop filters and hardware acceleration for iOS
- Fix viewport height issues with mobile Safari fallbacks
- Update membership fee config and add IBAN payment details
- Prevent horizontal scrolling and improve mobile UX
2025-08-09 18:36:10 +02:00
Matt 4ec05e29dc Add email verification system for user registration
Build And Push Image / docker (push) Successful in 3m1s Details
- Add SMTP configuration UI in admin panel with test functionality
- Implement email verification workflow with tokens and templates
- Add verification success/expired pages for user feedback
- Include nodemailer, handlebars, and JWT dependencies
- Create API endpoints for email config, testing, and verification
2025-08-08 22:51:14 +02:00
Matt 5535b7905d #### __1. Role-Based Security Architecture__
Build And Push Image / docker (push) Successful in 2m58s Details
- Replaces group-based tiers with proper Keycloak realm roles
- `monaco-user`, `monaco-board`, `monaco-admin` roles
- Backward compatibility with existing group system

#### __2. Advanced User Management__

- Comprehensive user profile synchronization
- Membership data stored in Keycloak user attributes
- Bidirectional sync between NocoDB and Keycloak

#### __3. Session Security & Monitoring__

- Real-time session tracking and management
- Administrative session control capabilities
- Enhanced security analytics foundation

#### __4. Email Workflow System__

- Multiple email types: DUES_REMINDER, MEMBERSHIP_RENEWAL, WELCOME, VERIFICATION
- Customizable email parameters and lifespans
- Advanced email template support

#### __5. Seamless Migration Path__

- All existing functionality continues to work
- New users automatically get realm roles
- Gradual migration from groups to roles
- Zero breaking changes

### 🔧 __What You Can Do Now__

#### __For New Users:__

- Public registrations automatically assign `monaco-user` role
- Portal account creation syncs member data to Keycloak attributes
- Enhanced email verification and welcome workflows

#### __For Administrators:__

- Session management and monitoring capabilities
- Advanced user profile management with member data sync
- Comprehensive role assignment and management
- Enhanced email communication workflows

#### __For Developers:__

- Use `hasRole('monaco-admin')` for role-based checks
- Access `getAllRoles()` for debugging and analytics
- Enhanced `useAuth()` composable with backward compatibility
- Comprehensive TypeScript support throughout

### 🛡️ __Security & Reliability__

- __Backward Compatibility__: Existing users continue to work seamlessly
- __Enhanced Security__: Proper realm role-based authorization
- __Error Handling__: Comprehensive error handling and fallbacks
- __Type Safety__: Full TypeScript support throughout the system
2025-08-08 19:40:13 +02:00
Matt b308b8272c updates to database schema
Build And Push Image / docker (push) Successful in 2m50s Details
2025-08-08 18:32:46 +02:00
Matt d36209818a Migrate member fields to snake_case naming convention
Build And Push Image / docker (push) Successful in 3m11s Details
Convert field names from space-separated format to snake_case across
member API endpoints and validation logic. Add migration guide for
reference.
2025-08-07 21:50:02 +02:00
Matt f096a22824 Enhance CountryFlag to accept country names and codes
Build And Push Image / docker (push) Successful in 3m20s Details
- Add actualCountryCode computed property to handle both 2-letter codes and country names
- Extend parseCountryInput with common country name variations (USA, UK, etc.)
- Import parseCountryInput utility in CountryFlag component
- Update template to use actualCountryCode instead of direct countryCode prop
2025-08-07 21:30:47 +02:00
Matt 22a74c6b33 Refactor NocoDB settings to support dynamic table configuration and update related validation
Build And Push Image / docker (push) Successful in 3m13s Details
2025-08-07 20:43:39 +02:00
Matt af99ea48e2 Add member management system with NocoDB integration
Build And Push Image / docker (push) Successful in 3m5s Details
- Add member CRUD operations with API endpoints
- Implement member list page with card-based layout
- Add member creation and viewing dialogs
- Support multiple nationalities with country flags
- Include phone number input with international formatting
- Integrate NocoDB as backend database
- Add comprehensive member data types and utilities
2025-08-07 19:20:29 +02:00
Matt c84442433f Refactor password reset to use dedicated Keycloak admin client
Build And Push Image / docker (push) Successful in 2m55s Details
- Add Keycloak admin credentials configuration to environment variables
- Extract Keycloak admin operations into reusable utility module
- Refactor forgot-password endpoint to use new admin client utility
- Add documentation for Keycloak custom login implementation
- Add password reset fix summary documentation

This improves code organization by separating admin operations from
business logic and provides proper admin credentials for Keycloak
API operations instead of using regular client credentials.
2025-08-07 17:50:09 +02:00
Matt 146b3c9400 feat: enhance mobile compatibility and debugging across authentication and system metrics
Build And Push Image / docker (push) Successful in 3m18s Details
2025-08-07 16:08:39 +02:00
Matt cd29123e23 Refactor authentication system with tier-based access control
Build And Push Image / docker (push) Successful in 2m59s Details
- Replace group-based auth with user/board/admin tier system
- Add direct login functionality alongside OAuth
- Implement role-based middleware for route protection
- Create dashboard pages and admin API endpoints
- Add error handling page and improved user management
- Maintain backward compatibility with legacy role methods
2025-08-07 12:28:41 +02:00
Matt 024d0da617 Initialize Nuxt.js project with Docker deployment setup
- Add core Nuxt.js application structure with TypeScript
- Include Docker configuration and deployment guide
- Set up project scaffolding with pages, composables, and middleware
- Add environment configuration and Git ignore rules
2025-08-06 14:31:16 +02:00