openclassify / openclassify
The skeleton application for the Laravel framework.
Package info
github.com/openclassify/openclassify
Type:project
pkg:composer/openclassify/openclassify
Requires
- php: ^8.2
- a909m/filament-statefusion: ^2.3
- ariaieboy/filament-currency: ^3.0
- aws/aws-sdk-php: ^3.322
- bezhansalleh/filament-language-switch: ^4.1
- cheesegrits/filament-google-maps: ^5.0
- dutchcodingcompany/filament-developer-logins: ^2.1
- dutchcodingcompany/filament-socialite: ^3.1
- filament/filament: ^5.0
- filament/spatie-laravel-media-library-plugin: ^5.3
- filament/spatie-laravel-settings-plugin: ^5.3
- jeffgreco13/filament-breezy: ^3.2
- laravel/ai: ^0.2.5
- laravel/framework: ^12.0
- laravel/sanctum: ^4.3
- laravel/tinker: ^2.10.1
- league/flysystem-aws-s3-v3: ^3.25
- mwguerra/filemanager: ^2.0
- nwidart/laravel-modules: ^11.0
- pxlrbt/filament-activity-log: ^2.1
- socialiteproviders/apple: ^5.9
- spatie/laravel-permission: ^6.24
- spatie/laravel-settings: ^3.7
- stechstudio/filament-impersonate: ^5.1
- tapp/filament-country-code-field: ^2.0
- ysfkaya/filament-phone-input: ^4.1
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/boost: ^2.2
- laravel/pail: ^1.2.2
- laravel/pint: ^1.24
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- phpunit/phpunit: ^11.5.3
- dev-master
- 5.0-BETA
- 2.2.7
- 2.2.6
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.50
- 2.0.49
- 2.0.48
- 2.0.47
- 2.0.46
- 2.0.45
- 2.0.44
- 2.0.43
- 2.0.42
- 2.0.41
- 2.0.40
- 2.0.39
- 2.0.38
- 2.0.37
- 2.0.36
- 2.0.35
- 2.0.34
- 2.0.33
- 2.0.32
- 2.0.31
- 2.0.30
- 2.0.29
- 2.0.28
- 2.0.27
- 2.0.26
- 2.0.25
- 2.0.24
- 2.0.23
- 2.0.22
- 2.0.21
- 2.0.20
- 2.0.19
- 2.0.18
- 2.0.17
- 2.0.16
- 2.0.15
- 2.0.14
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0-Beta
- 1.33
- 1.32.27
- 1.32.26
- 1.32.25
- 1.32.24
- 1.32.23
- 1.32.22
- 1.32.21
- 1.32.20
- 1.32.19
- 1.32.18
- 1.32.17
- 1.32.16
- 1.32.15
- 1.32.14
- 1.32.13
- 1.32.12
- 1.32.11
- 1.32.10
- 1.32.9
- 1.32.8
- 1.32.7
- 1.32.6
- 1.32.5
- 1.32.4
- 1.32.3
- 1.32.2
- 1.32.1
- 1.32
- 1.31.3
- 1.31.2
- 1.31.1
- 1.31
- 1.30.12
- 1.30.11
- 1.30.10
- 1.30.9
- 1.30.8
- 1.30.7
- 1.30.6
- 1.30.5
- 1.30.4
- 1.30.3
- 1.30.2
- 1.30.1
- 1.30
- 1.29
- 1.28.3
- 1.28.2
- 1.28.1
- 1.28
- 1.27
- 1.26
- 1.25
- 1.24
- 1.23.2
- 1.23.1
- 1.23
- 1.22
- 1.21
- 1.20.4
- 1.20.3
- 1.20.2
- 1.20.1
- 1.20
- 1.19.2
- 1.19.1
- 1.19
- 1.18.1
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11.12
- 1.11.10
- 1.11.9
- 1.11.8
- 1.11.7
- 1.11.6
- 1.11.5
- 1.11.4
- 1.11.3
- 1.11.2
- 1.11.1
- 1.11
- 1.10
- 1.9
- 1.8
- 1.7
- 1.6
- 1.5
- 1.4
- 1.3
- 1.2
- 1.1
- 1.0.0
- 0.9.21
- 0.9.20
- 0.9.19
- 0.9.18
- 0.9.17
- 0.9.16
- 0.9.15
- 0.9.14
- 0.9.13
- 0.9.12
- 0.9.11
- 0.9.10
- 0.9.9
- 0.9.8
- 0.9.7
- 0.9.6
- 0.9.5
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9
- dev-fatihalp-patch-1
- dev-copilot/develop-improved-listing-site
- dev-copilot/create-classified-ads-site
- dev-copilot/create-classified-website
This package is auto-updated.
Last update: 2026-03-08 22:42:37 UTC
README
A modern classified ads platform built with Laravel 12, FilamentPHP v5, and Laravel Modules โ similar to Letgo and Sahibinden.
Features
- ๐๏ธ Classified Listings โ Browse, search, and post ads across categories
- ๐๏ธ Categories โ Hierarchical categories with icons
- ๐ Locations โ Country and city management
- ๐ค User Profiles โ Manage your listings and account
- ๐ Admin Panel โ Full control via FilamentPHP v5 at
/admin - ๐งญ Frontend Panel โ Authenticated users manage listings, profile, videos, favorites, and inbox at
/panel - ๐งช Demo Mode โ Per-visitor PostgreSQL schema provisioning with seeded data and automatic cleanup
- ๐ 10 Languages โ English, Turkish, Arabic, German, French, Spanish, Portuguese, Russian, Chinese, Japanese
- ๐ณ Docker Ready โ One-command production and development setup
- โ๏ธ GitHub Codespaces โ Zero-config cloud development
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Laravel 12 |
| Admin UI | FilamentPHP v5 |
| Modules | nWidart/laravel-modules v11 |
| Auth/Roles | Spatie Laravel Permission |
| Frontend | Blade + TailwindCSS + Vite |
| Database | PostgreSQL (required for demo mode) |
| Cache/Queue | Database or Redis |
Quick Start (Docker)
# Clone the repository git clone https://github.com/openclassify/openclassify.git cd openclassify # Copy environment file cp .env.example .env # Start with Docker Compose (production-like) docker compose up -d # The application will be available at http://localhost:8000
Default Accounts
| Role | Password | |
|---|---|---|
| Admin | a@a.com | 236330 |
| Member | b@b.com | 36330 |
These accounts are seeded by Modules\User\Database\Seeders\AuthUserSeeder. In demo mode, demo preparation still auto-logs the visitor into the schema-local admin account.
Admin Panel: http://localhost:8000/admin Frontend Panel: http://localhost:8000/panel
Development Setup
Option 1: GitHub Codespaces (Zero Config)
- Click Code โ Codespaces โ New codespace on GitHub
- Wait for the environment to build (~2 minutes)
- The app starts automatically at port 8000
Option 2: Docker Development
# Start development environment with hot reload docker compose -f docker-compose.dev.yml up -d # View logs docker compose -f docker-compose.dev.yml logs -f app
Option 3: Local (PHP + Node)
Requirements: PHP 8.2+, Composer, Node 18+, PostgreSQL for demo mode
# Install dependencies composer install npm install # Setup environment cp .env.example .env php artisan key:generate # Database (SQLite for quick start) touch database/database.sqlite php artisan migrate php artisan db:seed # Start all services (server + queue + vite) composer run dev
Demo Mode
Demo mode is designed for isolated visitor sessions. When enabled, each visitor can provision a private temporary marketplace backed by its own PostgreSQL schema.
Requirements
DB_CONNECTION=pgsqlDEMO=1- database-backed session / cache / queue drivers are supported and will stay on the public schema via
pgsql_public
If DEMO=1 is set while the app is not using PostgreSQL, the application fails fast during boot.
Runtime Behavior
- On the first guest homepage visit, the primary visible CTA is a single large
Prepare Demobutton. - The homepage shows how long the temporary demo will live before automatic deletion.
- Clicking
Prepare Demoprovisions a visitor-specific schema, runsmigrateanddb:seed, and logs the visitor into the seeded admin account. - The same browser reuses its active demo instead of creating duplicate schemas.
- Demo lifetime defaults to
360minutes from explicit prepare / reopen time. - Expired demos are removed by
demo:cleanup, which is scheduled hourly.
Environment
DB_CONNECTION=pgsql DEMO=1 DEMO_TTL_MINUTES=360 DEMO_SCHEMA_PREFIX=demo_ DEMO_COOKIE_NAME=oc2_demo DEMO_LOGIN_EMAIL=a@a.com DEMO_PUBLIC_SCHEMA=public
Commands
php artisan migrate --force php artisan db:seed --force php artisan demo:prepare php artisan demo:cleanup
Panels
| Panel | URL | Access |
|---|---|---|
| Admin | /admin |
Users with admin role |
| Frontend Panel | /panel |
All authenticated users |
Roles (Spatie Permission)
| Role | Access |
|---|---|
admin |
Full admin panel access |
Code Contributors
OpenClassify is a modular open source classified platform built with Laravel.
- Website: openclassify.com
- Package: openclassify/openclassify
This project is maintained and improved by its contributors.
Creating a New Module
php artisan module:make ModuleName
Then add to modules_statuses.json:
{
"ModuleName": true
}
Adding a Filament Resource to Admin Panel
Resources are auto-discovered from Modules/Admin/Filament/Resources/.
Language Support
Languages are in lang/{locale}/messages.php. To add a new language:
- Create
lang/{locale}/messages.php - Switch language via:
GET /lang/{locale}
Supported locales: en, tr, ar, de, fr, es, pt, ru, zh, ja
Running Tests
php artisan test
Production Deployment
Environment Variables
APP_ENV=production APP_DEBUG=false APP_URL=https://yourdomain.com DB_CONNECTION=mysql DB_HOST=your-db-host DB_DATABASE=openclassify DB_USERNAME=openclassify DB_PASSWORD=your-secure-password REDIS_HOST=your-redis-host CACHE_STORE=redis SESSION_DRIVER=redis QUEUE_CONNECTION=redis
Post-Deploy Commands
php artisan migrate --force
php artisan db:seed --force # Only on first deploy
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan storage:link