Skip to content

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

EnvironmentURLHow to get credentials
Local devhttp://localhost:8000/adminRun php artisan db:seed — seeder creates superadmin@easyotc.com / password. See Test Accounts for the full list.
Staginghttps://stage-api.easyotc.com/adminAsk the team for stage credentials. See Access for environment URLs and credential paths.
ProductionTBD — set when the new server is provisioned ahead of launchTBD

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:

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:

bash
# Run migrations to create all necessary tables
php artisan migrate

# Seed the database with initial data
php artisan db:seed

Important: 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

bash
# Start the Laravel development server
php artisan serve

3. Start the Frontend (optional)

If you also want the storefront running locally, in a separate terminal:

bash
# Navigate to the frontend repo (sibling directory)
cd ../easty-otc

# Install dependencies (if not already done)
bun install

# Start the dev server
bun dev

The 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:

RoleEmailPassword
OTC_ONE_ADMIN (super admin)superadmin@easyotc.compassword
CARRIER_ADMINcarrier.admin@easyotc.compassword
AGENTagent@easyotc.compassword

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_ADMIN or CARRIER_ADMIN roles 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

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 Items

Customization & Development

Adding New Resources

To add new admin resources:

  1. Create a new resource file in app/Filament/Resources/
  2. Define the model, form, and table configurations
  3. 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_ADMIN role assigned
  • Check that the database has been properly seeded

"No data showing"

  • Run php artisan db:seed to 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 canAccessPanel method in the User model
  • Verify role and permission configurations

Useful Commands

bash
# 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:status

Additional Resources

Filament Documentation

Laravel Resources

Development Tools

Support

For technical support or questions about the Super Admin Panel:

  1. Check the troubleshooting section above
  2. Review the Filament documentation
  3. Consult the Laravel documentation
  4. 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.