This is a Real-Time Auction System built using Laravel 12.x, InertiaJS, and React. It allows users to create and participate in live auctions with real-time bidding updates using Laravel Echo and Reverb for broadcasting. The system supports user authentication, bid tracking, and status updates with a responsive user interface using shadcn/ui.
The project is containerized using Laravel Sail on WSL2 (Windows Subsystem for Linux), which sets up a complete development environment with Docker. Sail handles the installation of PHP, MySQL, Redis, and other services, ensuring a consistent environment for development and deployment across different systems.
- ✅ User Authentication (Register, Login, Logout)
- ✅ Create and Manage Auctions
- ✅ Real-Time Bidding with WebSockets
- ✅ Auction Status Tracking (Active, Pending, Closed, Cancelled)
- ✅ Upload Multiple Images and a Video for Each Auction
- ✅ Role-Based Access (Admin/User)
- ✅ Responsive UI with Tailwind CSS and shadcn/ui
| Technology | Description |
|---|---|
| Laravel 12.x | Backend Framework |
| InertiaJS | Full Stack Frontend Handling |
| React | Frontend Framework |
| Laravel Echo + Reverb | Real-Time Event Broadcasting |
| MySQL | Database |
| Docker + Sail | Development Environment |
| shadcn/ui | UI Components |
| Tailwind CSS 3.4.17 | Styling |
🚀 Installation
git clone https://github.com/JjayFabor/swift-bidder.git
cd realtime-auctionCreate a .env file:
cp .env.example .envGenerate the application key:
php artisan key:generatecomposer install
npm installCreate a MySQL database named auction_db and update your .env file:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=auction_db
DB_USERNAME=root
DB_PASSWORD=./vendor/bin/sail up -d./vendor/bin/sail artisan migrate --seed || php artisan migrate --seednpm run dev📧 Mail Configuration (Gmail)
To enable email notifications through Gmail, configure the mail settings in your .env file as shown below:
Add the following to your .env file:
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}"-
Enable 2-Step Verification on your Google account.
-
Create an App Password:
- Go to Google Account Settings → Security → App Passwords.
- Select Mail → Other → Type "Laravel App."
- Copy the generated password and use it as
MAIL_PASSWORDin the.envfile.
You can test your email configuration using the following Artisan command:
php artisan tinkerIn Tinker, send a test email:
Mail::raw('Test email from Laravel', function ($message) {
$message->to('recipient@example.com')
->subject('Test Email');
});If the configuration is correct, the email will be sent successfully.
📥 Admin & User Credentials (Generated from Seeders)
| Password | |
|---|---|
admin@example.com |
admin1234 |
| Password | |
|---|---|
test@example.com |
test1234 |
⚠️ Note: These credentials are created when you runphp artisan migrate --seed.
- 📖 Laravel Documentation
- 📖 Laravel Sail Documentation
- 📖 InertiaJS Documentation
- 📖 React Documentation
- 📖 Tailwind CSS Documentation
- 📖 shadcn/ui Documentation
- 📖 Reverb Documentation
This project is open-sourced under the MIT license.
👤 Jaylord Vhan Fabor
📧 Email: faborjaylordvhan@gmail.com
📍 LinkedIn: JjayFabor