Super Admin Panel
The Super Admin Panel is a powerful administrative interface built with Laravel Filament that provides comprehensive management capabilities for the EasyOTC platform. This panel is exclusively accessible to users with the OTC_ONE_ADMIN role and offers a modern, intuitive interface for managing all aspects of the system.
Where to access
| Environment | URL | How to get credentials |
|---|---|---|
| Local dev | http://localhost:8000/admin | Run php artisan db:seed — seeder creates superadmin@easyotc.com / password. See Test Accounts for the full list. |
| Staging | https://stage-api.easyotc.com/admin | Ask the team for stage credentials. See Access for environment URLs and credential paths. |
| Production | TBD — set when the new server is provisioned ahead of launch | TBD |
The panel uses the OTC_ONE_ADMIN role enum value internally. If a user can't log in even with correct email/password, the most common cause is that the role wasn't attached — see the Filament Admin guide for the role/permission map.
Looking for the full admin walkthrough? Filament Admin covers every resource and the step-by-step "add a product" / "add a category" flows with the critical tags + categories + manufacturer = visibility invariant.
Technology Stack
This admin panel is built using:
- Laravel Filament - A modern admin panel and application framework for Laravel
- GitHub Repository - Open source admin panel for Laravel
- Official Documentation - Comprehensive guides and API reference
Prerequisites
Before accessing the Super Admin Panel, ensure you have:
- PHP 8.4+
- Composer 2.8+
- Node.js 22+
- Bun 1.2+
- PostgreSQL 13+
- Redis 8.0+
- Meilisearch 1.15+
Setup Instructions
1. Database Setup
First, ensure your database is properly configured and seeded:
# Run migrations to create all necessary tables
php artisan migrate
# Seed the database with initial data
php artisan db:seedImportant: The seeding process creates the default super admin user and other necessary data. Without running seeders, you won't be able to access the admin panel.
2. Start the Development Server
# Start the Laravel development server
php artisan serve3. Start the Frontend (optional)
If you also want the storefront running locally, in a separate terminal:
# Navigate to the frontend repo (sibling directory)
cd ../easty-otc
# Install dependencies (if not already done)
bun install
# Start the dev server
bun devThe admin panel works on its own — you only need the frontend if you want to test storefront flows end-to-end.
4. Access the Admin Panel
Local: http://localhost:8000/admin — see the Where to access table at the top of this page for staging / production URLs.
5. Login Credentials
For local development the seeder creates:
| Role | Password | |
|---|---|---|
OTC_ONE_ADMIN (super admin) | superadmin@easyotc.com | password |
CARRIER_ADMIN | carrier.admin@easyotc.com | password |
AGENT | agent@easyotc.com | password |
Never use these passwords on staging or production. See Test Accounts for the full list and how to create new admins.
Admin Panel Features
User Management
Location: User Management → Users
The User Management section allows you to:
- Create New Users: Add new users with full name, email, and password
- Edit Existing Users: Modify user information and assign roles
- Role Assignment: Assign one or more roles (
OTC_ONE_ADMIN,CARRIER_ADMIN,AGENT,MEMBER) to users - Email Verification: Track email verification status
- User Status: Monitor active/inactive user accounts
- Soft Delete: Safely remove users with the ability to restore them
Key Features:
- Role-based access control with visual badges
- Email verification tracking
- Password management with confirmation
- Search and filter capabilities
- Bulk operations for multiple users
Carrier Management
Location: Carrier Management → Carriers
The Carrier Management section provides:
- Carrier Creation: Add new insurance carriers with detailed information
- Logo Management: Upload and manage carrier logos via URL
- Settings Configuration: Configure carrier-specific settings using key-value pairs
- Status Control: Activate/deactivate carriers as needed
- Member Association: View and manage member relationships
Key Features:
- Multi-tenant architecture support
- Flexible settings system
- Active/inactive status management
- Member count tracking
- Soft delete functionality
Member Management
Location: Member Management → Members
The Member Management section enables:
- Member Registration: Create new member accounts with personal information
- User Association: Link members to existing user accounts
- Carrier Assignment: Assign members to specific insurance carriers
- Address Management: Handle member address and contact information
- Cart Relationships: View and manage shopping cart associations
Key Features:
- Personal information management
- Address and contact details
- Carrier relationship tracking
- Cart association monitoring
- Soft delete with relationship protection
Product Management
Location: Product Management → Products
The Product Management section offers:
- Product Creation: Add new OTC products with comprehensive details
- SKU Management: Manage unique stock keeping units
- Inventory Control: Track inventory levels and availability
- Categorization: Organize products using the flexible categorization system
Key Features:
- SKU and UUID management
- Inventory tracking
- Manufacturer relationships
- Availability controls
- Categorization system integration
Order Management
Location: Order Management → Orders
The Order Management section provides:
- Order Tracking: Monitor all orders in the system
- Order Details: View comprehensive order information
- Status Management: Update order statuses
- Item Management: Handle individual order items
- Customer Information: Access customer and member details
Key Features:
- Complete order lifecycle management
- Order item tracking
- Status updates
- Customer relationship management
- Order history and analytics
Security Features
Role-Based Access Control
The admin panel implements strict role-based access control. Roles are defined in app/Enums/RoleEnum.php:
OTC_ONE_ADMIN— Full access to all admin panel features (this is the super-admin role).CARRIER_ADMIN— Read-only access scoped to their own carrier's data; cannot create or delete products.AGENT— No admin-panel access. Operates via the storefront on members' behalf.MEMBER— No admin-panel access; storefront customer only.
For the full permission map (who can do what), see Filament Admin and the Role-Based Access Control reference.
Authentication & Authorization
- Panel Access Control: Only users with
OTC_ONE_ADMINorCARRIER_ADMINroles can access the admin panel. All other roles get redirected. - Resource-Level Permissions: Fine-grained control over what each user can do
- Session Management: Secure session handling with CSRF protection
- Password Security: Strong password requirements and hashing
Data Protection
- Soft Deletes: All major entities support soft deletion for data protection
- Relationship Validation: Prevents deletion of records with dependencies
- Audit Logging: Comprehensive activity logging for all admin actions
- Email Verification: Tracks email verification status for security
Navigation Structure
The admin panel is organized into logical sections:
📊 Dashboard
├── 👥 User Management
│ └── Users
├── 🏢 Carrier Management
│ └── Carriers
├── 👤 Member Management
│ └── Members
├── 🛍️ Product Management
│ └── Products
└── 📦 Order Management
├── Orders
└── Order ItemsCustomization & Development
Adding New Resources
To add new admin resources:
- Create a new resource file in
app/Filament/Resources/ - Define the model, form, and table configurations
- The resource will automatically appear in the navigation
Custom Pages
Custom pages can be added in app/Filament/Pages/ and will be automatically discovered by Filament.
Widgets
Custom dashboard widgets can be created in app/Filament/Widgets/ to provide additional insights and functionality.
Troubleshooting
Common Issues
"Cannot access admin panel"
- Ensure you're using the correct super admin credentials
- Verify the user has the
OTC_ONE_ADMINrole assigned - Check that the database has been properly seeded
"No data showing"
- Run
php artisan db:seedto populate the database - Verify that migrations have been executed successfully
- Check database connection and credentials
"Permission denied errors"
- Confirm the user has the correct role assigned
- Check the
canAccessPanelmethod in the User model - Verify role and permission configurations
Useful Commands
# Clear all caches
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
# Regenerate autoload files
composer dump-autoload
# Check application status
php artisan about
# View all routes
php artisan route:list
# Check database status
php artisan migrate:statusAdditional Resources
Filament Documentation
- Official Documentation - Complete guide to Filament features
- GitHub Repository - Source code and issues
- Community Forum - Get help from the community
Laravel Resources
- Laravel Documentation - Laravel framework documentation
- Laravel Eloquent - Database ORM documentation
Development Tools
- Laravel Debugbar - Debugging toolbar
- Laravel Telescope - Application monitoring
Support
For technical support or questions about the Super Admin Panel:
- Check the troubleshooting section above
- Review the Filament documentation
- Consult the Laravel documentation
- Contact the development team
Note: This admin panel is designed for super administrators only. Regular admin and member users do not have access to this interface. For API access and member impersonation features, refer to the API documentation.