Appearance
File structure
Package root
text
ExchangePro/
├── LICENSE.txt # CodeCanyon / Envato license (read before use)
├── CREDITS.md # Third-party licenses (shadcn, Lucide, Quill, fonts, APIs)
├── CHANGELOG.md # Version history for buyers
├── README.txt # Quick start pointer
├── backend/ # Laravel 13 API
├── frontend/ # Nuxt 4 SPA/SSR
└── doc/ # Offline buyer documentation (index.html)Backend (backend/)
text
backend/
├── app/
│ ├── Http/
│ │ ├── Controllers/Api/ # REST controllers
│ │ ├── Middleware/ # e.g. UpdateUserLastSeen
│ │ └── Requests/Api/ # Form request validation
│ ├── Mail/ # Mailable classes
│ ├── Models/ # Eloquent models
│ ├── Providers/ # AppServiceProvider (reset password URL)
│ └── Services/ # Business logic (rates, IP block, notifications)
├── bootstrap/
│ └── app.php # Routing, middleware aliases
├── config/ # cors, sanctum, database, mail, services
├── database/
│ ├── migrations/ # Schema + home page seed migration
│ └── seeders/
├── public/ # Web root (point vhost here)
│ ├── index.php
│ ├── images/ # Uploads (logos, avatars, currencies)
│ └── transaction-proofs/ # User proof files per exchange ID
├── routes/
│ ├── api/
│ │ ├── index.php # Public + auth routes
│ │ ├── admin.php # Admin API
│ │ └── dashboard.php # User dashboard API
│ └── console.php # Scheduler (rate sync)
├── storage/ # Logs, cache, sessions
└── .env.exampleKey backend files
| File | Role |
|---|---|
routes/api/index.php | API entry, Sanctum auth routes |
routes/api/admin.php | Admin-only endpoints |
app/Services/CurrencyRateSyncService.php | ExchangeRate-API sync |
app/Services/TransactionProofFileStorage.php | Proof file storage |
app/Http/Controllers/Api/SettingsController.php | Settings CRUD |
config/cors.php | CORS (origins from .env) |
config/sanctum.php | Stateful domains |
Frontend (frontend/)
text
frontend/
├── api/ # API client modules (admin, dashboard, public)
├── assets/css/ # Tailwind entry
├── components/
│ ├── admin/ # Admin-specific UI
│ ├── dashboard/ # User dashboard UI
│ ├── Home/ # Public home sections
│ └── ui/ # shadcn-vue components
├── composables/ # Shared Vue composables
├── layouts/
│ ├── default.vue # Public layout
│ ├── admin.vue # Admin shell
│ ├── dashboard.vue # User dashboard shell
│ └── auth.vue # Sign-in/up layout
├── middleware/
│ └── auth.global.ts # Route guards
├── pages/ # File-based routes
│ ├── index.vue # Home
│ ├── admin/ # Admin panel pages
│ ├── dashboard/ # User dashboard pages
│ ├── blog/ # Public blog
│ └── signin.vue, signup.vue, ...
├── types/ # TypeScript types
├── utils/ # Helpers
├── nuxt.config.ts # Nuxt + Sanctum module config
├── package.json
└── .env # API_URL, FRONTEND_URL (create from example)Key frontend files
| File | Role |
|---|---|
nuxt.config.ts | Sanctum endpoints, runtime config |
app.vue | Global SEO, favicon, custom CSS |
middleware/auth.global.ts | Protect /admin and /dashboard |
composables/useSiteSeo.ts | Public SEO meta |
pages/admin/exchange/index.vue | Admin exchanges UI |
Upload directories (backup these)
text
backend/public/transaction-proofs/
backend/public/images/avatars/
backend/public/images/currencies/
backend/public/images/settings/
backend/public/images/legal-pages/Do not ship to buyers
text
backend/vendor/
backend/node_modules/
backend/.env
frontend/node_modules/
frontend/.output/
frontend/.nuxt/
.cursor/
backend/public/transaction-proofs/ # user data from your dev environment