# TAKEONE Admin Panel Implementation TODO ## Project Overview Building a comprehensive Laravel-based admin panel for multi-club sports management platform. **Tech Stack:** Laravel 12, Blade Templates, Bootstrap 5, Tailwind CSS, PostgreSQL/MySQL **Start Date:** 2026-01-25 **Status:** In Progress --- ## Phase 1: Database Schema Expansion ⏳ ### Core Admin Tables - [ ] Create roles and permissions tables migration - [ ] Expand tenants (clubs) table with all required fields - [ ] Create club facilities table - [ ] Create club instructors table - [ ] Create club activities table - [ ] Create club packages table - [ ] Create club package activities (pivot) table - [ ] Create club member subscriptions table - [ ] Create club transactions table - [ ] Create club gallery images table - [ ] Create club social links table - [ ] Create club bank accounts table (encrypted) - [ ] Create club messages table - [ ] Create club reviews table - [ ] Create club settings table --- ## Phase 2: Models & Relationships ### Eloquent Models - [ ] Role model - [ ] Permission model - [ ] ClubFacility model - [ ] ClubInstructor model - [ ] ClubActivity model - [ ] ClubPackage model - [ ] ClubMemberSubscription model - [ ] ClubTransaction model - [ ] ClubGalleryImage model - [ ] ClubSocialLink model - [ ] ClubBankAccount model - [ ] ClubMessage model - [ ] ClubReview model - [ ] ClubSettings model - [ ] Update Tenant model with new relationships - [ ] Update User model with admin relationships --- ## Phase 3: Role-Based Access Control (RBAC) ### Authorization System - [ ] Create role middleware - [ ] Create permission middleware - [ ] Create policy classes for all models - [ ] Create role seeder (Super Admin, Club Admin, Instructor, Member) - [ ] Create permission seeder - [ ] Add helper functions for role checking - [ ] Update User model with role methods --- ## Phase 4: Platform-Level Admin (PRIORITY) ### Routes - [ ] Platform admin routes group - [ ] All clubs management routes - [ ] All members management routes - [ ] Database backup/restore routes ### Controllers - [ ] Admin\PlatformController - [ ] Dashboard overview - [ ] Statistics and analytics - [ ] Admin\ClubManagementController - [ ] Index (all clubs grid) - [ ] Create new club - [ ] Edit club - [ ] Delete club - [ ] Search/filter clubs - [ ] Admin\MemberManagementController - [ ] Index (all members grid) - [ ] Create member - [ ] Edit member - [ ] Delete member - [ ] Search/filter members - [ ] Add child member - [ ] Admin\BackupController - [ ] Download database backup (JSON) - [ ] Restore database from backup - [ ] Export auth users ### Views (Blade Templates) - [ ] layouts/admin.blade.php (platform admin layout) - [ ] admin/dashboard.blade.php - [ ] admin/clubs/index.blade.php (grid view) - [ ] admin/clubs/create.blade.php - [ ] admin/clubs/edit.blade.php - [ ] admin/members/index.blade.php (grid view) - [ ] admin/members/create.blade.php - [ ] admin/members/edit.blade.php - [ ] admin/backup/index.blade.php --- ## Phase 5: Club-Level Admin Dashboard ### Routes - [ ] Club admin routes group (/club/{slug}/admin) - [ ] Dashboard routes - [ ] Club details routes (multi-tab) - [ ] Gallery routes - [ ] Facilities routes - [ ] Instructors routes - [ ] Activities routes - [ ] Packages routes - [ ] Members routes - [ ] Financials routes - [ ] Messages routes - [ ] Analytics routes ### Controllers - [ ] Club\DashboardController - [ ] Club\ClubDetailsController - [ ] Club\GalleryController - [ ] Club\FacilityController - [ ] Club\InstructorController - [ ] Club\ActivityController - [ ] Club\PackageController - [ ] Club\MemberController - [ ] Club\FinancialController - [ ] Club\MessageController - [ ] Club\AnalyticsController ### Views (Blade Templates) - [ ] layouts/club-admin.blade.php (with sidebar) - [ ] club/admin/dashboard.blade.php - [ ] club/admin/details/index.blade.php (tabs) - [ ] club/admin/gallery/index.blade.php - [ ] club/admin/facilities/index.blade.php - [ ] club/admin/instructors/index.blade.php - [ ] club/admin/activities/index.blade.php - [ ] club/admin/packages/index.blade.php - [ ] club/admin/members/index.blade.php - [ ] club/admin/financials/index.blade.php - [ ] club/admin/messages/index.blade.php - [ ] club/admin/analytics/index.blade.php --- ## Phase 6: Core Features Implementation ### Multi-Currency Support - [ ] Create currency dropdown component - [ ] Add currency helper functions - [ ] Store currency in club settings - [ ] Display prices in club currency ### Multi-Timezone Support - [ ] Create timezone dropdown component - [ ] Add timezone helper functions - [ ] Store timezone in club settings - [ ] Display times in club timezone ### File Upload & Management - [ ] Configure storage (S3 or local) - [ ] Image optimization on upload - [ ] Gallery management CRUD - [ ] File deletion handling ### Financial System - [ ] Transaction ledger view - [ ] Income tracking - [ ] Expense tracking - [ ] Refund handling - [ ] Financial reports - [ ] CSV export functionality - [ ] Charts (Chart.js integration) ### Backup & Restore - [ ] JSON export of all tables - [ ] Secure backup storage - [ ] Restore functionality - [ ] Validation on restore - [ ] Export auth users with encrypted passwords ### Analytics Dashboard - [ ] Member growth chart - [ ] Revenue trends chart - [ ] Package popularity metrics - [ ] Activity attendance rates - [ ] Instructor performance metrics - [ ] Member retention rates - [ ] Financial health indicators ### Messaging System - [ ] Inbox/conversation list - [ ] Message thread view - [ ] Send message functionality - [ ] Mark as read/unread - [ ] Notification integration --- ## Phase 7: Additional Features ### Club Details Management - [ ] Basic information tab - [ ] Contact information tab - [ ] Location & GPS tab (with map) - [ ] Branding assets tab - [ ] Social media links tab - [ ] Banking tab (encrypted) - [ ] Settings tab (code prefixes) - [ ] Danger zone (delete club) ### Gallery Management - [ ] Grid display of images - [ ] Multiple image upload - [ ] Lightbox view - [ ] Delete images - [ ] Image captions ### Facilities Management - [ ] Card-based layout - [ ] Add facility - [ ] Edit facility - [ ] Delete facility - [ ] GPS location on map - [ ] Availability status ### Instructors Management - [ ] Card layout - [ ] Add instructor - [ ] Edit instructor - [ ] Delete instructor - [ ] Skills/specialties tags - [ ] Rating system - [ ] Search/filter ### Activities Management - [ ] Grid of activity cards - [ ] Add activity - [ ] Edit activity - [ ] Delete activity - [ ] Duplicate activity - [ ] Schedule management - [ ] Facility assignment ### Packages Management - [ ] Large card layout - [ ] Add package - [ ] Edit package - [ ] Delete package - [ ] Duplicate package - [ ] Single/Multi activity types - [ ] Age range configuration - [ ] Price management - [ ] Activity inclusion ### Members Management - [ ] Current members tab - [ ] Pending requests tab - [ ] Status filters - [ ] Add existing user - [ ] Walk-in registration - [ ] Member invitation system - [ ] Subscription management --- ## Phase 8: Components & Reusables ### Blade Components - [ ] Country dropdown component - [ ] Currency dropdown component - [ ] Timezone dropdown component - [ ] Phone code dropdown component - [ ] Nationality dropdown component - [ ] Image upload modal component - [ ] Confirmation modal component - [ ] Stats card component - [ ] Chart component wrapper --- ## Phase 9: Testing & Quality Assurance ### Tests - [ ] Feature tests for platform admin - [ ] Feature tests for club admin - [ ] Policy tests - [ ] Model tests - [ ] Controller tests - [ ] Validation tests ### Seeders - [ ] Role and permission seeder - [ ] Demo clubs seeder - [ ] Demo members seeder - [ ] Demo packages seeder - [ ] Demo transactions seeder ### Code Quality - [ ] Run Laravel Pint (code formatting) - [ ] Security audit (CSRF, XSS, SQL injection) - [ ] Performance optimization (caching, eager loading) - [ ] Database indexing - [ ] Query optimization --- ## Phase 10: Documentation & Deployment ### Documentation - [ ] API documentation - [ ] Admin user guide - [ ] Installation guide - [ ] Deployment guide - [ ] Database schema documentation ### Deployment Preparation - [ ] Environment configuration - [ ] Storage setup - [ ] Backup automation - [ ] SSL certificates - [ ] Performance monitoring - [ ] Error logging --- ## Current Progress **Phase 1:** Not Started **Phase 2:** Not Started **Phase 3:** Not Started **Phase 4:** Not Started (PRIORITY) **Overall:** 0% Complete --- ## Notes - Using Blade templates (not React) for consistency with existing codebase - Bootstrap 5 + custom soft purple theme - All club-specific tables have tenant_id foreign key - Soft deletes on important records - Encrypted storage for bank account information - Multi-currency support with BHD as default - Multi-timezone handling - File upload with image optimization - Role-based access control throughout --- ## Next Steps 1. Create all database migrations (Phase 1) 2. Create all Eloquent models (Phase 2) 3. Implement RBAC system (Phase 3) 4. Build platform-level admin (Phase 4) - PRIORITY 5. Continue with remaining phases --- **Last Updated:** 2026-01-25