All core marketplace features are self-contained. No payment gateways, map services, or SMS services are required.
Customer Website, Admin Panel, and Laravel API — all included. No additional third-party services required.
Welcome to postn, a complete end-to-end OLX-style classified marketplace platform built with modern technologies. It enables users to buy and sell items locally with ease, featuring a seamless frontend experience, robust backend API, and powerful admin panel. Designed for entrepreneurs, businesses, and organizations looking to launch or scale their marketplace operations.
This platform is distributed as a white-label solution, allowing complete customization of branding, configurations, categories, and content to match your business requirements and scale your marketplace operations efficiently.
No payment gateways, map services, SMS services, or push notification services are required.
Basic understanding of React-based website development, Laravel backend setup, and API integration is recommended before installation and customization.
postn integrates with essential third-party services to provide email delivery, authentication, role management, and background job processing. These services are included as Laravel packages and require minimal configuration. Email services require your own SMTP/Gmail credentials.
| Service | Status | Purpose |
|---|---|---|
| Email (SMTP/Gmail) | Requires Setup | Sends OTP codes, seller inquiries, newsletters, password reset emails, and admin replies. Requires your own SMTP or Gmail credentials. |
| Laravel Sanctum | Active | Provides secure API authentication using personal access tokens for frontend, mobile, or external applications. Included with Laravel. |
| Spatie Laravel Permission | Active | Manages roles and permissions for users and administrators using role-based access control (RBAC). Included as a Laravel package. |
| Filament Shield | Active | Controls authorization and permission management for the Filament admin panel. Included with the Filament package. |
| Database Queue | Active | Processes background jobs such as newsletter email delivery and other queued tasks asynchronously. Included with Laravel. |
What's Included: Laravel Sanctum, Spatie Laravel Permission, Filament Shield, and Database Queue are all included with the Laravel/Filament installation and require no additional subscriptions or payments.
What You Need: Only email service (SMTP/Gmail) requires your own credentials. No payment gateways, SMS services, map services, or push notification services are required for postn to function.
Hosting: Web hosting, domain registration, and SSL certificates are the responsibility of the buyer and are not included with the purchase.
Ensure the following software versions are installed before proceeding:
| Tool/Software | Minimum Version | Recommended Version | Purpose |
|---|---|---|---|
| PHP | 8.3 | 8.3+ | Laravel backend |
| Laravel | 13.8 | 13.x | PHP Framework |
| React | 19.2.8 | 19.x | UI Library |
| Node.js | 18+ | 20+ | React & npm scripts |
| MySQL | 8.0 | 8.0+ | Database |
| Composer | 2.x | 2.x | PHP dependency manager |
| npm | 9+ | 10+ | Package management |
| Vite | 8.0 | 8.x | Build tool & development server |
| Tailwind CSS | 4.0 | 4.x | Utility-first CSS framework |
| Git | 2.30 | Latest | Version control (optional) |
| VS Code | 1.80 | Latest | Code editor (recommended) |
| Web Browser | Chrome 120, Firefox 120, Edge 120 | Latest version | Testing & debugging |
{
"require": {
"php": "^8.3",
"bezhansalleh/filament-shield": "^4.3",
"filament/filament": "^5.0",
"inertiajs/inertia-laravel": "^3.1",
"laravel/framework": "^13.8",
"laravel/sanctum": "^4.3",
"laravel/tinker": "^3.0",
"spatie/laravel-permission": "^8.3",
"wireui/heroicons": "^2.10"
},
"require-dev": {
"fakerphp/faker": "^1.23",
"laravel/pail": "^1.2.5",
"laravel/pao": "^1.0.6",
"laravel/pint": "^1.27",
"mockery/mockery": "^1.6",
"nunomaduro/collision": "^8.6",
"phpunit/phpunit": "^12.5.12"
}
}
{
"dependencies": {
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@inertiajs/react": "^3.6.1",
"@vitejs/plugin-react": "^6.0.4",
"lucide-react": "^1.26.0",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"react-easy-crop": "^6.2.3",
"react-phone-number-input": "^3.4.17",
"sonner": "^2.0.7",
"swiper": "^14.0.6"
}
}
http://localhost in your browserNote: It's necessary to have a basic knowledge in both server side and frontend development.
Run these commands in your terminal/command prompt to confirm all required tools are properly installed:
# Check Node.js version
node --version # Should show v20.x or higher
# Check npm version
npm --version # Should show v10.x or higher
# Check PHP version
php --version # Should show 8.3 or higher
# Check Composer version
composer --version # Should show 2.x or higher
# Check MySQL version
mysql --version # Should show 8.0 or higher
If all commands show the correct versions (or higher), your environment is ready for installation.
If any command returns "not found" or shows an older version, please install or update the corresponding software before proceeding.
postn is built using modern and scalable technologies to power Customer Website and Administrative operations.
Before installing and running the application, ensure the following technologies and tools are installed with the recommended versions.
| Tool/Software | Minimum Version | Recommended Version |
|---|---|---|
| PHP | 8.3 | 8.3+ |
| Laravel | 13.8 | 13.x |
| React | 19.2.8 | 19.x |
| Node.js | 18+ | 20+ |
| MySQL | 8.0 | 8.0+ |
| Composer | 2.x | 2.x |
| npm | 9+ | 10+ |
| Vite | 8.0 | 8.x |
| Tailwind CSS | 4.0 | 4.x |
| Category | Technology | Version | Purpose |
|---|---|---|---|
| Frontend (Customer Website) | |||
| Framework | React | 19.2.8 | UI Library |
| Build Tool | Vite | 8.x | Build tool & development server |
| CSS Framework | Tailwind CSS | 4.x | Utility-first CSS framework |
| Routing | React Router DOM | 7.18.1 | Page navigation |
| JavaScript Library | Alpine.js | 3.15.12 | Interactive UI Components |
| Map Library | MapLibre GL | 4.7.1 | Map Rendering & Location Services |
| Backend (Admin Panel & API) | |||
| Language | PHP | 8.3+ | Server-Side Programming |
| Framework | Laravel | 13.x | PHP Framework |
| Admin Panel | Filament | 5.6 | Admin Dashboard |
| Admin Security | Filament Shield | 4.2 | Admin Panel Security & Permissions |
| Role & Permission | Spatie Laravel Permission | 7.4 | User Roles & Permissions Management |
| Database | MySQL / MariaDB | 8.0+ / 10.6+ | Relational Database |
| Dependency Manager | Composer | 2.x | PHP Package Management |
This platform integrates with services like RouteMappy, Twilio, and Razorpay/Paystack/Flutterwave which require separate accounts and may incur additional costs. See full details in Overview →
Install all required SDKs, development tools, and dependencies using the recommended versions before beginning the installation process. Version mismatches may result in build or runtime issues.
Pro Tip: Use Node Version Manager (NVM) for managing Node.js versions.
postn consists of two main components:
React + Inertia.js frontend
Laravel + Filament backend
Customer Website: React 19.2.8 with Inertia.js 3.6.1, Tailwind CSS, Vite 6.0.4
Admin Panel: Laravel 13.x with Filament 5.0, PHP 8.3+
The customer website is built with React + Inertia.js and uses the following dependencies:
| Package | Version | Purpose |
|---|---|---|
| react | ^19.2.8 | UI Library |
| react-dom | ^19.2.8 | React DOM rendering |
| @inertiajs/react | ^3.6.1 | Inertia.js integration for server-side routing |
| @vitejs/plugin-react | ^6.0.4 | Vite plugin for React |
| @dnd-kit/core | ^6.3.1 | Drag & drop core functionality |
| @dnd-kit/sortable | ^10.0.0 | Sortable drag & drop lists |
| @dnd-kit/utilities | ^3.2.2 | Utilities for drag & drop |
| lucide-react | ^1.26.0 | Icon library |
| react-easy-crop | ^6.2.3 | Image cropping component |
| react-phone-number-input | ^3.4.17 | Phone number input with country codes |
| sonner | ^2.0.7 | Toast notifications |
| swiper | ^14.0.6 | Touch slider/carousel component |
The admin panel is built with Laravel and Filament, using the following PHP dependencies:
| Package | Version | Purpose |
|---|---|---|
| Production Dependencies | ||
| php | ^8.3 | Server-side scripting language |
| laravel/framework | ^13.8 | Laravel PHP Framework |
| filament/filament | ^5.0 | Admin panel framework |
| bezhansalleh/filament-shield | ^4.3 | Filament security & permissions |
| spatie/laravel-permission | ^8.3 | User roles & permissions |
| inertiajs/inertia-laravel | ^3.1 | Inertia.js server-side adapter |
| laravel/sanctum | ^4.3 | API authentication |
| laravel/tinker | ^3.0 | Artisan REPL & interactive shell |
| wireui/heroicons | ^2.10 | Heroicons for Blade/Filament |
| Development Dependencies | ||
| fakerphp/faker | ^1.23 | Fake data generation |
| laravel/pail | ^1.2.5 | Log viewer |
| laravel/pao | ^1.0.6 | Package auto-discovery optimizer |
| laravel/pint | ^1.27 | PHP code style fixer |
| mockery/mockery | ^1.6 | Mocking framework for tests |
| nunomaduro/collision | ^8.6 | Error handling for console |
| phpunit/phpunit | ^12.5.12 | PHP testing framework |
The Admin Panel provides complete control over the classified marketplace platform. Below is the detailed menu structure and functionality for managing the platform.
| Menu Section | Sub-Menu Items | Functionality |
|---|---|---|
| Dashboard | ||
| Dashboard | - | View business overview including total customers, total listings, pending listings, active listings, featured listings, today's listings, newsletter subscribers, and contact messages |
| Filament Shield | ||
| Roles | Super Admin, Admin, Moderator, Content Manager | Create and manage roles with specific permissions for access control |
| User Management | ||
| Customers | - | Manage customer accounts (Name, Email, Phone, Status, Profile Photo). View, edit, block, delete customers |
| Users | - | Manage administrator accounts with role assignments |
| Content | ||
| Blog Posts | - | Create and manage blog posts with categories (dynamically loaded on frontend) |
| About Pages | - | Manage About Us page content (dynamically loaded on frontend) |
| Marketplace | ||
| Categories | - | Create and manage categories with name, image, icon, and status (dynamically loaded on frontend) |
| Subcategories | - | Manage subcategories belonging to categories (dynamically loaded on frontend) |
| Attributes | Text, Number, Select, Radio, Checkbox, Date, Toggle | Create dynamic attributes for each subcategory (Cars: Brand, Model, Color, Year; Property: BHK, Area, Parking) |
| Listings | All, Pending, Approved, Rejected, Sold, Expired | Manage all listings with view, edit, approve, reject, feature, unfeature, delete, and bulk actions |
| Cities | - | Create and manage cities for popular cities section (dynamically loaded on frontend footer) |
| Communication | ||
| Contact Page | - | Manage Contact Us page content and company details (dynamically loaded on frontend) |
| Contact Messages | - | View and manage contact form submissions with reply, add note, and delete actions |
| Marketing | ||
| Newsletter Subscribers | - | Manage newsletter subscribers from footer subscription (dynamically collected from frontend) |
| Newsletter Campaigns | - | Send email campaigns to all subscribers (product updates, announcements, promotions) |
| Legal | ||
| Privacy Policies | - | Manage privacy policy content (dynamically loaded on frontend) |
| Terms Conditions | - | Manage platform terms and conditions (dynamically loaded on frontend) |
| FAQs | - | Manage frequently asked questions (dynamically loaded on frontend) |
| Settings | ||
| App Settings | - | Configure website name, logo, favicon, theme color, contact number, email, address, working hours, social links, copyright, and SEO settings (dynamically loaded on frontend) |
http://yourdomain.com/admin
Default Credentials:
admin@gmail.com / admin
This admin panel requires PHP 8.3. Please ensure you have the correct version installed before proceeding.
php --version # Should show PHP 8.3.x
The complete project structure for the postn platform, including both backend (Laravel) and frontend (React + Inertia) components.
postn/
│
├── app/ ← Backend Application
│ ├── Console/
│ ├── Filament/ ← Admin Panel (20 Resources)
│ │ ├── Pages/
│ │ │ └── Dashboard.php
│ │ └── Resources/
│ │ ├── AboutPages/
│ │ ├── AppSettings/
│ │ ├── Attributes/
│ │ ├── BlogPosts/
│ │ ├── Brands/
│ │ ├── Categories/
│ │ ├── Cities/
│ │ ├── ContactMessages/
│ │ ├── ContactPages/
│ │ ├── Customers/
│ │ ├── Faq/
│ │ ├── Listings/
│ │ ├── Models/
│ │ ├── NewsletterCampaign/
│ │ ├── NewsletterSubscriber/
│ │ ├── OtpLogs/
│ │ ├── PrivacyPolicy/
│ │ ├── Subcategories/
│ │ ├── TermsCondition/
│ │ └── Users/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── Api/ ← REST API Controllers
│ │ │ │ ├── Auth/ ← 6 Auth Controllers
│ │ │ │ ├── BrandModelController.php
│ │ │ │ ├── CategoryController.php
│ │ │ │ ├── ContactController.php
│ │ │ │ ├── ContactMessageController.php
│ │ │ │ ├── CustomerAuthController.php
│ │ │ │ ├── ListingApiController.php
│ │ │ │ ├── PopularCityController.php
│ │ │ │ ├── ProfileController.php
│ │ │ │ ├── SearchController.php
│ │ │ │ ├── SearchHistoryController.php
│ │ │ │ ├── TrendingSearchController.php
│ │ │ │ └── UploadController.php
│ │ │ ├── BlogController.php
│ │ │ ├── LegalPageController.php
│ │ │ ├── ListingController.php
│ │ │ ├── NewsletterController.php
│ │ │ ├── SearchController.php
│ │ │ └── WishlistController.php
│ │ ├── Middleware/
│ │ │ ├── EnsureCustomerIsAuthenticated.php
│ │ │ └── HandleInertiaRequests.php
│ │ └── Resources/ ← 12 API Resource Transformers
│ ├── Jobs/
│ │ └── SendNewsletterCampaignJob.php
│ ├── Mail/ ← 4 Mailable Classes
│ ├── Models/ ← 31 Eloquent Models
│ ├── Policies/ ← 19 Authorization Policies
│ ├── Providers/
│ │ └── Filament/
│ │ └── AdminPanelProvider.php
│ └── Services/
│ ├── NewsletterService.php
│ └── SearchService.php
│
├── bootstrap/
│
├── config/ ← 15 Configuration Files
│ ├── auth.php ← Dual Guard System
│ ├── filament.php
│ ├── filament-shield.php
│ ├── permission.php
│ ├── sanctum.php
│ ├── inertia.php
│ └── ...
│
├── database/
│ ├── migrations/ ← 75 Migrations
│ ├── seeders/ ← 14 Seeders
│ └── SQL/ ← Database Dumps
│
├── public/
│
├── resources/ ← Frontend Application
│ ├── css/
│ │ └── app.css ← Tailwind v4 + Brand Theme + Animations (272 lines)
│ └── js/
│ ├── app.jsx ← Inertia Entry Point
│ ├── Components/
│ │ ├── Header.jsx ← Sticky nav + category ribbon
│ │ ├── Footer.jsx ← Footer + newsletter form
│ │ ├── HeroSearch.jsx ← Homepage hero search
│ │ ├── SearchBar.jsx ← Autocomplete search
│ │ ├── SearchBarInline.jsx
│ │ ├── SearchFilters.jsx ← Filter sidebar
│ │ ├── CategoryCard.jsx
│ │ ├── ListingCard.jsx ← Listing card + wishlist toggle
│ │ ├── ConfirmModal.jsx
│ │ ├── DataTable.jsx
│ │ ├── DynamicFieldRenderer.jsx ← Dynamic form fields
│ │ ├── StatsCard.jsx
│ │ └── ui/ ← (empty — shadcn/ui not yet added)
│ ├── Layouts/
│ │ ├── MainLayout.jsx ← Header + content + Footer
│ │ └── MyAccountLayout.jsx ← Sidebar + content
│ ├── Pages/ ← 31 Page Components
│ │ ├── Home.jsx
│ │ ├── Welcome.jsx
│ │ ├── Categories.jsx
│ │ ├── Category.jsx
│ │ ├── Listings.jsx
│ │ ├── ListingDetail.jsx
│ │ ├── ListingDetails.jsx
│ │ ├── CreateListing.jsx ← Multi-step wizard
│ │ ├── EditListing.jsx
│ │ ├── SearchResults.jsx
│ │ ├── MapSearch.jsx
│ │ ├── Login.jsx
│ │ ├── Register.jsx
│ │ ├── ForgotPassword.jsx
│ │ ├── VerifyOtp.jsx
│ │ ├── ResetPasswordOtp.jsx
│ │ ├── ResetPassword.jsx
│ │ ├── Dashboard.jsx
│ │ ├── Wishlist.jsx
│ │ ├── Blog.jsx
│ │ ├── BlogDetail.jsx
│ │ ├── About.jsx
│ │ ├── Contact.jsx
│ │ ├── FAQ.jsx
│ │ ├── Pricing.jsx
│ │ ├── Subscription.jsx
│ │ ├── Privacy.jsx
│ │ ├── Terms.jsx
│ │ ├── Unsubscribe.jsx
│ │ ├── NotFound.jsx
│ │ └── MyAccount/
│ │ ├── Dashboard.jsx
│ │ ├── EditProfile.jsx
│ │ ├── CreateListing.jsx
│ │ ├── EditListing.jsx
│ │ └── MyListings.jsx
│ └── stores/
│ └── wishlist.js ← Event-based wishlist state
│
├── routes/
│ ├── web.php ← Inertia Page Routes (395 lines)
│ ├── api.php ← REST API Routes (115 lines)
│ └── console.php
│
├── storage/
├── tests/
├── vendor/
│
├── .env ← Environment Configuration
├── .env.example
├── artisan
├── composer.json
├── composer.lock
└── README.md
Note: The project uses a dual guard authentication system for admin and customers. The admin panel is built with Filament v3, while the frontend uses Inertia.js with React for seamless server-side rendering.
Set up the Laravel backend and Filament admin panel
Extract the downloaded source files to your working directory.
Copy the admin folder and paste it inside XAMPP → htdocs.
Rename your project folder (e.g., postn_admin).
Navigate to your project folder:
cd C:\xampp\htdocs\postn_admin
Run the following command to install all PHP dependencies:
composer install
When finished, verify the vendor folder
has been created in your project.
Follow these steps in phpMyAdmin:
http://localhost/phpmyadmin
in your browserpostn_admin)
Import the SQL file located at database/postn_admin.sql
using phpMyAdmin:
postn_admin.sql
file from your projectRun the following command to generate a unique application key:
php artisan key:generate
If .env file is not
visible, enable "show hidden files" in your system settings. Update the .env file in
your project root with the following settings:
APP_URL=http://localhost:5173
APP_ASSET_URL=http://localhost:5173/storage
APP_ENV=local
APP_DEBUG=true
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=postn_admin
DB_USERNAME=root
DB_PASSWORD=
TWILIO_SID=your_twilio_sid
TWILIO_TOKEN=your_twilio_token
TWILIO_FROM=your_twilio_number
RAZORPAY_KEY=your_razorpay_key
RAZORPAY_SECRET=your_razorpay_secret
Firebase is required for push notifications, real-time database features, and other Firebase services. Before using the application, configure your own Firebase project.
your-app-name-firebase-adminsdk.json).
Copy the downloaded Firebase JSON file into the following directory:
config/your-app-name.json
FIREBASE_FILE=your-app-name.json
FIREBASE_DB=https://your-project.firebaseio.com
FCM_SERVER_KEY=your_fcm_server_key
FCM_SENDER_ID=your_fcm_sender_id
Firebase Connected
Once the JSON file is uploaded and the .env
values are updated,
the application will automatically connect to your Firebase project.
Security Notice
Never share your Firebase Service Account JSON file or upload it to a public Git repository. This file contains sensitive credentials with administrative access to your Firebase project.
Important: Replace all placeholder values with your actual credentials before running the application.
Run the following command to create the database tables:
php artisan migrate
Run the following command to seed the database with default data:
php artisan db:seed --force
--force flag
is used to run the seeder in production environments. For local development, you can
omit it.
Run the following command to generate all Shield permissions:
php artisan shield:generate --all --option=permissions --panel=admin
After generating permissions, run this command to assign the super admin role to your admin user:
php artisan tinker --execute="
$role = DB::table('roles')->where('name','super_admin')->first();
$perms = DB::table('permissions')->pluck('id')->toArray();
$rows = array_map(fn($id) => ['permission_id'=>$id,'role_id'=>$role->id], $perms);
DB::table('role_has_permissions')->insertOrIgnore($rows);
DB::table('model_has_roles')->insertOrIgnore(['role_id'=>1,'model_type'=>'App\\Models\\User','model_id'=>1]);
echo 'Done: Admin assigned to super_admin role';
"
Run the following command to optimize the application for production:
php artisan optimize
Set up the React frontend website located inside the admin project
Create a .env file in the
website folder
and add the following configurations:
# API Configuration (Points to the admin backend)
APP_NAME=enter_your_app_name
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=enter_your_app_url
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database
# PHP_CLI_SERVER_WORKERS=4
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
# Database Configuration
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=enter_your_database_name
DB_USERNAME=enter_your_database_username
DB_PASSWORD=enter_your_database_password
DB_SOCKET=
# Session
SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
# Broadcasting
BROADCAST_CONNECTION=log
# Filesystem
FILESYSTEM_DISK=local
# Queue
QUEUE_CONNECTION=database
# Cache
CACHE_STORE=file
# CACHE_PREFIX=
# Memcached
MEMCACHED_HOST=127.0.0.1
# Redis
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=
REDIS_PORT=6379
# Mail Configuration
MAIL_MAILER=smtp
MAIL_SCHEME=
MAIL_HOST=enter_your_smtp_host
MAIL_PORT=587
MAIL_USERNAME=enter_your_email@example.com
MAIL_PASSWORD=enter_your_email_password_or_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=enter_your_email@example.com
MAIL_FROM_NAME="${APP_NAME}"
# AWS (Optional)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
# Frontend
VITE_APP_NAME="${APP_NAME}"
FRONTEND_URL=http://localhost:5173
# Sanctum
SANCTUM_STATEFUL_DOMAINS=localhost,localhost:5173,localhost:8000
MODE=DEMO
.env
file before running the application.APP_URL
to your application's domain or local URL..env
file, run php artisan optimize:clear
followed by php artisan optimize.
In a separate terminal, navigate to the admin project root and serve the Laravel backend:
php artisan serve
The Laravel backend runs at http://localhost:5173
admin@gmail.com
admin
Run these commands in sequence to set up both admin panel and website:
# Navigate to admin project
cd C:\xampp\htdocs\postn_admin
# Install PHP dependencies
composer install
# Generate application key
php artisan key:generate
# Run migrations
php artisan migrate
# Seed the database
php artisan db:seed --force
# Generate Shield permissions
php artisan shield:generate --all --option=permissions --panel=admin
# Optimize the application
php artisan optimize
# Start Laravel server (in one terminal)
php artisan serve
# Navigate to website folder
# Create .env file with configurations
# (Copy .env.example to .env and update values)
Use these default credentials to log in to the admin panel:
| Email: | admin@gmail.com |
| Password: | admin |
| Access Level: | Super Administrator |
Security Alert: Change these credentials immediately after first login.
If the application is not working correctly, verify:
.env
file exists in the project root.APP_URL
points to your application URL.php artisan optimize:clear
after modifying the .env file.
Verify the following:
.env file
are correct.php artisan migrate
if the tables have not been created.If uploaded images or files are not displayed:
php artisan storage:link.
storage
directory has write permission.php artisan optimize:clear.
If push notifications are not working:
.env file
are correct.If recent changes are not reflected:
php artisan optimize:clear.
php artisan optimize.
php artisan serve.
All website content is managed dynamically from the Admin Panel. Any changes made in the admin are instantly reflected on the frontend website without any code changes. This guide explains how each section of the website is controlled through the admin panel.
The home page displays dynamic content from various admin modules:
Home Page - Dynamic content from categories, listings, and settings
Blog posts are displayed on the website's blog page. Each post includes:
Blog Page - Posts managed from Content → Blog Posts
The About Us page is fully dynamic and displays company information:
About Us Page - Content managed from Content → About Pages
Categories appear on the homepage and navigation menus:
Categories Page - Managed from Marketplace → Categories
Subcategories are nested under parent categories and appear when browsing:
Subcategories Page - Managed from Marketplace → Subcategories
Attributes create dynamic forms for each subcategory:
All user-created listings are managed from the admin panel:
Listings Page - Managed from Marketplace → Listings
Cities are displayed in the footer and can be managed dynamically:
Newsletter & Cities - Managed from Marketing and Marketplace → Cities
All contact information is managed dynamically and displayed on the Contact Us page:
Contact Page - Managed from Communication → Contact Page
Contact form submissions from the website are collected and managed here:
It displayed in the footer and can be managed dynamically:
Newsletter & Cities - Managed from Marketing and Marketplace → Cities
The Privacy Policy page content is fully dynamic:
Privacy Policy Page - Managed from Legal → Privacy Policies
Terms & Conditions Page - Managed from Legal → Terms Conditions
FAQ Page - Managed from Legal → FAQs
All application settings are managed here and reflected across the website:
| Section | Admin Module | Image Reference | Frontend Display |
|---|---|---|---|
| Home Page | All Modules | ./images/website/home.webp |
categories, featured listings, latest listings, footer |
| Blog | Blog Posts | ./images/website/blog.webp |
Blog page with posts, categories, and featured images |
| About Us | About Pages | ./images/website/aboutus.webp |
About page with story, mission, vision, stats, and core values |
| Categories | Categories | ./images/website/categories.webp |
Homepage categories, navigation, and category pages |
| Subcategories | Subcategories | ./images/website/subcategories.webp |
Category → Subcategory browsing with dynamic listings |
| Listings | Listings | ./images/website/listings.webp |
Browse, search, filter, and detailed listing pages |
| Cities | Cities | ./images/website/newsletter&cities.webp |
Popular Cities in footer |
| Contact | Contact Page | ./images/website/contact.webp |
Contact Us page with company info, address, hours, social links |
| Privacy Policy | Privacy Policies | ./images/website/privacypolicy.webp |
Privacy Policy page |
| Terms & Conditions | Terms Conditions | ./images/website/terms&condition.webp |
Terms & Conditions page |
| FAQs | FAQs | ./images/website/faq.webp |
FAQ page with accordion items |
| Newsletter | Newsletter Subscribers | ./images/website/newsletter&cities.webp |
Footer subscription box |
| Branding | App Settings | - | Logo, favicon, theme color, app name, currency |
Everything shown on the website is managed from the admin panel. When you add, edit, or delete content in the admin, it automatically reflects on the frontend. No code changes are required for content management.
Cause: Missing or outdated Node.js/PHP version, unstable internet connection, or running commands from the wrong directory.
Solution:
npm install
composer install
rm -rf node_modules package-lock.json
npm install
Cause: Missing dependencies, incorrect import paths, or incomplete project extraction.
Solution:
resources/js/ files.npm install
npm run build
Cause: Missing or incomplete environment
configuration in .env file.
Solution:
.env.example to .env.APP_URL=http://localhost:5173
DB_DATABASE=postn_db
DB_USERNAME=root
DB_PASSWORD=
MAIL_HOST=smtp.gmail.com
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
php artisan optimize:clear after updating .env.Cause: Incorrect credentials, inactive account, or account suspension.
Solution:
Cause: User not logged in, missing required fields, or image upload issues.
Solution:
Cause: Listing is pending admin approval or has been rejected.
Solution:
Cause: Attributes not configured correctly for the subcategory.
Solution:
Cause: File size exceeds server limits, unsupported file format, or storage link not created.
Solution:
php artisan storage:link to create symbolic link.APP_URL in .env is correct for asset paths.FILESYSTEM_DISK is set to public.Cause: PHP version mismatch, missing dependencies, or permission issues.
Solution:
composer install to install all dependencies.php artisan key:generate.php artisan migrate.storage and bootstrap/cache.
storage/logs/laravel.log for detailed errors.
Cause: Missing configuration, incorrect .env values, or database connection issues.
Solution:
.env configuration is complete.php artisan optimize:clear.php artisan optimize.php artisan serve.Cause: Permission issues or Filament Shield configuration missing.
Solution:
php artisan shield:generate --all --option=permissions --panel=admin.
Cause: Categories are set to inactive or not properly configured.
Solution:
php artisan optimize:clear.Cause: SMTP mail configuration is incomplete or email service is down.
Solution:
.env:MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@gmail.com
php artisan tinker then
Mail::raw('Test', fn($m) => $m->to('test@email.com')->subject('Test'));
Cause: Email service configuration or newsletter module issues.
Solution:
php artisan queue:work.Cause: Contact form configuration or email settings issues.
Solution:
Solution:
.env with the following:MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@gmail.com
MAIL_FROM_NAME="${APP_NAME}"
php artisan config:clear.php artisan tinker →
Mail::raw('Test', fn($m) => $m->to('test@email.com')->subject('Test'));
Cause: Email authentication issues or content flagged as spam.
Solution:
MAIL_FROM_NAME that matches your brand.Cause: Queue worker not running or email service issues.
Solution:
php artisan queue:work..env for QUEUE_CONNECTION=database.php artisan queue:table →
php artisan migrate.
Cause: MySQL service not running or incorrect credentials.
Solution:
.env database settings:DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=postn_db
DB_USERNAME=root
DB_PASSWORD=
php artisan migrate to create tables.Cause: Existing tables or migration conflicts.
Solution:
php artisan db:wipe.php artisan migrate.storage/logs/laravel.log.
If you encounter any issues that are not covered in this documentation, please contact our support team.
Monday – Friday
Response Time: Within 24–48 Business Hours
This will help us provide faster and more accurate assistance.
composer install — Install PHP dependenciesphp artisan key:generate — Generate app keyphp artisan migrate — Run migrationsphp artisan db:seed — Seed databasephp artisan optimize:clear — Clear all cachephp artisan optimize — Optimize applicationphp artisan serve — Start Laravel serverphp artisan config:clear — Clear config cachephp artisan cache:clear — Clear application cachephp artisan route:clear — Clear route cachephp artisan view:clear — Clear view cachenpm install — Install Node dependenciesnpm run dev — Start development servernpm run build — Build for productionnpm run preview — Preview production buildrm -rf node_modules — Remove dependencies (reinstall)php artisan migrate:fresh — Fresh migrationphp artisan db:wipe — Drop all tablesphp artisan migrate:refresh — Rollback & migratephp artisan tinker — Interactive REPLTrack all updates, improvements, and fixes for the postn classified marketplace platform.
If you encounter an error that is not listed above, please feel free to contact our support team for further assistance. We’re here to help.
If you need any custom work, additional features, or modifications to this application, our team is ready to help you build and scale your project efficiently.
Custom feature development based on your business needs
UI/UX design improvements and branding customization
Third-party API integrations (payment, SMS, maps, etc.)
Performance optimization and scalability improvements
Full project setup and deployment assistance
Building large-scale applications from scratch
You can hire our development team for complete project development, from idea to deployment, including frontend, backend, and server setup.
+91 9150 441 443
sales@menpanitech.com
Custom development services may involve additional cost and timeline depending on the scope and complexity of the project.
We’re happy to collaborate and bring your ideas to life