Skip to content

MedTaha4Ever/MrcMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

55 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MrcMS - Rental Car Management System

Laravel Logo

A comprehensive Rental Car Management System built with Laravel 10, designed to streamline car rental operations with modern web technologies. This system provides a complete solution for managing rental vehicles, customers, and bookings with an intuitive and user-friendly web interface.

🌍 Multilingual Support: The application is fully localized in French for Tunisia, making it perfect for Tunisian car rental businesses.

πŸš€ Live Demo: A working demo is currently running and ready to explore! The application includes sample data for cars, clients, and reservations to help you get started quickly.

Features

Core Functionality

  • Vehicle Management: Add, edit, and manage your fleet of rental vehicles with pricing and availability tracking
  • Customer Management: Complete CRUD operations for client information, rental history, and statistics
  • Booking System: Process rental bookings and reservations with real-time availability checking
  • Dashboard: Administrative dashboard for monitoring operations and key metrics
  • Database Management: Built-in phpMyAdmin for database administration

Advanced Features

  • Smart Pricing: Dynamic pricing calculation based on rental duration and vehicle type
  • Email Notifications: Automated confirmation emails for reservations using Laravel Mail
  • Search & Filtering: Advanced search capabilities for vehicles and customers with real-time filtering
  • Responsive Design: Mobile-friendly interface built with Bootstrap 5
  • Data Validation: Comprehensive form validation and error handling
  • Real-time Calculations: Live price updates as users select rental dates
  • Contract Management: Complete contract lifecycle management from creation to completion
  • French Localization: Full French language support with Tunisian-specific terminology

Quick Start

Want to get MrcMS running immediately? Here's the fastest way:

git clone https://github.com/MedTaha4Ever/MrcMS.git
cd MrcMS
cp .env.example .env
composer install
php artisan key:generate
php artisan migrate
php artisan db:seed
php artisan serve

Then visit http://localhost:8000 to explore the application with sample data!

Key Features Showcase

πŸš— Car Management System

  • Browse available vehicles with real-time pricing at /cars/available
  • Dynamic price calculation based on rental duration
  • Advanced filtering by brand, availability, and date ranges
  • Detailed car information with specifications and pricing

πŸ‘₯ Client Management

  • Complete CRUD operations for customer management at /admin/clients
  • Client statistics and rental history tracking
  • Advanced search and filtering capabilities
  • Comprehensive client profiles with contact information

πŸ“‹ Contract & Reservation System

  • Real-time availability checking and booking
  • Automated email confirmations for new reservations
  • Complete contract lifecycle from creation to completion
  • Contract status management (pending, confirmed, completed)
  • Integration between client and vehicle management

πŸŽ›οΈ Admin Dashboard

  • Centralized management interface at /admin
  • Vehicle fleet management and pricing control
  • Customer relationship management tools
  • Contract monitoring and reporting
  • French-localized administrative interface

Requirements

  • PHP ^8.1
  • Composer
  • Node.js & npm/yarn (for frontend assets)
  • MySQL 8.0 or SQLite (for database)
  • Redis (optional, for caching and sessions)

Installation

Using Docker (Recommended)

  1. Clone the repository:
git clone https://github.com/MedTaha4Ever/MrcMS.git
cd MrcMS
  1. Copy the environment file:
cp .env.example .env
  1. Install PHP dependencies:
composer install
  1. Install JavaScript dependencies:
npm install
  1. Generate application key:
php artisan key:generate
  1. Start the Docker environment:
docker-compose up -d
  1. Run database migrations:
php artisan migrate
  1. Seed the database with sample data (optional):
php artisan db:seed
  1. Build frontend assets:
npm run build

Manual Installation

If you prefer not to use Docker, ensure you have MySQL and Redis running locally, then follow steps 1-5 and 7-9 above, and configure your .env file with your local database credentials.

SQLite Setup (Recommended for Quick Testing)

For a simpler setup without Docker or MySQL, use SQLite:

# Configure for SQLite (simpler setup)
sed -i 's/DB_CONNECTION=mysql/DB_CONNECTION=sqlite/' .env
sed -i 's/DB_DATABASE=.*/DB_DATABASE=database.sqlite/' .env
touch database/database.sqlite

# Then run migrations and seeders
php artisan migrate
php artisan db:seed

🎯 Note: The current demo uses SQLite for simplicity and portability.

Usage

Accessing the Application

  • Main Application: Visit http://localhost:8000 to access the rental management system
  • Admin Dashboard: Navigate to /admin for administrative functions
    • Default Admin Credentials: test@example.com / password
  • Client Portal: Browse available cars and make reservations through the main interface
  • Car Availability: Check real-time car availability and pricing at /cars/available
  • Contract Management: Access contract management at /admin/contracts
  • phpMyAdmin: Database management interface available at http://localhost:8080 (when using Docker)

πŸ” Security Note: Remember to change the default admin credentials in production environments!

Getting Started

  1. Explore Sample Data: If you ran the database seeder, you'll have sample clients, cars, and reservations ready to explore
  2. Admin Functions: Use the admin panel at /admin to manage vehicles, customers, and view contracts
  3. Test Reservations: Try the booking system by browsing available cars at /cars/available and making test reservations
  4. Contract Management: Explore the contract system at /admin/contracts to see the full lifecycle management
  5. Development Mode: Use npm run dev for hot-reloading during development

πŸ’‘ Tip: Start by exploring the admin client management section at /admin/clients to see the full CRUD functionality in action!

Configuration

The application uses Laravel Sail for Docker development. Key configuration files:

Localization

The application is fully localized in French for the Tunisian market:

Language Files

Features

  • Complete French interface for all admin functions
  • Tunisian-specific terminology and formatting
  • Date formatting in French locale
  • Currency display in Tunisian Dinars (DT)
  • French validation messages for forms

To switch back to English, modify the locale setting in config/app.php:

'locale' => 'en', // Change from 'fr' to 'en'

Development

Frontend Development

To start development with hot-reloading:

npm run dev

For production builds:

npm run build

Backend Development

Artisan Commands: Use Laravel's powerful command-line interface:

php artisan list  # View all available commands

Database Management: Reset and reseed the database:

php artisan migrate:fresh --seed

Application Logs: Monitor application activity:

tail -f storage/logs/laravel.log

Testing: Run the test suite:

php artisan test

Project Structure

  • Models: Located in app/Models/ - Contains Car, Client, Reservation, Marque, and Modele models
  • Controllers: Located in app/Http/Controllers/ - Handles application logic including ContractController
  • Views: Located in resources/views/ - Blade templates for the UI with French localization
  • Routes: Defined in routes/web.php - Application routing including admin routes
  • Migrations: Located in database/migrations/ - Database schema with relationship support
  • Seeders: Located in database/seeders/ - Sample data generation for testing
  • Localization: Located in resources/lang/fr/ - French translation files

Contributing

We welcome contributions to improve MrcMS! Here's how you can help:

  1. Fork the repository on GitHub
  2. Create a feature branch:
    git checkout -b feature/amazing-feature
  3. Commit your changes:
    git commit -m 'Add some amazing feature'
  4. Push to the branch:
    git push origin feature/amazing-feature
  5. Open a Pull Request with a clear description of your changes

We appreciate all contributions, whether they're bug fixes, new features, documentation improvements, or suggestions!

Support

If you encounter any issues or have questions:

  • πŸ“– Documentation: Check the Laravel Documentation for framework-specific help
  • πŸ” Debugging: Review the application logs in storage/logs/laravel.log
  • πŸ› Bug Reports: Open an issue on GitHub Issues for bug reports or feature requests
  • πŸ’¬ Questions: Feel free to start a discussion for general questions or suggestions

Common Troubleshooting:

  • Database Connection: Ensure your database credentials in .env are correct
  • Permission Errors: Make sure storage/ and bootstrap/cache/ directories are writable
  • Missing Dependencies: Run composer install and npm install to ensure all dependencies are installed
  • SQLite Issues: Ensure the database/database.sqlite file exists and is writable
  • Email Configuration: Check your mail settings in .env for email notifications to work
  • French Localization: If translations don't appear, ensure the locale is set to 'fr' in config/app.php
  • Contract Issues: Verify that car-model-brand relationships are properly seeded in the database

License

This project is built on the Laravel framework, which is open-sourced software licensed under the MIT license. By Taha for Multimedia Productions

About

Car Rental Management System

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors