Purchase Now
Laravel 11 Structure

CoinTrail follows the standard Laravel 11 directory structure with additional folders for cryptocurrency-specific features.

Root Directory Structure

The main CoinTrail directory contains the following folders and files:

Directory Tree
cointrail/
├── app/                    # Application core code
├── bootstrap/              # Framework bootstrap files
├── config/                 # Configuration files
├── database/               # Migrations, seeders, factories
├── public/                 # Publicly accessible files
├── resources/              # Views, assets, language files
├── routes/                 # Route definitions
├── storage/                # Logs, cache, uploaded files
├── tests/                  # Test files
├── vendor/                 # Composer dependencies
├── .env                    # Environment configuration
├── .env.example            # Environment template
├── artisan                 # Laravel CLI
├── composer.json           # PHP dependencies
├── package.json            # Node dependencies
└── README.md               # Project documentation

App Directory

The app/ directory contains the core application code:

Directory Tree
app/
├── Console/
│   └── Kernel.php              # Scheduled tasks configuration
├── Exceptions/
│   └── Handler.php             # Exception handling
├── Filament/                   # Filament Admin Panel
│   ├── Pages/                  # Custom admin pages
│   ├── Resources/              # Admin CRUD resources
│   └── Widgets/                # Dashboard widgets
├── Http/
│   ├── Controllers/
│   │   ├── Api/                # API controllers
│   │   │   ├── V1/             # Pro tier API (v1)
│   │   │   ├── CoinGeckoApiController.php
│   │   │   ├── CoinMarketCapApiController.php
│   │   │   ├── LivePricesController.php
│   │   │   └── PaymentWebhookController.php
│   │   └── Web/                # Web controllers
│   │       ├── BlockfolioController.php
│   │       ├── CryptoCurrenciesController.php
│   │       ├── CryptoDashboardController.php
│   │       ├── PortfolioController.php
│   │       ├── PriceAlertController.php
│   │       ├── SubscriptionController.php
│   │       └── UserController.php
│   ├── Middleware/             # Request middleware
│   │   ├── AdminMiddleware.php
│   │   ├── ApiAuthMiddleware.php
│   │   └── SubscriptionMiddleware.php
│   └── Kernel.php              # HTTP kernel
├── Models/                     # Eloquent models (60+ models)
│   ├── User.php
│   ├── CryptoMarkets.php
│   ├── Portfolio.php
│   ├── PortfolioHolding.php
│   ├── PriceAlert.php
│   ├── SubscriptionPlan.php
│   └── ...
├── Providers/                  # Service providers
│   ├── AppServiceProvider.php
│   ├── FilamentServiceProvider.php
│   └── RouteServiceProvider.php
└── Services/                   # Business logic services
    ├── PortfolioService.php
    ├── PortfolioAnalyticsService.php
    ├── SubscriptionService.php
    ├── TwoFactorAuthService.php
    └── WebhookService.php

Key Directories Explained

Directory Purpose
app/Filament/ Filament admin panel resources, pages, and widgets. Contains 32+ CRUD resources for managing all aspects of the platform.
app/Http/Controllers/Api/ API controllers for cryptocurrency data, live prices, and the Pro tier API (v1).
app/Http/Controllers/Web/ Web controllers for frontend pages, user features, portfolios, and subscriptions.
app/Models/ 60+ Eloquent models including User, CryptoMarkets, Portfolio, PriceAlert, SubscriptionPlan, and more.
app/Services/ Business logic services for portfolios, subscriptions, 2FA, and webhooks.

Config Directory

Configuration files for all aspects of the application:

Directory Tree
config/
├── app.php                 # Application settings
├── auth.php                # Authentication configuration
├── broadcasting.php        # Broadcasting settings
├── cache.php               # Cache driver settings
├── captcha.php             # reCAPTCHA configuration
├── database.php            # Database connections
├── filament.php            # Filament admin settings
├── filesystems.php         # File storage disks
├── laravellocalization.php # Multi-language settings
├── logging.php             # Log channels
├── mail.php                # Email configuration
├── queue.php               # Queue settings
├── services.php            # Third-party services (Stripe, OAuth, CoinGecko)
├── session.php             # Session configuration
└── sitemap.php             # Sitemap generation settings
Configuration Priority

Most configuration values are read from the .env file. Only modify config files directly if you need to change the default structure.

Database Directory

Contains database migrations, seeders, and factories:

Directory Tree
database/
├── factories/              # Model factories for testing
├── migrations/             # Database schema migrations (80+ files)
│   ├── 2014_10_12_000000_create_users_table.php
│   ├── 2024_01_01_000001_create_crypto_markets_table.php
│   ├── 2024_01_01_000002_create_portfolios_table.php
│   ├── 2024_01_01_000003_create_subscription_plans_table.php
│   └── ...
└── seeders/                # Database seeders
    ├── DatabaseSeeder.php
    └── SubscriptionPlanSeeder.php

Public Directory

Publicly accessible files served by the web server:

Directory Tree
public/
├── build/                  # Compiled frontend assets
│   └── manifest.json       # Vite manifest
├── css/                    # Compiled stylesheets
├── images/                 # Static images
│   └── coins_icons/        # Cryptocurrency icons
├── js/                     # JavaScript files
│   ├── app.js              # Main application JS
│   ├── live-price-updater.js
│   └── blockfolio.js
├── sitemap/                # Generated sitemaps
├── storage/                # Symlink to storage/app/public
├── vendor/                 # Third-party libraries
├── .htaccess               # Apache rewrite rules
├── index.php               # Application entry point
└── robots.txt              # Search engine directives

Resources Directory

Views, frontend assets, and language files:

Directory Tree
resources/
├── css/
│   └── app.css             # Main stylesheet (Tailwind)
├── js/
│   └── app.js              # Frontend JavaScript
├── lang/                   # Translation files
│   ├── en/
│   ├── es/
│   ├── fr/
│   └── ... (20+ languages)
└── views/
    ├── emails/             # Email templates
    │   ├── registration_email.blade.php
    │   ├── password_reset_email.blade.php
    │   ├── price_alert_notification.blade.php
    │   └── security_alert.blade.php
    ├── errors/             # Error pages
    │   ├── 404.blade.php
    │   ├── 500.blade.php
    │   └── maintenance.blade.php
    ├── filament/           # Filament admin customizations
    ├── modern/             # Modern theme (default)
    │   ├── layouts/
    │   └── pages/          # 60+ page templates
    ├── widgets/            # Embeddable widgets
    │   ├── converter.blade.php
    │   ├── market-overview.blade.php
    │   └── price-ticker.blade.php
    └── vendor/             # Third-party view overrides

Routes Directory

All application route definitions:

Directory Tree
routes/
├── api.php                 # API routes (public + Pro tier v1)
├── channels.php            # Broadcasting channels
├── console.php             # Artisan commands
├── install.php             # Installer routes
└── web.php                 # Web routes (main application)

Route Files Explained

File Description Middleware
web.php Main web routes including dashboard, cryptocurrencies, portfolios, user authentication, subscriptions, and admin routes. web, localization
api.php Public API endpoints for live prices, market data, and Pro tier API (v1) endpoints. api, throttle
install.php Web installer routes for initial setup. Disabled after installation. web, installer

Storage Directory

Application storage for logs, cache, and user uploads:

Directory Tree
storage/
├── app/
│   └── public/             # User uploads (symlinked to public/storage)
│       ├── avatars/        # User profile pictures
│       ├── logos/          # Site logos
│       └── uploads/        # General uploads
├── framework/
│   ├── cache/              # Application cache
│   ├── sessions/           # Session files
│   └── views/              # Compiled Blade views
└── logs/
    └── laravel.log         # Application logs
Permissions Required

The storage/ and bootstrap/cache/ directories must be writable by the web server. Run chmod -R 755 storage bootstrap/cache.

Important Configuration Files

Environment File (.env)

The .env file contains all environment-specific configuration:

.env
# Application
APP_NAME=CoinTrail
APP_ENV=production
APP_KEY=base64:...
APP_DEBUG=false
APP_URL=https://yourdomain.com

# Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cointrail_db
DB_USERNAME=your_username
DB_PASSWORD=your_password

# API Keys
COINGECKO_API_KEY=your_coingecko_key
STRIPE_KEY=pk_live_...
STRIPE_SECRET=sk_live_...

# Social Login
FB_CLIENT_ID=your_facebook_app_id
FB_SECRET_ID=your_facebook_secret
TW_CLIENT_ID=your_twitter_client_id
TW_SECRET_ID=your_twitter_secret

# reCAPTCHA
RECAPTCHA_PUBLIC_KEY=your_site_key
RECAPTCHA_PRIVATE_KEY=your_secret_key

# Mail
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=587
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password

Filament Admin Resources

The admin panel uses Filament 3.x with the following resources:

Directory Tree
app/Filament/Resources/
├── AffiliatesResource.php          # Affiliate management
├── BlockchainChainResource.php     # Blockchain networks
├── CategoryResource.php            # Content categories
├── ContactUsResource.php           # Contact submissions
├── CryptoExchangesResource.php     # Exchange data
├── CryptoMarketsResource.php       # Cryptocurrency data
├── CryptoNewsResource.php          # News articles
├── CryptoDictionaryTermsResource.php
├── DashboardSliderResource.php     # Homepage sliders
├── EventsResource.php              # Crypto events
├── ManualGatewayResource.php       # Manual payments
├── MenuResource.php                # Navigation menus
├── NewsletterResource.php          # Newsletter subscribers
├── PageResource.php                # Static pages
├── PaymentGatewaySettingResource.php
├── PaymentTransactionResource.php  # Transaction history
├── PostResource.php                # Blog posts
├── SettingResource.php             # Site settings
├── SubscriptionPlanResource.php    # Subscription tiers
├── TagResource.php                 # Content tags
├── UserResource.php                # User management
├── UserSubscriptionResource.php    # User subscriptions
└── WalletResource.php              # Wallet guides

Files You May Need to Modify

Purpose File Location
Environment configuration .env
Site logo and branding public/images/
Email templates resources/views/emails/
Frontend templates resources/views/modern/
Translations resources/lang/{locale}/
Scheduled tasks app/Console/Kernel.php
API rate limits routes/api.php
Backup Before Modifying

Always backup files before making changes. Core files in app/ and config/ should only be modified if you understand Laravel.