Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hendurhance/bazaar
The Open Source Ad Auction Marketplace
https://github.com/hendurhance/bazaar
auction collaborate design-patterns documentation laravel marketplace mvc oop open-source php
Last synced: 3 months ago
JSON representation
The Open Source Ad Auction Marketplace
- Host: GitHub
- URL: https://github.com/hendurhance/bazaar
- Owner: hendurhance
- License: agpl-3.0
- Created: 2023-08-18T15:11:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-30T10:42:06.000Z (about 1 year ago)
- Last Synced: 2024-05-03T19:26:08.565Z (9 months ago)
- Topics: auction, collaborate, design-patterns, documentation, laravel, marketplace, mvc, oop, open-source, php
- Language: Blade
- Homepage:
- Size: 81.9 MB
- Stars: 14
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Bazaar Auction Marketplace
π’ The Open Source Ad Auction Marketplace
> If you are here for the nitty-gritty details, you can check out the **[technical documentation](/docs/TECHNICAL_DOCUMENTATION.md)** for the system design, architecture, and design patterns used in the application. You can also check out the **[features](/docs/FEATURES.md)** page for a detailed list of features, and screenshots with key highlights, and live demo.
- [π Table of Contents](#table-of-contents)
- [π About Bazaar](#about-bazaar)
- [π Built With](#built-with)
- [Tech Stack](#tech-stack)
- [Key Features](#key-features)
- [π Live Demo](#live-demo)
- [π» Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [π» Local Machine](#local-machine)
- [π³ Docker](#docker)
- [π¦ Usage](#usage)
- [π§ͺ Testing](#testing)
- [π¨π½βπ» Deployment](#deployment)
- [π File Structure](#file-structure)
- [π Future Features](#future-features)
- [π€ Contributing](#contributing)
- [π₯ Authors](#authors)
- [β FAQ](#faq)
- [π License](#license)
- [βοΈ Support](#οΈsupport)
# π About Bazaar
> Bazaar is an auction marketplace where users can buy and sell items. Users can create an account, list items for sale, bid on items, and view their own items and bids.## π Built With
### Tech Stack
> Bazaaar is built with on PHP Laravel framework and uses MySQL for the database. The front end is also handled by Laravel's Blade templating engine.### Key Features oc
Bazaar is a full-stack web application that allows users to:
1. **π’ Ad Auction Marketplace** - Users can create an account, list items for sale, and manage their listings. Share your listings with friends and family on social media.
2. **π° Bidding** - Users can bid on items and view their bids, get notified when they are outbid, and get notified when they win an auction.
3. **π Search** - Users can search for items by name, description, or category.
4. **π Advanced Analytics** - Users can view their sales and bids in a dashboard with charts and graphs.
5. **π¨βπ©βπ¦ User Dashboard** - Users can view their listings, bids, payments, and payouts history.
6. **π± Admin Dashboard** - Admins can manage users, listings, and bids .etc
7. **π Authentication** - Users can create an account and login to the application. Manage their account settings and password.
8. **π§ In-built Blog CMS** - Admins can create blog posts and manage them. Users can view blog posts and comment on them.
9. **π§ Comment Moderation** - Admins can moderate comments on blog posts.
10. **π§ Email Notifications** - Users get email notifications on events such as outbid, winning an auction, payment confirmation, and more.
11. **π§ Payment Processor** - Users can pay for items using payment gateways such as Paystack, and Flutterwave.
12. **π§ Payouts Processor** - Job workflow for paying Ad Owners for sales of ads auctioned automatically.
13. **π€ Support Ticketing** - Users can create support tickets and admins can respond to them.
14. **π Fully Open Source:** You can self-host the entire stack on your servers.If you want to see a detailed list of features, and screenshots with key highlights, and live demo check out the [features](/docs/FEATURES.md) page.
## π Live Demo
> You can watch a live demo of the application below.https://github.com/hendurhance/bazaar/assets/50846992/3191f5a3-8048-4ded-8f41-f5a1197a349e
# π» Getting Started
## Prerequisites
> You need to have the following installed on your machine to run the application locally.
- [PHP](https://www.php.net/downloads.php)
- [Composer](https://getcomposer.org/download/)
- [MySQL](https://www.mysql.com/downloads/)
- [Docker](https://www.docker.com/products/docker-desktop)
- [Git](https://git-scm.com/downloads)## Installation
### π» Local MachineClick to expand installation instructions for local machine
- **Step 1:** To get started, you need to clone the repository to your local machine. You can do this by running the command below in your terminal.
```bash
git clone https://github.com/hendurhance/bazaar.git
```
- **Step 2:** Navigate to the root directory using the command below.
```bash
cd bazaar
```
- **Step 3:** Install the dependencies using the bash script below. Make sure you give the script execution permission by running `chmod +x ./scripts/*.sh` before running the script.
```bash
./scripts/dependencies.sh
```
- **Step 4:** Create a `.env` file in the root directory of the project. You can do this by copying the `.env.example` file and renaming it to `.env`.
```bash
cp .env.example .env
```
- **Step 5:** Set up your environment variables for database credentials and other settings. You can do this by filling these values in the `.env` file.
```env
...
DB_CONNECTION=mysql
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
...FLUTTERWAVE_SECRET_KEY=
FLUTTERWAVE_PUBLIC_KEY=
FLUTTERWAVE_ENCRYPTION_KEY=
FLUTTERWAVE_REDIRECT_URL=PAYSTACK_SECRET_KEY=
PAYSTACK_PUBLIC_KEY=
PAYSTACK_REDIRECT_URL=RECAPTCHA_SITE_KEY=
RECAPTCHA_SECRET_KEY=
```
You mainly need to fill in the database credentials which is important for the application to run. The other values are for the payment gateways and recaptcha. You can get the payment gateway credentials by creating an account on [Paystack](https://paystack.com/) and [Flutterwave](https://flutterwave.com/). You can get the recaptcha credentials by creating an account on [Google Recaptcha](https://www.google.com/recaptcha/about/).- **Step 6:** After setting up dependencies and environment variables, you need to run the database migrations to create the database tables. You can do this by using the script below.
```bash
./scripts/localize.sh
```
- **Step 7:** After running the script above, you get a link to the application. You can visit the link to view the application.Click to expand installation instructions for docker
- **Step 1:** To get started, you need to clone the repository to your local machine. You can do this by running the command below in your terminal.
```bash
git clone https://github.com/hendurhance/bazaar.git
```
- **Step 2:** Navigate to the root directory using the command below.
```bash
cd bazaar
```
- **Step 3:** Create a `.env` file in the root directory of the project. You can do this by copying the `.env.docker` file and renaming it to `.env`.
```bash
cp .env.docker .env
```
- **Step 4:** Run the docker compose command below to start the application.
```bash
docker-compose up -d
```
- **Step 5:** Open bash in the container using the command below.
```bash
docker exec -it bazaar-app-1 bash
```
- **Step 6:** Make sure you are in the root directory of the project in the container. You can do this by running the command below.
```bash
cd /var/www/html
```
- **Step 7:** Run the database migrations to create the database tables. You can do this by using the script below. Make sure you give the script execution permission by running `chmod +x ./scripts/*.sh` before running the script.
```bash
./scripts/dockerize.sh
```
- **Step 8:** After running the script above, you get a link to the application. You can visit the link to view the application.
- **Step 8:** To stop the application, run the command below.
```bash
docker-compose down
```### π¦ Usage
> You can watch a video on how to use the application below.[![Watch the video](/docs/images/video-bg.png)](https://vimeo.com/894921005?share=copy)
There are a few accounts you can use to test the application after proper installation. You can find the credentials below.
| Name | Email | Password | Role |
| --- | --- | --- | --- |
| Bazaar Admin | [email protected] | password | Admin |
| Bazaar User | [email protected] | password | User |### π§ͺ Testing
__Coming Soon__### π¨π½βπ» Deployment
You can deploy the application to a server using either the docker method or the local machine method. You can find the instructions for both methods below.
| Method | Link |
| --- | --- |
|π³ Docker | [Docker Deployment](#π³-docker) |
|π» Local Machine | [Local Machine Deployment](#π»-local-machine) |### π File Structure
> The project adheres to Laravel's MVC architecture, employing design patterns for clean separation of concerns. The Repository Pattern is utilized to isolate business logic from controllers, promoting maintainability and scalability. Additionally, the Observer Pattern is employed to manage events on models.```mermaid
graph TD
subgraph "App Layer"
subgraph "Controllers"
A[AdController]
B[BidController]
P[PaymentController]
...
end
subgraph "Models"
Ad[Ad]
Bid[Bid]
Media[Media]
Payment[Payment]
Payout[Payout]
PayoutMethod[PayoutMethod]
User[User]
...
end
subgraph "Repositories"
AR[AdRepository]
BR[BidRepository]
MR[MediaRepository]
PR[PaymentRepository]
POR[PayoutRepository]
PMR[PayoutMethodRepository]
UR[UserRepository]
...
end
subgraph "Services"
AS[AvatarService]
MS[MediaStorageService]
PGS[PaymentGatewayService]
...
end
subgraph "Observers"
AO[AdObserver]
BO[BidObserver]
MO[MediaObserver]
PORO[PayoutObserver]
PMO[PayoutMethodObserver]
UO[UserObserver]
...
end
subgraph "Handlers"
PPP[ProcessPaystackPayout]
...
end
subgraph "Jobs"
CTR[CreateTransferRecipient]
PD[ProcessDailyPayouts]
...
end
endsubgraph "Database"
Mysql
endsubgraph "Other Layers"
Routes["routes/web.php"]
Views["resources/views"]
Config["config"]
Tests["tests"]
Docker["docker"]
...
endRoutes --> A
Views --> A
Config --> `{Environment, Configurations}
Docker --> Mysql
Tests --> `{AR, BR, MR, PR, POR, PMR, UR, Routes}
Mysql --> `{Ad, Bid, Media, Payment, Payout, PayoutMethod, User}
A --> `{AR, AS, AO}
B --> `{BR, AS, BO}
P --> `{PR, AS}
AO --> `{AO, AS}
BO --> `{BO, AS}
MO --> `{MO, MS}
PORO --> `{PORO, AS}
PMO --> `{PMO, AS}
UO --> `{UO, AS}
A --> PPP
PPP --> PD
PD --> `{POR, PMR}
CTR --> PMR
```Click to expand file structure
```
.
βββ app
β βββ Abstracts
β β βββ BaseAvatarService.php
β β βββ BaseCrudRepository.php
β β βββ BaseMediaStorageService.php
β βββ Console
β β βββ Commands
β β β βββ MakeInterfaceCommand.php
β β β βββ MakeRepositoryCommand.php
β β βββ Kernel.php
β βββ Contracts
β β βββ Repositories
β β β βββ AdRepositoryInterface.php
β β β βββ AdminAdRepositoryInterface.php
β β β βββ AdminBidRepositoryInterface.php
β β β βββ AdminPaymentRepositoryInterface.php
β β β βββ AdminPayoutMethodRepositoryInterface.php
β β β βββ AdminPayoutRepositoryInterface.php
β β β βββ AnalyticRepositoryInterface.php
β β β βββ AuthenticateRepositoryInterface.php
β β β βββ BidRepositoryInterface.php
β β β βββ CategoryRepositoryInterface.php
β β β βββ CommentRepositoryInterface.php
β β β βββ CountryRepositoryInterface.php
β β β βββ MediaRepositoryInterface.php
β β β βββ MetricRepositoryInterface.php
β β β βββ PaymentRepositoryInterface.php
β β β βββ PayoutMethodRepositoryInterface.php
β β β βββ PayoutRepositoryInterface.php
β β β βββ PostRepositoryInterface.php
β β β βββ SupportRepositoryInterface.php
β β β βββ TagRepositoryInterface.php
β β β βββ UserRepositoryInterface.php
β β βββ Services
β β β βββ AvatarServiceInterface.php
β β β βββ BankCodeServiceInterface.php
β β β βββ MediaStorageServiceInterface.php
β β β βββ PaymentGatewayServiceInterface.php
β β βββ Types
β β βββ HasAll.php
β β βββ HasColor.php
β β βββ HasLabel.php
β βββ Enums
β β βββ AdStatus.php
β β βββ AdType.php
β β βββ CommentStatus.php
β β βββ Gender.php
β β βββ MediaType.php
β β βββ PaymentGateway.php
β β βββ PaymentStatus.php
β β βββ PayoutGateway.php
β β βββ PayoutStatus.php
β β βββ PriceRange.php
β β βββ StorageDiskType.php
β β βββ SupportStatusEnum.php
β βββ Exceptions
β β βββ AdException.php
β β βββ AuthenticateException.php
β β βββ BidCustomException.php
β β βββ BidException.php
β β βββ CommentException.php
β β βββ Handler.php
β β βββ MediaException.php
β β βββ PaymentException.php
β β βββ PayoutException.php
β β βββ PayoutMethodException.php
β β βββ PostException.php
β β βββ SupportException.php
β β βββ UserException.php
β βββ Handler
β β βββ PaystackWebhookSignature.php
β β βββ ProcessPaystackPayout.php
β β βββ ProcessPaystackWebhook.php
β βββ Helpers
β β βββ Helpers.php
β βββ Http
β β βββ Controllers
β β β βββ Admin
β β β β βββ Ad
β β β β β βββ AdController.php
β β β β βββ Auth
β β β β β βββ LoginController.php
β β β β β βββ PasswordController.php
β β β β βββ Bid
β β β β β βββ BidController.php
β β β β βββ Dashboard
β β β β β βββ MetricsController.php
β β β β βββ Media
β β β β β βββ MediaController.php
β β β β βββ Payment
β β β β β βββ PaymentController.php
β β β β βββ Payout
β β β β β βββ PayoutController.php
β β β β β βββ PayoutMethodController.php
β β β β βββ Post
β β β β β βββ CommentController.php
β β β β β βββ PostController.php
β β β β βββ Profile
β β β β β βββ ProfileController.php
β β β β βββ Search
β β β β β βββ SearchController.php
β β β β βββ Support
β β β β β βββ SupportController.php
β β β β βββ User
β β β β βββ UserController.php
β β β βββ Api
β β β β βββ CategoryController.php
β β β β βββ CountryController.php
β β β βββ Controller.php
β β β βββ Page
β β β β βββ BlogController.php
β β β β βββ CommentController.php
β β β β βββ ContactController.php
β β β β βββ HomeController.php
β β β βββ User
β β β βββ Ad
β β β β βββ AdController.php
β β β βββ Auth
β β β β βββ LoginController.php
β β β β βββ PasswordController.php
β β β β βββ RegisterController.php
β β β βββ Bid
β β β β βββ BidController.php
β β β βββ Payment
β β β β βββ PaymentController.php
β β β βββ Payout
β β β β βββ PayoutController.php
β β β β βββ PayoutMethodController.php
β β β βββ Profile
β β β βββ ProfileController.php
β β βββ Kernel.php
β β βββ Middleware
β β β βββ Authenticate.php
β β β βββ EncryptCookies.php
β β β βββ EnsureAccountActive.php
β β β βββ EnsureEmailVerified.php
β β β βββ IncreaseAdViews.php
β β β βββ PreventRequestsDuringMaintenance.php
β β β βββ RedirectIfAuthenticated.php
β β β βββ TrimStrings.php
β β β βββ TrustHosts.php
β β β βββ TrustProxies.php
β β β βββ ValidateSignature.php
β β β βββ VerifyCsrfToken.php
β β βββ Requests
β β βββ Ad
β β β βββ CreateAdRequest.php
β β β βββ CreateBidRequest.php
β β β βββ FilterAdRequest.php
β β β βββ FilterAdminAdsRequest.php
β β β βββ FilterUserAdsRequest.php
β β β βββ ReportAdRequest.php
β β β βββ UpdateAdAdminRequest.php
β β β βββ UpdateAdRequest.php
β β βββ Auth
β β β βββ ForgotPasswordRequest.php
β β β βββ LoginRequest.php
β β β βββ RegisterRequest.php
β β β βββ ResetPasswordRequest.php
β β βββ Bid
β β β βββ FilterAdminBidRequest.php
β β β βββ FilterUserBidRequest.php
β β βββ Media
β β β βββ FilterAdminMediaRequest.php
β β βββ Payment
β β β βββ CreatePayRequest.php
β β β βββ FilterAdminPaymentRequest.php
β β β βββ FilterUserPaymentRequest.php
β β β βββ UpdatePaymentAdminStatus.php
β β βββ Payout
β β β βββ CreatePayoutMethodRequest.php
β β β βββ FilterAdminPayoutMethodRequest.php
β β β βββ FilterAdminPayoutRequest.php
β β β βββ RequestPayout.php
β β βββ Post
β β β βββ CreateCommentRequest.php
β β β βββ CreatePostRequest.php
β β β βββ FilterAdminCommentRequest.php
β β β βββ FilterAdminPostRequest.php
β β β βββ FilterPostRequest.php
β β β βββ UpdateCommentRequest.php
β β β βββ UpdatePostRequest.php
β β βββ Profile
β β β βββ UpdateAdminPasswordRequest.php
β β β βββ UpdateAdminProfileRequest.php
β β β βββ UpdateProfileRequest.php
β β βββ Search
β β β βββ SearchQueryRequest.php
β β βββ Support
β β β βββ CreateSupportRequest.php
β β β βββ FilterAdminSupportRequest.php
β β β βββ UpdateSupportRequest.php
β β βββ User
β β βββ CreateAdminUserRequest.php
β β βββ FilterAdminUserRequest.php
β β βββ UpdateAdminUserRequest.php
β βββ Jobs
β β βββ CreateTransferRecipient.php
β β βββ ProcessDailyPayouts.php
β β βββ ProcessHighestBidder.php
β β βββ TieUserToAds.php
β βββ Models
β β βββ Ad.php
β β βββ Admin.php
β β βββ Bid.php
β β βββ Category.php
β β βββ City.php
β β βββ Comment.php
β β βββ Country.php
β β βββ Media.php
β β βββ Payment.php
β β βββ Payout.php
β β βββ PayoutMethod.php
β β βββ Post.php
β β βββ ReportAd.php
β β βββ State.php
β β βββ Support.php
β β βββ Tag.php
β β βββ Timezone.php
β β βββ User.php
β βββ Notifications
β β βββ Ad
β β β βββ AdCreatedNotification.php
β β β βββ AdStatusUpdatedNotification.php
β β βββ Bid
β β β βββ BidAcceptedNotification.php
β β β βββ BidCreatedNotification.php
β β β βββ BidRejectedNotification.php
β β βββ Payment
β β β βββ BidPaymentNotification.php
β β βββ Payout
β β β βββ PayoutMethodCreatedNotification.php
β β β βββ PayoutRequestNotification.php
β β β βββ PayoutStatusNotification.php
β β βββ Support
β β β βββ SupportTicketNotification.php
β β βββ User
β β βββ PasswordResetNotification.php
β β βββ UserVerificationNotification.php
β β βββ WelcomeEmailNotification.php
β βββ Observers
β β βββ AdObserver.php
β β βββ MediaObserver.php
β β βββ PayoutMethodObserver.php
β β βββ UserObserver.php
β βββ Providers
β β βββ AppServiceProvider.php
β β βββ AuthServiceProvider.php
β β βββ BroadcastServiceProvider.php
β β βββ EventServiceProvider.php
β β βββ RepositoryServiceProvider.php
β β βββ RouteServiceProvider.php
β βββ Repositories
β β βββ Ad
β β β βββ Admin
β β β β βββ AdminAdRepository.php
β β β βββ User
β β β βββ AdRepository.php
β β βββ Analytic
β β β βββ AnalyticRepository.php
β β βββ Auth
β β β βββ AuthenticateRepository.php
β β βββ Bid
β β β βββ Admin
β β β β βββ AdminBidRepository.php
β β β βββ User
β β β βββ BidRepository.php
β β βββ Category
β β β βββ CategoryRepository.php
β β βββ Country
β β β βββ CountryRepository.php
β β βββ Media
β β β βββ MediaRepository.php
β β βββ Metric
β β β βββ MetricRepository.php
β β βββ Payment
β β β βββ Admin
β β β β βββ AdminPaymentRepository.php
β β β βββ User
β β β βββ PaymentRepository.php
β β βββ Payout
β β β βββ Admin
β β β β βββ AdminPayoutMethodRepository.php
β β β β βββ AdminPayoutRepository.php
β β β βββ User
β β β βββ PayoutMethodRepository.php
β β β βββ PayoutRepository.php
β β βββ Post
β β β βββ CommentRepository.php
β β β βββ PostRepository.php
β β β βββ TagRepository.php
β β βββ Support
β β β βββ SupportRepository.php
β β βββ User
β β βββ UserRepository.php
β βββ Rules
β β βββ Username.php
β βββ Services
β β βββ Avatar
β β β βββ BoringAvatar.php
β β β βββ DiceBear.php
β β β βββ Gravatar.php
β β β βββ UIAvatar.php
β β βββ Media
β β β βββ LocalStorage.php
β β β βββ MediaStorageService.php
β β β βββ S3Storage.php
β β βββ Payment
β β β βββ PayWithFlutterwave.php
β β β βββ PayWithPaystack.php
β β β βββ PaymentGatewayService.php
β β βββ Payout
β β βββ BankCodeService.php
β βββ Traits
β β βββ ApiResponse.php
β β βββ HasAvatar.php
β β βββ HasMedia.php
β β βββ HasNameSplit.php
β β βββ HasPayoutToken.php
β β βββ HasSlug.php
β β βββ HasTransactionID.php
β β βββ HasUuids.php
β β βββ HasVerifiedEmail.php
β β βββ MediaHandler.php
β β βββ PasswordEnvironments.php
β βββ View
β βββ Components
β βββ AdFilterComponent.php
β βββ AdItemCard.php
β βββ AdStatusSelectable.php
β βββ AdminAdTable.php
β βββ AdminPaymentTable.php
β βββ AdminPayoutTable.php
β βββ AdminSupportTable.php
β βββ AgreeCheckbox.php
β βββ Alert.php
β βββ BlogFilterComponent.php
β βββ CategoriesCard.php
β βββ CategorySelectable.php
β βββ CountriesSelectable.php
β βββ EditProfileCard.php
β βββ FilterAdminBidCard.php
β βββ FilterAdminCommentCard.php
β βββ FilterAdminMediaCard.php
β βββ FilterAdminPaymentCard.php
β βββ FilterAdminPayoutCard.php
β βββ FilterAdminPayoutMethodCard.php
β βββ FilterAdminPostCard.php
β βββ FilterAdminSupportCard.php
β βββ FilterAdminUserCard.php
β βββ GenderSelectable.php
β βββ InputField.php
β βββ InputItemField.php
β βββ LocationSelectable.php
β βββ MetricCard.php
β βββ PayableForm.php
β βββ PaymentFilterComponent.php
β βββ PayoutForm.php
β βββ PhoneSelectable.php
β βββ PostTagCard.php
β βββ ProfileAvatarCard.php
β βββ TagSelectable.php
β βββ TextareaField.php
βββ artisan
βββ bootstrap
β βββ app.php
β βββ cache
β βββ packages.php
β βββ services.php
βββ composer.json
βββ composer.lock
βββ config
β βββ app.php
β βββ auth.php
β βββ broadcasting.php
β βββ cache.php
β βββ cors.php
β βββ database.php
β βββ filesystems.php
β βββ hashing.php
β βββ image.php
β βββ laracaptcha.php
β βββ logging.php
β βββ mail.php
β βββ payment.php
β βββ queue.php
β βββ sanctum.php
β βββ services.php
β βββ session.php
β βββ view.php
β βββ webhook-client.php
βββ database
β βββ dump
β β βββ cities.sql
β β βββ countries.sql
β β βββ states.sql
β β βββ timezones.sql
β βββ factories
β β βββ AdFactory.php
β β βββ AdminFactory.php
β β βββ BidFactory.php
β β βββ CategoryFactory.php
β β βββ CommentFactory.php
β β βββ CountryFactory.php
β β βββ MediaFactory.php
β β βββ PaymentFactory.php
β β βββ PayoutFactory.php
β β βββ PayoutMethodFactory.php
β β βββ PostFactory.php
β β βββ ReportAdFactory.php
β β βββ SupportFactory.php
β β βββ TagFactory.php
β β βββ UserFactory.php
β βββ migrations
β β βββ 2019_12_14_000001_create_personal_access_tokens_table.php
β β βββ 2021_08_21_191921_create_countries_table.php
β β βββ 2021_08_21_191945_create_states_table.php
β β βββ 2021_08_21_191951_create_cities_table.php
β β βββ 2021_08_21_191958_create_timezones_table.php
β β βββ 2022_10_12_000000_create_users_table.php
β β βββ 2022_10_12_100000_create_password_reset_tokens_table.php
β β βββ 2022_10_19_000000_create_failed_jobs_table.php
β β βββ 2023_08_18_112614_create_admins_table.php
β β βββ 2023_08_18_112634_create_categories_table.php
β β βββ 2023_08_18_112658_create_ads_table.php
β β βββ 2023_08_18_112706_create_media_table.php
β β βββ 2023_08_18_112709_create_bids_table.php
β β βββ 2023_08_18_112711_create_payments_table.php
β β βββ 2023_08_18_112802_create_report_ads_table.php
β β βββ 2023_08_18_112841_create_posts_table.php
β β βββ 2023_09_24_183644_create_payout_methods_table.php
β β βββ 2023_09_24_183648_create_payouts_table.php
β β βββ 2023_11_18_192504_create_tags_table.php
β β βββ 2023_11_18_192531_create_post_tag_table.php
β β βββ 2023_11_18_202848_create_comments_table.php
β β βββ 2023_12_01_112830_create_supports_table.php
β βββ schema
β βββ seeders
β βββ AdSeeder.php
β βββ AdminSeeder.php
β βββ AtlasSeeder.php
β βββ CategorySeeder.php
β βββ DatabaseSeeder.php
β βββ PayoutSeeder.php
β βββ PostSeeder.php
β βββ SupportSeeder.php
β βββ TagSeeder.php
β βββ UserSeeder.php
βββ docker
β βββ 01-database.sql
β βββ Dockerfile
βββ docker-compose.yml
βββ docs
β βββ images
β βββ bazaar-logo.png
β βββ header.png
βββ package.json
βββ phpunit.xml
βββ resources
β βββ css
β β βββ app.css
β βββ js
β β βββ app.js
β β βββ bootstrap.js
β βββ views
β βββ ads
β β βββ admin
β β β βββ edit.blade.php
β β β βββ index.blade.php
β β β βββ report.blade.php
β β β βββ show.blade.php
β β β βββ status
β β β βββ active.blade.php
β β β βββ expired.blade.php
β β β βββ pending.blade.php
β β β βββ rejected.blade.php
β β β βββ reported.blade.php
β β β βββ upcoming.blade.php
β β βββ user
β β βββ edit.blade.php
β β βββ index.blade.php
β β βββ show.blade.php
β βββ auth
β β βββ admin
β β β βββ login.blade.php
β β β βββ password
β β β βββ forgot.blade.php
β β β βββ reset.blade.php
β β βββ user
β β βββ login.blade.php
β β βββ password
β β β βββ forgot.blade.php
β β β βββ reset.blade.php
β β βββ register.blade.php
β βββ bids
β β βββ admin
β β β βββ index.blade.php
β β β βββ show.blade.php
β β βββ user
β β βββ index.blade.php
β β βββ show.blade.php
β βββ blogs
β β βββ admin
β β βββ create.blade.php
β β βββ edit.blade.php
β β βββ index.blade.php
β β βββ show.blade.php
β βββ comments
β β βββ admin
β β βββ edit.blade.php
β β βββ index.blade.php
β βββ components
β β βββ ad-filter-component.blade.php
β β βββ ad-item-card.blade.php
β β βββ ad-status-selectable.blade.php
β β βββ admin-ad-table.blade.php
β β βββ admin-payment-table.blade.php
β β βββ admin-payout-table.blade.php
β β βββ admin-support-table.blade.php
β β βββ agree-checkbox.blade.php
β β βββ alert.blade.php
β β βββ blog-filter-component.blade.php
β β βββ categories-card.blade.php
β β βββ category-selectable.blade.php
β β βββ countries-selectable.blade.php
β β βββ edit-profile-card.blade.php
β β βββ filter-admin-bid-card.blade.php
β β βββ filter-admin-comment-card.blade.php
β β βββ filter-admin-media-card.blade.php
β β βββ filter-admin-payment-card.blade.php
β β βββ filter-admin-payout-card.blade.php
β β βββ filter-admin-payout-method-card.blade.php
β β βββ filter-admin-post-card.blade.php
β β βββ filter-admin-support-card.blade.php
β β βββ filter-admin-user-card.blade.php
β β βββ gender-selectable.blade.php
β β βββ input-field.blade.php
β β βββ input-item-field.blade.php
β β βββ location-selectable.blade.php
β β βββ metric-card.blade.php
β β βββ payable-form.blade.php
β β βββ payment-filter-component.blade.php
β β βββ payout-form.blade.php
β β βββ phone-selectable.blade.php
β β βββ post-tag-card.blade.php
β β βββ profile-avatar-card.blade.php
β β βββ tag-selectable.blade.php
β β βββ text-area-field.blade.php
β β βββ textarea-field.blade.php
β βββ dashboard
β β βββ admin
β β β βββ index.blade.php
β β β βββ search.blade.php
β β βββ user
β β βββ index.blade.php
β βββ layouts
β β βββ breadcrumb.blade.php
β β βββ footer.blade.php
β β βββ header.blade.php
β β βββ notify.blade.php
β β βββ preloader.blade.php
β β βββ script.blade.php
β β βββ search.blade.php
β β βββ seo.blade.php
β β βββ sidebar.blade.php
β β βββ style.blade.php
β β βββ testimonials.blade.php
β β βββ why-choose-us.blade.php
β βββ media
β β βββ admin
β β βββ index.blade.php
β β βββ show.blade.php
β βββ pages
β β βββ about
β β β βββ index.blade.php
β β βββ blog
β β β βββ index.blade.php
β β β βββ show.blade.php
β β βββ contact
β β β βββ index.blade.php
β β βββ home
β β β βββ index.blade.php
β β βββ how-it-works
β β β βββ index.blade.php
β β βββ live-auction
β β βββ create.blade.php
β β βββ index.blade.php
β β βββ report.blade.php
β β βββ show.blade.php
β βββ pagination
β β βββ admin.blade.php
β β βββ custom.blade.php
β β βββ search.blade.php
β β βββ simple.blade.php
β βββ partials
β β βββ admin.blade.php
β β βββ app.blade.php
β βββ payments
β β βββ admin
β β β βββ index.blade.php
β β β βββ show.blade.php
β β β βββ status
β β β βββ failed.blade.php
β β β βββ pending.blade.php
β β β βββ successful.blade.php
β β βββ user
β β βββ index.blade.php
β β βββ show.blade.php
β βββ payout-methods
β β βββ admin
β β β βββ index.blade.php
β β β βββ show.blade.php
β β βββ user
β β βββ create.blade.php
β β βββ edit.blade.php
β β βββ index.blade.php
β βββ payouts
β β βββ admin
β β β βββ index.blade.php
β β β βββ show.blade.php
β β β βββ status
β β β βββ failed.blade.php
β β β βββ pending.blade.php
β β β βββ successful.blade.php
β β βββ user
β β βββ index.blade.php
β β βββ show.blade.php
β βββ profile
β β βββ admin
β β β βββ index.blade.php
β β βββ user
β β βββ index.blade.php
β βββ supports
β β βββ admin
β β βββ create.blade.php
β β βββ index.blade.php
β β βββ show.blade.php
β β βββ status
β β βββ pending.blade.php
β β βββ resolved.blade.php
β βββ users
β βββ admin
β βββ create.blade.php
β βββ edit.blade.php
β βββ index.blade.php
β βββ show.blade.php
βββ routes
β βββ admin.php
β βββ api.php
β βββ channels.php
β βββ console.php
β βββ user.php
β βββ web.php
βββ scrape.py
βββ scripts
β βββ dependencies.sh
β βββ dockerize.sh
β βββ localize.sh
βββ stubs
β βββ interface.stub
β βββ repository.stub
βββ tests
β βββ CreatesApplication.php
β βββ Feature
β β βββ ExampleTest.php
β βββ TestCase.php
β βββ Unit
β βββ ExampleTest.php
βββ vite.config.js
```# π Future Features
- [ ] Add tests
- [ ] Add more payment gateways
- [ ] Add more payout gateways
- [ ] Advertise on the platform
- [ ] Add more metrics
- [ ] Process and manage payouts with bank transfer by Admin
- [ ] Admin can manage tags and categoriesSee the [open issues](https://github.com/hendurhance/bazaar/issues) for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request# π₯ Authors
- Endurance - [Github](https://github.com/hendurhance) - [Twitter](https://twitter.com/hendurhance) - [LinkedIn](https://www.linkedin.com/in/hendurhance/)# β FAQ
- **What is the purpose of this project?**
- This project is an open-source classified ads platform that allows users to buy and sell products by bidding on them. It you to easily create your own classified ads platform.
- **What is the technology stack used?**
- Laravel, JavaScript, MySQL, Docker, and more.
- **How can I contribute to the project?**
- You can contribute by forking the project and creating a pull request. You can also open an issue with the tag "enhancement".
- **How can I support the project?**
- You can support the project by starring β this repository.# π License
Distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. See [LICENSE](/LICENSE) for more information.# βοΈ Support
If you like this project, You can support me with starring β this repository. You can also [buy me a coffee](https://www.buymeacoffee.com/hendurhance) βοΈ or become a sponsor using the links below β‘οΈ [github sponsors](https://www.github.com/sponsors/hendurhance). Thanks a bunch for your support!