Commit graph

5 commits

Author SHA1 Message Date
Randall Stillwell
50a3156b92 🔗 Implement Collection Slug URLs
🎯 Vanity URLs for Collections:
- Added slug-based URLs like /collection/modern-masters-2021
- Backwards compatible with numeric IDs
- SEO-friendly and memorable URLs

🛠️ Slug System:
- Created lib/slug-utils.js with slug generation and validation
- generateSlug() converts names to URL-friendly format
- generateUniqueSlug() handles duplicates with numeric suffixes
- isValidSlug() validates format (lowercase, hyphens, no special chars)

📊 Database Schema:
- Added slug column to collections table with unique constraint
- Migration script adds slugs to existing collections
- Database constraints ensure slug format and uniqueness
- Performance index on slug column

🔌 API Updates:
- Updated collections API to generate slugs for new collections
- New [identifier].js endpoint handles both slugs and IDs
- Thumbnails API supports both slug and ID lookups
- Smart identifier detection (slug vs numeric ID)

🎨 Frontend Integration:
- Collections page uses slugs for navigation
- Fallback to ID if slug not available (backwards compatibility)
- Updated all collection links to use slugs
- Sample collections created with proper slugs

 URL Examples:
- /collection/modern-masters-2021 (new slug format)
- /collection/123 (old ID format still works)
- Automatic redirect potential for future

The collection URLs are now beautiful and shareable! 🚀
2025-07-26 22:06:52 -05:00
Randall Stillwell
b95d972e95 🎨 Redesign Collections Page with Card Thumbnails
📱 Layout Improvements:
- Removed TCG grouping for cleaner, unified view
- Added responsive grid layout (1-4 columns based on screen size)
- Implemented proper sorting options (name, value, card count, date)
- Moved metadata below thumbnails for better visual hierarchy

🖼️ Beautiful Card Thumbnails:
- Created CollectionThumbnail component with 2/3 + 1/3 layout
- Main card (rarest) displayed prominently with rarity glow effects
- Grid of 4 additional cards in smaller tiles
- Card name and rarity overlays on main card
- Fallback to hero image if user uploads custom thumbnail
- Elegant placeholder for empty collections

🔧 Enhanced Functionality:
- Smart thumbnail API fetches top 5 rarest cards by rarity priority
- Rarity ordering: mythic > legendary > rare > uncommon > common
- Secondary sorting by market price and name
- Proper access control for collection thumbnails
- Hover effects reveal edit/delete buttons

💅 Visual Polish:
- Compact stats display (cards count + value + date)
- Less prominent metadata positioning
- Improved spacing and typography
- Fire-themed color scheme throughout
- Smooth hover transitions and interactions
- Better mobile responsiveness

🎯 User Experience:
- Intuitive sorting controls in header
- Search functionality maintained
- Quick access to collection actions
- Visual feedback for empty states
- Consistent with Deck Hearth branding

The collections page now showcases beautiful card thumbnails that highlight the rarest cards in each collection! 🔥
2025-07-26 21:51:58 -05:00
Randall Stillwell
b917972f5e 🔄 Simplified Permission Model & UX Improvements
🎯 Cleaner Permission System:
- Collections are private/invite-only by default
- Public toggle only controls community visibility (not edit permissions)
- Simplified to: Creator + Invited Collaborators can edit, everyone else view-only
- Only creator can delete collections

📝 UI/UX Enhancements:
- Changed 'Invite User' to 'Invite Collaborator' with clearer messaging
- Replaced visibility dropdown with clean public/private toggle
- Updated role descriptions: 'Collaborator' (editor) and 'Viewer'
- Default invitation role is now 'editor' (collaborator)
- Added explanatory text about collaboration purpose

🔐 Permission Logic Updates:
- Public collections: visible in community but invite-only editing
- Private collections: hidden from community, invite-only editing
- Removed complex visibility states (invite-only/private distinction)
- Updated permission middleware for simplified model

📧 Email Template Updates:
- Clearer role descriptions in invitation emails
- Focus on collaboration and card management permissions
- Removed owner role from invitation options

🗄️ Database Schema Updates:
- Updated APIs to use is_public boolean instead of visibility enum
- Maintained backward compatibility with existing data
- Simplified permission checking logic

The system now has a much cleaner UX: collections are collaborative workspaces that can optionally be made visible to the community! 🚀
2025-07-25 10:29:45 -05:00
Randall Stillwell
23d995102f 🎉 COMPLETED: Full Collaborative Collections System
 ALL FEATURES IMPLEMENTED:

🔐 Advanced Permission System:
- Role-based access control (Owner/Editor/Viewer)
- Permission middleware for all API endpoints
- Granular permissions for collection operations
- Activity logging for complete audit trails

🌍 Collection Visibility Types:
- Private: Owner-only access
- Invite-Only: Controlled collaboration
- Public: Community accessible
- Dynamic permission checking across all endpoints

📧 Complete Email Integration:
- Beautiful HTML invitation templates
- Role-based permission descriptions
- Personal message support
- Accept/decline workflow with proper UX
- Bulk invitation system for multiple users

🎨 Rich User Interface:
- Permission indicators with tooltips
- Activity log component with real-time updates
- Collaboration management dashboard
- Bulk invite modal with batch processing
- Permission gates throughout the UI

 Performance & Security:
- Database indexes for optimal queries
- Comprehensive error handling
- CORS headers and preflight support
- JWT-based authentication integration
- Cascading deletes and data integrity

🚀 Ready for Production:
- All API endpoints protected with permissions
- Complete activity logging system
- Beautiful email templates with Resend
- Responsive UI components
- Error handling and loading states

This system now provides enterprise-level collaboration features for community-driven collection building! 🎯
2025-07-25 08:34:28 -05:00
Randall Stillwell
00853fe499 Enhanced collections with detailed view and card management
- Created comprehensive collection detail page (/collection/[id]) with:
  * Hero section with collection metadata (name, creator, format, cost)
  * Action buttons (copy link, share, print proxies, save deck)
  * Collection statistics (total cards, value, views, favorites)
  * Advanced filtering and search functionality
  * Grid and list view modes for cards
  * Real-time card filtering by rarity, type, and search terms

- Added complete API endpoints for collection management:
  * GET/PUT/DELETE /api/collections/[id] - collection CRUD operations
  * POST/PUT/DELETE /api/collections/[id]/cards - card management
  * Enhanced /api/collections with database integration

- Features matching deck builder interface from image:
  * Beautiful hero section with background image
  * Metadata display (creator, format, cost, play guide)
  * Copy/share/save functionality
  * Comprehensive filtering system
  * Responsive card grid and list views
  * Real-time statistics and card counting

- Updated collections listing page to link to detailed views
- Proper error handling and loading states throughout
- Mobile-responsive design with modern UI/UX
2025-07-25 07:44:23 -05:00