Bazaar - Flutter Classified MarketplaceBazaar - Flutter Classified Marketplace
Flutter classified marketplace app with PHP API, Socket.IO chat, admin dashboard, Firebase, and subscriptions. Recently UpdatedBazaar - Flutter Classified Marketplace
Flutter classified marketplace app with PHP API, Socket.IO chat, admin dashboard, Firebase, and s...
Overview
Bazaar - Flutter Classified Marketplace
Bazaar is a classified marketplace mobile application built with Flutter and supported by a PHP REST API, MySQL/MariaDB database, Redis, and a Node.js Socket.IO realtime server. It is designed for publishing and browsing local classified listings with categories, locations, user accounts, chat, notifications, and admin-managed marketplace content.
Product Overview
The package includes the Flutter Android and iOS source code, PHP API source code, Node.js realtime server source code, SQL database file with safe demo data, demo media folders, and buyer documentation. The existing documentation covers installation, backend configuration, Flutter configuration, Firebase setup, Redis setup, Node server setup, troubleshooting, changelog, and license information.
Main Purpose
Bazaar provides a ready source-code base for a classified ads marketplace where users can browse listings, publish ads, upload images, save favorites, comment on listings, chat with other users, and manage their profile. Super admin users can access dashboard screens for managing the marketplace data from the Flutter application.
Mobile Application
- Flutter source code for Android and iOS.
- Home feed for classified listings.
- Search and category/location filtering.
- Ad publishing and editing with title, description, price, phone, location, category, subcategory, city, neighborhood, and images.
- Ad details, comments, likes/favorites, user profiles, followers, and personal listing management.
- Profile settings, password changes, statistics, dark mode setting, help questions, and language selection.
- Guest-style entry flow is present in the Flutter source.
Backend and REST API
The PHP backend provides API controllers for authentication, home feed data, listing actions, image uploads, user chat records, settings, subscriptions, dashboard records, dashboard CRUD operations, and realtime socket bridging. The API uses a shared API key header and bearer token authentication for protected user actions.
Admin Dashboard
The included admin functionality is implemented as Flutter dashboard screens backed by PHP API endpoints. Dashboard features include overview data, users, ads, comments, questions, notifications, cities, neighborhoods, main categories, subcategories, policies, and subscription type management.
Realtime Functionality
The package includes a Node.js Socket.IO server for realtime app events and chat delivery. Redis is used by the PHP API and Node server for token/socket mapping and event delivery. The Flutter app includes socket connection handling and realtime chat listeners.
Authentication
- User registration and login with email or phone credentials.
- Google Sign-In support with a configurable Google web client ID.
- Password reset/change flows in the Flutter app and PHP API.
- Bearer token generation and Redis token synchronization.
- Account state checks for active, blocked, and deleted users.
Multilingual Support
The Flutter application includes language files and a language selection screen. Confirmed translation file codes are Arabic, English, Spanish, French, Hindi, Indonesian, Turkish, Urdu, German, Italian, and Kurdish.
Notifications
Firebase Cloud Messaging integration is included in the Flutter app. The dashboard and API include notification records and notification receiver management. Buyers must configure their own Firebase project and app-specific Firebase files.
Subscriptions
The project includes in-app purchase subscription support using product IDs stored in the database. The inspected subscription flow uses Android product IDs and a PHP endpoint that verifies Google Play purchases through a Google Play service account before applying the subscription to the user account.
Main Technologies
- Flutter and Dart.
- PHP 8 API backend with Composer autoloading.
- MySQL or MariaDB database.
- Node.js, Express, Socket.IO, and Redis.
- Firebase Core and Firebase Cloud Messaging.
- Google Sign-In and Google Play subscription verification.
Included Source Files
- Flutter_App: mobile app source code and assets.
- Backend/PHP_API: PHP API backend source code.
- Backend/Node_Server: Socket.IO realtime server source code.
- Database: MySQL/MariaDB SQL file with safe demo data.
- Backend/Legacy_Media: demo media folders for listing, chat, category, and profile images.
- Documentation, Installation_Guide, Changelog, and License_Information.
Suitable Use Cases
- Local classified ads marketplace.
- Multi-category listing application.
- Community marketplace with chat between users.
- Location-based product or service discovery app.
- Admin-managed mobile marketplace project.
Documentation and Configuration
The included documentation explains database import, PHP API configuration, upload folder placement, Redis configuration, Node.js server setup, Firebase configuration, Google Sign-In setup, Google Play subscription verification setup, Flutter URL and API key changes, app identity changes, and common troubleshooting steps. Buyer-specific values such as domains, API keys, Firebase files, Redis credentials, Google credentials, database credentials, SMTP values, and release signing files must be configured by the buyer.
Features
Features
Flutter Mobile Application
- Complete Flutter source code for Android and iOS.
- Home feed for classified ads.
- Listing details screen with images, seller information, comments, and actions.
- Publish and edit ads with title, description, price, phone, location, category, subcategory, city, neighborhood, and images.
- Image selection and upload support for ads and profile media.
- Search screen and filter bottom sheet.
- Favorites/likes for ads.
- Comment listing and comment posting.
- My ads screen for user-owned listings.
- Follower and following screens.
- Profile information editing and profile image update.
- Password change and password reset flow.
- Dark mode setting stored with local app storage.
- Statistics screen for user account data.
- Guest-style browsing flow in the app startup logic.
Marketplace Data
- Main categories and subcategories.
- Cities and neighborhoods.
- Location fields with latitude and longitude support.
- Configurable listing filters from the PHP backend.
- Filter configuration supports order, labels, backend keys, input type, required state, values, and option images where configured.
- Safe demo database content for users, ads, categories, cities, neighborhoods, comments, likes, chats, notifications, policies, questions, and subscription types.
Authentication and Accounts
- User registration through the PHP API.
- Email or phone login with password.
- Google Sign-In support with configurable web client ID.
- Email OTP package configured in Flutter with buyer-replaceable sender values.
- Bearer token creation for authenticated API requests.
- Redis synchronization for auth token lookup by the realtime server.
- Blocked and deleted user state checks.
- Account deletion endpoint in settings API.
Realtime Chat and Socket Features
- Node.js Socket.IO realtime server included.
- Redis-backed token and socket mapping.
- Realtime event bridge between PHP API and Node server.
- User chat rooms backed by database records.
- Text chat and image chat message support in the Flutter chat UI.
- Message state handling for waiting, sent, and received states.
- Older message loading for chat rooms.
Notifications
- Firebase initialization in the Flutter app.
- Firebase Cloud Messaging controller included.
- Local notification package included for device notifications.
- Notification records and receiver tables in the database.
- Dashboard notification management screens.
- Single and multi-recipient notification API logic in dashboard records controller.
Admin Dashboard
- Flutter dashboard area for super admin users.
- Dashboard overview screen.
- User list, creation/update, identity check, and user state update actions.
- Ad management and ad state update actions.
- Comment management and comment deletion.
- Question/help request list and read-state update.
- Notification creation and deletion.
- Main category and subcategory management.
- City and neighborhood management.
- Policy management.
- Subscription type management.
Subscriptions and Purchases
- Subscription type model and database table included.
- Flutter in-app purchase package integrated for subscription products.
- Android product IDs are loaded from subscription type data.
- Google Play purchase verification endpoint in the PHP API.
- Google Play service account configuration path included in backend config.
- Purchase token and order ID duplication checks before applying a subscription.
- User subscription status and subscription details stored in the database.
Backend and API
- PHP API backend with PSR-4 autoloading.
- API key validation through request headers.
- Bearer token authentication for protected endpoints.
- MySQL/MariaDB database connection through PDO.
- Configurable PHP timezone and MySQL session time zone.
- Image storage helper for ad images, chat photos, user photos, main category photos, and subcategory photos.
- Language resource files for backend responses in Arabic and English.
- Apache htaccess routing included.
- Nginx rewrite example included in documentation.
Multilingual Support
- Translation files included under Flutter assets.
- Language selection screen included.
- Supported language codes: ar, en, es, fr, hi, id, tr, ur, de, it, and ku.
- Right-to-left layout support through the localization package direction builder.
Configuration Options
- PHP API base URL and path.
- Shared API key used by Flutter, PHP, and Node.
- Database connection credentials.
- Redis connection credentials and TLS flag.
- Public media URL used by Flutter.
- Socket server host and port.
- Firebase app files and generated Firebase options.
- Google Sign-In web client ID.
- Google Play package name and service account JSON path.
- App name, Android application ID, iOS bundle identifier, icons, splash assets, and release signing files.
Requirements
Requirements
Flutter Application
- Flutter SDK with Dart compatible with ^3.6.1, as defined in
Flutter_App/pubspec.yaml. - Android Studio or Visual Studio Code with Flutter tooling.
- Android SDK for Android builds.
- Android Gradle Plugin 8.9.1 and Gradle 8.12 are configured in the Android project.
- Xcode and CocoaPods for iOS builds.
- Buyer-created Android signing keystore and
android/key.propertiesfor release builds. - Buyer-created Firebase project with Cloud Messaging enabled.
google-services.jsonfor Android Firebase configuration.GoogleService-Info.plistfor iOS Firebase configuration.- Regenerated
Flutter_App/lib/firebase_options.dartfor the buyer Firebase project. - Google Sign-In web client ID if Google login remains enabled.
PHP API Backend
- PHP 8.0 or newer, confirmed by
Backend/PHP_API/composer.json. - Composer 2.
- PHP extensions:
pdo_mysql,json,mbstring,openssl,curl, andsession. - MySQL or MariaDB database. The included SQL dump was exported from MariaDB 10.4.32, but the documentation does not require that exact version.
- Apache with
mod_rewriteenabled, or Nginx with equivalent rewrite rules to route requests topublic/index.php. - Writable public media folders for
ad_images,chats_photos,user_photos,main_category_photos, andsub_category_photos. - Buyer-owned domain and SSL certificate for production API and media URLs.
- Buyer-defined shared API key used consistently by Flutter, PHP, and Node.
- Buyer database host, database name, database user, password, charset, and port values.
Node.js Realtime Server
- Node.js 18 or newer.
- npm.
- Redis server reachable by Node.js and PHP.
- PM2 for production process management, as documented in the included Node server README.
- Configured environment values for
PORT,PHP_API_BASE_URL,API_KEY,REDIS_HOST,REDIS_PORT, andREDIS_PASSWORD. - Socket port access or a reverse proxy configuration for production realtime traffic. The documented default socket port is
65535.
Redis
- Redis server for authentication token mapping, socket mapping, and realtime event delivery.
- Redis host, port, password, and TLS settings configured in
Backend/PHP_API/core/Config.phpand Node server environment values. - The PHP backend can use the PHP Redis extension when available; otherwise it uses Predis from Composer.
Database
- MySQL/MariaDB database user with permission to create/import tables and insert demo data.
- Import of
Database/database_with_demo_data.sql. - Optional import or verification of the included
google_play_subscriptionstable if working with the separate subscription SQL file. - Database timezone setting reviewed through
APP_TIMEZONEandDB_TIME_ZONEin PHP backend configuration.
Firebase and Google Services
- Firebase project with Android and iOS apps added using the buyer application ID and bundle identifier.
- Firebase Cloud Messaging enabled.
- Google Sign-In configured with the buyer web client ID if enabled.
- Google Play Console subscription products if Android subscriptions are enabled.
- Google Cloud service account JSON with permission to verify Google Play subscriptions.
- Configured
GOOGLE_PLAY_PACKAGE_NAMEandGOOGLE_PLAY_SERVICE_ACCOUNT_JSON_PATHin backend configuration.
Other Credentials and Configuration
- Buyer-owned SMTP values if the email OTP flow is used.
- Buyer-owned provider/payment placeholder values in
Backend/PHP_API/core/ContactConfig.phpif those placeholders are used by a customized deployment. - Production app name, package name, bundle identifier, icons, splash assets, and store metadata configured by the buyer.
- Server file permissions suitable for PHP, Composer files, and media upload folders.
Instructions
Installation and Configuration Instructions
1. Package Extraction
- Extract the buyer package.
- Review
Main_Files/Documentation/README.mdbefore starting because it contains the full configuration map. - Use
Main_Files/Installation_Guide/INSTALLATION.mdas the quick installation order.
2. Database Creation and Import
- Create a MySQL or MariaDB database on the target server.
- Import
Main_Files/Database/database_with_demo_data.sql. - The included SQL creates a database named
bazaar_db. If another database name is used, update bothSQL_DBandLEGACY_SQL_DBin the PHP configuration. - Verify that the main demo tables import successfully, including users, ads, cities, main categories, subcategories, and neighborhoods.
- Change all demo passwords before production use.
3. PHP Backend Upload
- Upload
Main_Files/Backend/PHP_APIto the server. - The documentation recommends a public path similar to
/public_html/bazaar/v1/with the API routing through thepublicfolder. - Keep the API source folders and Composer files together as included in the package.
4. PHP Backend Configuration
- Edit
Backend/PHP_API/core/Config.php. - Set
base_urlandbase_pathfor the buyer domain and API path. - Set database host, user, password, charset, port, and database name for both standard and legacy database configuration keys.
- Set a new private
API_KEY. The same value must also be used in Flutter and Node.js. - Set
APP_TIMEZONEandDB_TIME_ZONEfor the target market. - Configure Redis host, port, password, and TLS values.
- Review
Backend/PHP_API/core/ContactConfig.phpand replace only the placeholder values required for the deployment.
5. Composer Dependencies
- Open the PHP API folder on the server.
- Run
composer install. - Confirm that Composer creates the vendor autoload files required by
public/index.php.
6. Web Server Configuration
- For Apache, enable
mod_rewriteand keep the included htaccess files. - For Nginx, add an equivalent rewrite rule that routes API requests to
public/index.php. The documentation includes an example that must be adjusted to the buyer server path. - Use HTTPS in production.
- Test the API with the documented cities endpoint using the configured API key.
7. Media Upload Folders
- Upload the contents of
Main_Files/Backend/Legacy_Mediato the public media root described in the documentation. - Ensure the public media root contains
ad_images,chats_photos,user_photos,main_category_photos, andsub_category_photos. - Set folder permissions so PHP can write uploaded files. The documentation suggests starting with
755and using775only if the server requires group write access.
8. Redis Setup
- Install and start Redis on the server or configure access to an existing Redis instance.
- Use the same Redis connection values in PHP backend configuration and Node.js server environment values.
- Confirm Redis is reachable before testing login and realtime chat.
9. Node.js Server Configuration
- Open
Main_Files/Backend/Node_Server. - Install dependencies with
npm install. - Configure environment values using the included
.env.example, PM2, or the hosting control panel. - Set
PORT,PHP_API_BASE_URL,API_KEY,REDIS_HOST,REDIS_PORT, andREDIS_PASSWORD. - Start development mode with
npm start. - For production, use the included
ecosystem.config.cjswith PM2 as documented. - If the production server does not expose the default socket port directly, configure a reverse proxy and update the Flutter socket call sites documented in the buyer guide.
10. Firebase Configuration
- Create a Firebase project.
- Add an Android app using the buyer Android application ID.
- Add an iOS app using the buyer iOS bundle identifier.
- Download and place
google-services.jsoninFlutter_App/android/app/google-services.json. - Download and place
GoogleService-Info.plistinFlutter_App/ios/Runner/GoogleService-Info.plist. - Enable Firebase Cloud Messaging.
- Regenerate
Flutter_App/lib/firebase_options.dartfor the buyer Firebase project.
11. Google Sign-In Configuration
- Configure Google Sign-In for the buyer app identifiers.
- Replace the placeholder web client ID in
Flutter_App/lib/main.dart. - If Google login is not required, remove or disable it in the buyer customization.
12. Google Play Subscription Configuration
- Use Google Play Console to create subscription product IDs for the Android app.
- Update the subscription product IDs in the
subscription_typesdatabase table. - Create a Google Cloud service account with the permissions required to verify subscriptions and orders.
- Place the buyer service account JSON at the configured backend path. The included placeholder file must not be used in production.
- Set
GOOGLE_PLAY_PACKAGE_NAMEandGOOGLE_PLAY_SERVICE_ACCOUNT_JSON_PATHinBackend/PHP_API/core/Config.php.
13. Flutter Application Configuration
- Open
Main_Files/Flutter_App. - Update the PHP API base URL and shared API key in
lib/core/server/call_server_api.dart. - Update the public media URL in
lib/statics_values.dart. - Review the socket helper and socket port call sites documented in the buyer guide.
- Update Firebase options and Firebase metadata for the buyer project.
- Update app name, Android application ID, iOS bundle identifier, icons, splash assets, and release signing files as required.
- Review language files in
assets/lang/and the supported language list inlib/main.dartif languages are added or removed.
14. Flutter Packages and Running the App
- Run
flutter pub getinMain_Files/Flutter_App. - Run the app from Flutter tooling or an IDE after backend, Redis, Node.js, Firebase, URLs, and API key values are configured.
- Test login, listing feed, image loading, chat connection, Firebase notifications, and subscription verification in a development environment before release.
15. Release Builds
- Create buyer-owned Android signing files. The package intentionally excludes local signing files.
- Build Android APK or App Bundle using Flutter or Android Studio after signing and Firebase files are configured.
- For iOS, configure the buyer bundle identifier, signing team, Firebase plist, and CocoaPods before building from Xcode or Flutter tooling.
16. Admin Dashboard Access
- Use a super admin account to access the dashboard flow in the Flutter app.
- The demo documentation lists sample accounts for local testing only.
- Change demo credentials and review account roles before production.
17. Final Production Checklist
- Replace all placeholder credentials and API keys.
- Use HTTPS for API and media URLs.
- Verify upload folder permissions.
- Verify Redis, PHP API, Node.js server, database, Firebase, and Google Play subscription verification.
- Confirm no demo credentials remain in production.
- Review store permission text, app identifiers, icons, splash screens, and release signing before submission.
|
Flutter App Reskin Service
Have your App reskinned to meet your needs.
|
$499 | Buy now |
| Category | App Templates / Flutter / Full Applications |
| First release | 12 July 2026 |
| Last update | 12 July 2026 |
| Operating Systems | Android 7.0, Android 8.0, Android 9.0, iOS 12.0, Android 10.0, iOS 14.0, iOS 13.0, iOS 15.0, Android 11.0, Android 12.0 |
| Files included | .php, .css, .html, .sql, .swift, .apk, .java |
| Tags | chat, MySQL, marketplace, filters, mobile app, multilingual, firebase, NodeJS, subscriptions, classified ads, dark mode, flutter, socket io, redis, php api |








