9.1 KiB
9.1 KiB
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
- Create all database migrations (Phase 1)
- Create all Eloquent models (Phase 2)
- Implement RBAC system (Phase 3)
- Build platform-level admin (Phase 4) - PRIORITY
- Continue with remaining phases
Last Updated: 2026-01-25