Commit graph

263 commits

Author SHA1 Message Date
Randall Stillwell
083c4f61ac 🔧 Streamlined Login Experience
Fixed confusing dual login experience by:

 Consolidated Multiple Login Elements:
- Removed confusing 'Fill Admin Credentials' button
- Removed separate Admin Info Card with hardcoded credentials
- Replaced with clean, organized quick login section

🧪 Improved Testing UX:
- Added 3 quick login buttons: Admin, Alice, Bob
- Clear labeling with role indicators (👑 Admin, 👤 Users)
- Grid layout for organized presentation
- Unified handleQuickLogin function

🎯 Cleaner Interface:
- Single, clear login form as primary method
- Quick testing buttons as secondary option
- Removed broken 'Sign up' link (no register page yet)
- Better messaging and user guidance

🚀 Result:
- One clear login page with primary form
- Organized testing section with all accounts
- No more confusion about multiple login methods
- Better UX for both testing and production use

Ready for streamlined testing workflow! 🎮
2025-07-25 10:47:09 -05:00
Randall Stillwell
72de168fc6 🎯 Complete Testing Workflow Setup
 Database & API Fixes:
- Fixed collection detail API to use correct column names (card_type, market_price, image_url)
- Removed all mock data and fallbacks
- Updated field mappings throughout collection detail page
- Fixed hero section to use real collection data with proper image support

�� Test Users Created:
- admin@tcgvault.com / admin123 (Admin)
- alice@tcgvault.com / alice123 (User)
- bob@tcgvault.com / bob123 (User)

🃏 Sample Cards Added:
- Lightning Bolt (MTG) - $2.50
- Black Lotus (MTG) - $25,000
- Pikachu (Pokemon) - $8.50
- Charizard (Pokemon) - $350
- Mickey Mouse (Lorcana) - $45
- Elsa (Lorcana) - $15.75

🔧 Collaboration Features:
- Added CollaborationManager to collection detail page
- Integrated real user permissions (isOwner check)
- Updated hero section with real stats and creator info

🔍 Card Management:
- Created cards search API (/api/cards/search)
- Implemented quick add functionality in empty state
- Real-time card search with dropdown results
- Add cards directly to collection with quantity

�� Ready for Testing:
1. Login as any user to see only their collections
2. Create collections with real data
3. Add cards using search functionality
4. Invite collaborators via email system
5. Switch users to test collaboration workflow

Complete end-to-end testing environment ready! 🚀
2025-07-25 10:42:00 -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
af7593d884 Enhanced Collections UI with API Integration
🎯 Collections Page Improvements:
- Removed TCG selection from creation modal
- Added image URL field for collection hero images
- Changed public checkbox to visibility dropdown (Private/Invite-Only/Public)
- Added success modal with navigation to created collection
- Integrated real API calls for creating and fetching collections
- Added Permission indicators throughout the interface

🃏 Collection Detail Page Enhancements:
- Created comprehensive empty state for new collections
- Added 'Browse Cards to Add' call-to-action button
- Included quick add search functionality
- Improved filtered results empty state with clear filters option
- Integrated API calls for real collection data
- Distinguished between empty collection vs no search results

🗄️ Database & API Updates:
- Added image column to collections table
- Updated collections API to handle image field
- Enhanced API to return proper collection data structure
- Added fallback to mock data for development

🎨 User Experience:
- Beautiful success confirmation after collection creation
- Direct navigation to newly created collection
- Clear visual distinction between different empty states
- Intuitive call-to-action buttons for collection building
- Permission badges visible on collection cards

Ready for users to create collections with images and start building their card collections! 🚀
2025-07-25 10:06:39 -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
Randall Stillwell
be67815cab Added comprehensive user management scripts
- Created list-users.js to display all users with roles and details
- Added promote-user-to-admin.js to elevate regular users to admin
- Added demote-admin-to-user.js with safety check for last admin
- All scripts use proper ES modules and dotenv for environment loading
- Scripts validate user existence and current roles before operations
- Added detailed documentation to scripts/README.md
- Includes user-friendly output with emojis and clear status messages
- Tested promotion functionality successfully
- Maintains database integrity with proper error handling
2025-07-24 20:03:31 -05:00
Randall Stillwell
3bb1c9357a Fixed authentication API endpoints and login functionality
- Updated login and register APIs to use proper Vercel Postgres imports
- Fixed database queries to use sql template literal syntax
- Replaced old auth-utils imports with direct bcrypt and jwt usage
- Consistent JWT token generation across login and register endpoints
- Removed debugging console.log statements
- Login API now returns 200 with proper user data and JWT token
- All authentication endpoints working correctly with Neon database
- Login flow redirects properly to dashboard/admin based on user role
2025-07-24 19:57:19 -05:00
Randall Stillwell
3478932c3c Fixed SSR and null user issues for production deployment
- Made admin pages client-side only using dynamic imports to prevent SSR issues
- Added proper null checks in Layout component to handle guest users
- Updated AdminProtected to support render prop pattern for user data
- Fixed card-editor and card-import pages to use proper authentication flow
- Eliminated hardcoded user data that was causing build failures
- All pages now build successfully and handle null user states gracefully
- Production deployment should now work without SSR errors
2025-07-24 17:04:06 -05:00
Randall Stillwell
53423509f0 Integrated real database authentication with JWT tokens
- Updated auth verification to use Neon database instead of mock data
- Implemented proper JWT token authentication with localStorage storage
- Created beautiful login page with admin quick-login for development
- Updated all admin auth hooks to use JWT tokens from localStorage
- Added automatic token cleanup on authentication failures
- Enhanced AdminProtected component with proper token validation
- Created logout functionality that clears tokens and redirects
- Maintained fallback admin access for development (no token = admin)
- Real admin credentials: admin@tcgvault.com / admin123
- Seamless integration with existing admin card editor workflow
2025-07-24 16:36:10 -05:00
Randall Stillwell
0d6c6f1957 Implemented admin authentication and seamless card editing
- Created admin authentication system with useIsAdmin hook
- Added AdminProtected component for route protection
- Added prominent 'Edit Card (Admin)' button on card detail pages
- Protected all admin routes (/admin/*) with authentication
- Added admin navigation item to main layout sidebar
- Updated auth verification API to return mock admin user
- Integrated admin edit button that redirects to card editor with card ID
- Added proper access denied page for non-admin users
- Admin-only features now show/hide based on user role
- Seamless workflow: spot incorrect card → click edit → fix immediately
2025-07-24 16:31:29 -05:00
Randall Stillwell
f27a7333db Created comprehensive admin card editor
- Built complete admin interface for editing all card properties
- Added card search functionality with live results
- Created comprehensive form with sections for:
  * Basic information (name, game, set, rarity, etc.)
  * Game mechanics (type, mana cost, power/toughness, colors)
  * Card text and oracle text
  * Image URLs (primary and stock images)
  * Pricing information (current and market prices)
- Added real-time card preview that updates as you edit
- Implemented PUT API endpoint for updating cards
- Added proper validation and error handling
- Added database schema updates (updated_at column)
- Integrated admin navigation between card editor and import tools
- Full responsive design with modern UI components
- Live search with card thumbnails and metadata
- Proper form state management and data persistence
2025-07-24 15:16:57 -05:00
Randall Stillwell
bb60b4f6b0 Enhanced card detail page with real data and functionality
- Updated card detail page to fetch real data from API
- Added ownership tracking with quantity management
- Added favorite system for cards
- Added collection and deck management functionality
- Created API endpoints for ownership, favorites, collections, and decks
- Added database columns for quantity and favorited status
- Shows current collections and decks the card belongs to
- Added proper error handling and loading states
- Integrated with real card data from database
- Added purchase links to TCGPlayer and eBay
2025-07-24 15:03:09 -05:00
Randall Stillwell
73a0c652b2 Fix card sizing consistency across all TCGs
- Added wrapper div with max-width constraint to ensure consistent card sizes
- Updated image rendering to use object-cover with proper positioning
- Removed maxWidth from Card3D component since it's now handled by wrapper
- Ensures all cards (MTG, Pokemon, Lorcana) have identical dimensions
- Fixed responsive grid layout to maintain consistent card sizes
2025-07-24 14:54:12 -05:00
Randall Stillwell
e046515a38 Add real Lorcana import using Lorcast API
- Replaced mock Lorcana import with real API integration
- Uses Lorcast API (https://api.lorcast.com/v0/cards/search) for comprehensive card data
- Added proper set code mapping (tfc->1, rotf->2, ink->3)
- Includes card images, prices, stats, and detailed metadata
- Created dedicated Lorcana import scripts for standalone use
- Maintains duplicate checking and proper error handling
- Supports all 3 Lorcana sets: The First Chapter, Rise of the Floodborn, Into the Inklands
2025-07-24 12:27:10 -05:00
Randall Stillwell
b6f76297bc Fix import issues: Add retry logic and better error handling
- Added retry logic with exponential backoff for Pokemon API calls
- Created Lorcana import endpoint with placeholder data
- Improved error handling for 504 timeouts and 404 not found errors
- Added longer delays for Pokemon imports to avoid rate limiting
- Enhanced logging for better debugging of import issues
- Fixed response parsing to handle different API response formats
2025-07-24 10:30:21 -05:00
Randall Stillwell
72c70c2248 Update .gitignore to exclude .next directory 2025-07-23 21:27:11 -05:00
Randall Stillwell
e75a4a6649 Major redesign: Enhanced card display with particle effects, improved filters, and search functionality
- Redesigned card display with 2.5:3.5 aspect ratio and image-only view
- Added infinite scroll to replace pagination
- Implemented authentic card back placeholders for MTG, Pokemon, and Lorcana
- Added rarity-based particle effects with tiered intensity (mythic/enchanted/rare/uncommon)
- Enhanced hover details panel with structured card information
- Fixed search functionality with debouncing and Enter key support
- Improved filter system with working TCG, rarity, set, and price filters
- Added favorite system for cards in both hover and detail views
- Updated card detail page with comprehensive metadata and actions
- Fixed API filtering with proper Vercel Postgres implementation
- Added particle animations and rarity glow effects
- Improved overall UX with better visual hierarchy and interactions
2025-07-23 21:26:54 -05:00
Randall Stillwell
c218dd53ac Add simple API test without dependencies 2025-07-23 09:42:30 -05:00
Randall Stillwell
dc419f681b Add database connection test API 2025-07-23 09:41:38 -05:00
Randall Stillwell
373f103810 Fix bcryptjs imports to use dynamic imports 2025-07-23 09:40:50 -05:00
Randall Stillwell
20c2439ff4 Add database setup API to create tables 2025-07-23 09:39:22 -05:00
Randall Stillwell
83776bc6be Add authentication system and admin API endpoints 2025-07-23 09:38:16 -05:00
Randall Stillwell
2f94044832 Remove broken migration script that references deleted files 2025-07-23 09:34:37 -05:00
Randall Stillwell
f7e65bc21d Fix TypeScript moduleResolution for build compatibility 2025-07-23 09:33:36 -05:00
Randall Stillwell
7be41b4490 Clean slate: Remove React traces and create pure Next.js setup 2025-07-23 09:32:31 -05:00
Randall Stillwell
2d4c4963b8 Simplify Vercel config to resolve API routing issues 2025-07-23 09:22:14 -05:00
Randall Stillwell
b4e011e8fa Add minimal health check API 2025-07-23 09:21:29 -05:00
Randall Stillwell
b5e547df7b Force fresh deployment to resolve configuration mismatch 2025-07-23 09:19:11 -05:00
Randall Stillwell
a528676f37 Add require() postgres test and update Vercel config 2025-07-23 08:53:08 -05:00
Randall Stillwell
dda057c1d6 Add basic test API without external dependencies 2025-07-23 08:51:59 -05:00
Randall Stillwell
07f8e49924 Add dynamic postgres import test and clean npm install 2025-07-23 08:50:51 -05:00
Randall Stillwell
339fb6f910 Update @vercel/postgres to latest version and add test APIs 2025-07-23 08:49:05 -05:00
Randall Stillwell
41a7eeef12 Fix API import paths and convert to Next.js Pages API format 2025-07-23 08:40:30 -05:00
Randall Stillwell
df48fd784d Add simple Next.js API route 2025-07-23 08:32:03 -05:00
Randall Stillwell
9a86a5a834 Remove conflicting React app files to ensure Next.js deployment 2025-07-23 08:31:15 -05:00
Randall Stillwell
26dd9bea50 Add explicit Next.js framework configuration to vercel.json 2025-07-23 08:30:44 -05:00
Randall Stillwell
4f9575dc49 Force rebuild by removing .next directory 2025-07-23 08:30:03 -05:00
Randall Stillwell
3c9388a56e Update Vercel config for Next.js app 2025-07-23 08:29:39 -05:00
Randall Stillwell
5737c6e1f0 Add simple test API 2025-07-23 08:29:09 -05:00
Randall Stillwell
e49ada09ba Convert admin API to Next.js Pages API format 2025-07-23 08:28:42 -05:00
Randall Stillwell
2cc332e0a0 Move API routes to pages/api/ for proper Next.js structure 2025-07-23 08:27:14 -05:00
Randall Stillwell
873f4592c2 Convert from React to Next.js for proper API route support 2025-07-23 08:25:58 -05:00
Randall Stillwell
09bb380da6 Add simple test API to isolate the issue 2025-07-23 08:22:39 -05:00
Randall Stillwell
16228f8fa0 Add test endpoint and better error handling for database issues 2025-07-23 08:22:16 -05:00
Randall Stillwell
df5b3bfc44 Temporarily bypass auth for testing admin API 2025-07-23 08:21:46 -05:00
Randall Stillwell
8d7eb67a97 Fix auth imports and add proper admin access control - create auth-utils.js with verifyToken function 2025-07-23 07:05:14 -05:00
Randall Stillwell
49cfa31253 Consolidate API functions to stay within Vercel Hobby plan limits - reduce from 12+ to 8 functions 2025-07-23 06:57:22 -05:00
Randall Stillwell
7057417a89 Implement database-based card loading system - add card loader API, database search, and admin interface 2025-07-23 06:50:44 -05:00
Randall Stillwell
ee67b05e28 Improve Lorcana card data parsing - add comprehensive field mapping and debugging 2025-07-23 06:40:02 -05:00