Conversation
- better agenetic workflows - code improvements overall
…31192517 Add claude GitHub actions 1759831192517
Phase 1 & 2 Complete: - Created admin app directory structure (apps/admin) - Set up Next.js 15 with App Router and Turbopack (port 5176) - Configured Tailwind v4 CSS-first (no config file) - Added PostCSS config with @tailwindcss/postcss - Created TypeScript config extending @buzztrip/tsconfig - Set up environment validation with @t3-oss/env-nextjs - Implemented Clerk middleware with admin role check - Added unauthorized error page for non-admin users - Created Convex auth helpers (getAuthToken, convexNextjsOptions) - Implemented backend admin helper functions (requireAdmin) - Created read-only admin queries in packages/backend/convex/admin/: * stats.ts - Overview statistics and growth metrics * users.ts - User management with aggregated stats * maps.ts - Map management with aggregated stats * charts.ts - Monthly maps and markers data for charts - Added implementation plan and TODO checklist to context/ - Moved design principles and style guide to context/ - Cleaned up old admin portal files All queries enforce admin role via publicMetadata.role === "admin" All operations are read-only (no mutations) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Phase 3: Root Layout & Providers - Created root layout with ClerkProvider and ConvexClientProvider - Set up ConvexReactClient without TanStack Query integration - Added sign-in page with Clerk SignIn component - Configured proper provider chain for authentication Phase 4: Dashboard Overview - Implemented StatCard component with growth indicators - Created MapsChart component with Recharts AreaChart - Created MarkersChart component with Recharts BarChart - Built dashboard page with: - 4 KPI stat cards (Users, Maps, Markers, Places) - Week-over-week growth percentages - 6-month trend charts for maps and markers - Used shadcn color variables for theming - Mobile responsive grid layouts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Phase 5: Users Pages - Created users list page with data table - Implemented UsersTable component with TanStack Table v8: - Sortable columns (Maps count, Markers count) - User avatar with fallback initials - Username badge display - Join date formatting - Row click navigation to detail page - Created user detail page with: - User profile card (avatar, name, email, username) - 4 stat cards (Joined date, Maps, Markers, Collaborations) - Activity summary section - Mobile responsive layouts - Used shadcn UI components throughout 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Phase 6: Maps Pages - Created maps list page with data table - Implemented MapsTable component with TanStack Table v8: - Sortable columns (Markers count, Collaborators count) - Map title with description preview - Owner name with link to user profile - Visibility badge (public/private/unlisted) - Created date formatting - Row click navigation to detail page - Created map detail page with: - Map information card (title, description, owner, visibility, dates) - 6 stat cards (Markers, Collections, Paths, Labels, Routes, Collaborators) - Links to related user profiles - Mobile responsive grid layouts - Used shadcn UI components throughout 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Phase 7: Navigation & Sidebar - Created AdminSidebar component with: - BuzzTrip branding header - Navigation menu (Dashboard, Users, Maps) - Active state highlighting based on pathname - User profile section with avatar and admin badge - Sign out button - Created AdminLayout wrapper component: - Conditionally renders sidebar (hidden on auth pages) - SidebarProvider for mobile toggle support - SidebarTrigger in header for mobile navigation - Main content area with proper spacing - Updated root layout to use AdminLayout - Mobile responsive sidebar with collapse functionality - Used shadcn Sidebar components throughout 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Backend Import Fixes: - Changed all imports from @buzztrip/backend/convex/_generated/api to @buzztrip/backend/api - Changed all imports from @buzztrip/backend/convex/_generated/dataModel to @buzztrip/backend/dataModel - Fixed relative import paths for env.ts in admin components Type Fixes: - Fixed map.updated_at → map.updatedAt (optional string) - Fixed TypeScript strict null checks in charts.ts (key in object → !== undefined) - Updated MapWithStats type to use updatedAt?: string Admin Authentication: - Updated middleware to fetch user via clerkClient and check publicMetadata.role - Updated admin-helpers.ts to access public_metadata from JWT identity - Added documentation for required Clerk JWT template configuration - Added .clerk/ to .gitignore for security Generated Files: - Updated api.d.ts to reflect new admin module structure 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Currently we aren't using the mobile app and it will need a full rewrite anyways so may as well remove it at this stage, there is a backup branch that has the mobile app in it if needed
- fixes with the ui library - package installs - convex query fixes
Step 1: Move components and delete duplicates - Moved stepper.tsx and tree.tsx from apps/web to packages/ui - Moved skeleton components (sidebar-skeleton, tabs-skeleton) to packages/ui/skeletons - Deleted entire apps/web/src/components/ui directory (48 files) - packages/ui is now the single source of truth for all UI components Next step: Update all imports to use @buzztrip/ui/* 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Step 2: Update imports and fix TypeScript errors - Updated 45 files with import changes from @/components/ui/* to @buzztrip/ui/components/* - Fixed PopoverTriggerProps and CommandInputProps type issues by using ComponentProps - Fixed Input component 'after' prop by restructuring with wrapper div - Fixed implicit any types in marker-info-box event handlers - Added @headless-tree/core dependency for tree component - All TypeScript checks passing - Build successful All apps/web code now uses the consolidated @buzztrip/ui package 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…/admin-dashbaord
Feat: admin dashboard
Feat/track map views
…ture-011CUcfZdytX459ZhvTsReXh Feat add in ability to copy / duplicate a map
…de/implement-user-profile-011CUawZDhVvBJdqm9D6XGvM
Convex module names can only contain alphanumeric chars, underscores, or periods. Renamed emails-beta.ts to emails_beta.ts and updated all references in beta.ts
- authedQuery (zCustomQuery) requires Zod validators, not Convex v.* validators - Changed checkBetaStatus returns from v.object to z.object - Changed admin queries from internalQuery to regular query with auth check - Fixed optional fields to use v.union(T, v.null()) instead of v.optional()
Changed from @/convex/_generated/api to @buzztrip/backend/api in beta pages
…011CUawZDhVvBJdqm9D6XGvM Resolve GitHub Issue 102 for BuzzTrip
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Pull Request Review - PR #108OverviewThis is a substantial PR consolidating multiple features with 10,319 additions and 69,699 deletions across 56 files. The majority of deletions come from removing legacy Cursor rules (~65k lines), which is excellent cleanup. The actual new code is well-structured and follows BuzzTrip patterns. Summary AssessmentOverall Grade: B+ ✅ Strengths:
Detailed Review by Feature1. Beta Program & Waitlist System ⭐ Grade: BStrengths:
Critical Issues: 🔴 CRITICAL: Admin Functions Lack Authorization
🔴 CRITICAL: Missing Rate Limiting
High Priority Issues: 🟡 Schema Duplication
🟡 Race Condition Error Handling
🟡 Schema Field Inconsistency
🟡 No Token Cleanup
Medium Priority: 🟠 Inconsistent date handling (sometimes timestamps, sometimes ISO strings) Code Example - Admin Auth Fix: export const getBetaUsers = zodQuery({ 2. Map Duplication Feature ⭐ Grade: B+Strengths:
Critical Issues: 🔴 Performance: Missing Pagination for Large Maps
High Priority: 🟡 Data Integrity: Silent Relationship Failures
🟡 Missing Audit Trail
Medium Priority: 🟠 Error handling could be improved with better context Recommended Improvement: const totalEntities = entityCounts.reduce((sum, arr) => sum + arr.length, 0); 3. Admin Dashboard Enhancements ⭐ Grade: A-Strengths:
Security Implementation: ✅ A+
Issues: 🟡 Performance: N+1 Query Pattern
🟠 No Server-Side Pagination
🟠 No Admin Action Audit Logging
Performance Recommendations: 4. Documentation & Developer Experience ⭐ Grade: AExcellent Work:
Impact: This is one of the best-documented codebases I've reviewed. New developers will onboard much faster. 5. Claude AI & Agent Setup ⭐ Grade: AStrengths:
Excellent Documentation:
Security Review 🔐✅ Well-Handled Security:
|
Summary
This PR consolidates major feature additions and improvements across the BuzzTrip platform, including a complete beta user enrollment system, map duplication functionality, enhanced
admin dashboard features, comprehensive documentation, and improved Claude AI/agent workflows.
🎯 Major Features
Files Added/Modified:
Files Modified:
Files Modified:
Files Added:
Files Added:
Files Added/Modified:
🔧 Technical Improvements
Backend (Convex)
Frontend
Infrastructure
🧪 Testing & Quality
📝 Documentation
Complete documentation suite added in /docs/:
🔐 Security
🚀 Deployment Notes
📊 Statistics
🔗 Related PRs
✅ Checklist
Ready for review and merge into master! 🎉