Motorcycle Rental Website

Project Details

# Motorcycle Rental Website A modern motorcycle rental management system built with Laravel and Filament, providing a complete online rental service. ## 🚀 Features ### Frontend * **Member System**: Registration, login, personal profile management * **Motorcycle Browsing**: View available motorcycles, details, and pricing * **Online Booking**: Select rental period, add to cart, checkout online * **Order Management**: View rental history and order status * **Store Information**: Check branch locations and contact info ### Backend (Filament Admin) * **Motorcycle Management**: Add, edit, delete motorcycle info * **Store Management**: Manage branch information * **Member Management**: View and manage member data * **Order Management**: View all rental orders (read-only) * **Order Details**: View detailed order info * **Dashboard**: Statistics, charts, real-time data ## 🛠 Tech Stack ### Backend * **Laravel 12** – PHP framework * **Filament 3** – Admin panel * **MySQL/SQLite** – Database * **Laravel Sanctum** – API authentication ### Frontend * **Bootstrap 5** – UI framework * **jQuery 3.7.1** – JavaScript library * **Bootstrap Icons** – Icon library * **Flatpickr** – Date picker * **TinyMCE** – Rich text editor ### Integrations * **ECPay** – Online payment system * **Intervention Image** – Image processing ## 📋 Requirements * PHP 8.1 or higher * Composer * Node.js & NPM * MySQL 5.7+ or SQLite * Web server (Apache/Nginx) ## 🚀 Installation ### 1. Clone the repository ```bash git clone [repository-url] cd rent-bike-new ``` ### 2. Install PHP dependencies ```bash composer install ``` ### 3. Environment setup ```bash cp .env.example .env php artisan key:generate ``` ### 4. Database setup ```bash # Configure database in .env php artisan migrate php artisan db:seed ``` ### 5. Install Filament ```bash php artisan filament:install --panels php artisan vendor:publish --tag=filament-config ``` ### 6. Create an admin account ```bash php artisan make:filament-user ``` ### 7. Install frontend dependencies (optional) ```bash npm install npm run dev ``` ## 📁 Project Structure ``` rent-bike-new/ ├── app/ │ ├── Filament/Resources/ # Filament resources │ ├── Http/Controllers/ # Controllers │ └── Models/ # Models ├── database/ │ ├── migrations/ # Migrations │ └── seeders/ # Seeders ├── resources/ │ └── views/ # Blade views ├── routes/ │ └── web.php # Routes └── public/ # Public assets ``` ## 🗄 Database Schema ### Main Tables * **members** – Member information * **motorcycles** – Motorcycle information * **stores** – Store information * **orders** – Order header * **order\_details** – Order details * **carts** – Shopping cart * **cart\_details** – Cart details ## 🔐 Security ### Member Registration * Password strength validation (min. 8 characters, uppercase, lowercase, numbers) * Real-time password strength checking * Password confirmation check * Terms of Service & Privacy Policy consent ### Data Protection * CSRF protection * SQL injection prevention * XSS prevention * Encrypted personal data storage ## 💳 Payment ### ECPay Integration * Credit card payments * ATM transfers * Secure encrypted transmission * Payment status tracking ## 📱 Responsive Design * Desktop, tablet, mobile support * Bootstrap 5 responsive grid * Touch-friendly interface ## 🌐 Multi-language Support * Traditional Chinese interface * Filament localization * Extensible multi-language support ## 🔧 Developer Tools ### Common Commands ```bash # Clear cache php artisan optimize:clear # Rebuild Filament assets php artisan filament:assets # List routes php artisan route:list # Reset database php artisan migrate:fresh --seed ``` ### Dev Tools * Laravel Sail (Docker) * Laravel Telescope (debugging) * Laravel Debugbar ## 📊 Backend Features ### Dashboard * Available motorcycle stats * Rented motorcycle stats * Reservation stats * Real-time charts ### Resource Management * **Motorcycles**: CRUD, image upload, status management * **Stores**: Branch info, motorcycle relations * **Members**: Profiles, rental history * **Orders**: Read-only access to all orders ## 🚨 Important Notes ### Order Restrictions * Order system is read-only (no create/update/delete) * Ensure data integrity and audit trail * Compliance with legal requirements ### File Upload * Auto image compression & format conversion * Secure file naming * Storage management ## 🤝 Contribution Guide 1. Fork the repo 2. Create a feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## 📄 License This project is licensed under the MIT License – see the [LICENSE](LICENSE) file. ## 📞 Contact * Maintainer: \[Your Name] * Email: \[Your Email] * Project Link: \[GitHub link] ## 🙏 Acknowledgments * [Laravel](https://laravel.com/) – PHP framework * [Filament](https://filamentphp.com/) – Admin panel * [Bootstrap](https://getbootstrap.com/) – Responsive UI * [ECPay](https://www.ecpay.com.tw/) – Payment gateway --- **Version**: 1.0.0 **Last Updated**: {{ date('F d, Y') }}