This project is an online car workshop appointment system designed to bring efficiency and organization to the service process. It aims to eliminate the hassle of in-person bookings and reduce chaos by allowing customers to schedule appointments online, while also streamlining the assignment of mechanics through a structured digital system.
- Clients can book an appointment online without creating an account.
- A mechanic can be assigned to a maximum of 4 active cars per day.
- If the desired mechanic is fully booked, they will not appear in the available list.
- Clients can not book multiple appointments for the same day.
- Admin can view all booked appointments.
- Admin can:
- Modify the appointment date
- Reassign mechanics (only if the target mechanic has less than 4 assignments)
Before setting up the project, you need to install the following software on your system:
Windows:
- Download Git from https://git-scm.com/download/win
- Run the installer and follow the setup wizard
- Accept default settings for most options
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install gitWindows:
- Download PHP from https://windows.php.net/download/
- Choose "Thread Safe" version for your architecture (x64 or x86)
- Extract to
C:\php(or your preferred location) - Add PHP to your system PATH:
- Open System Properties → Advanced → Environment Variables
- Add
C:\phpto your PATH variable
- Verify installation: Open Command Prompt and run
php -v
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install php8.3 php8.3-cli php8.3-xml php8.3-sqlite3 php8.3-mbstring php8.3-curl php8.3-zipWindows:
- Download Composer installer from https://getcomposer.org/download/
- Run
Composer-Setup.exeand follow the installation wizard - Verify installation: Open Command Prompt and run
composer --version
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install composerAfter installing all prerequisites, verify your setup:
git --version
php -v
composer --version-
Clone the repository:
git clone https://github.com/badhon495/Karigor cd Karigor -
Install dependencies:
composer install
-
Set up the environment file:
cp .env.example .env php artisan key:generate
-
Configure database in
.env:For Local Development (SQLite - Recommended for beginners):
DB_CONNECTION=sqlite DB_DATABASE=./database/database.sqlite
For Production or Advanced Setup (PostgreSQL):
DB_CONNECTION=pgsql DB_HOST=your-postgres-host DB_PORT=5432 DB_DATABASE=your-database-name DB_USERNAME=your-username DB_PASSWORD=your-password
Note: The live demo uses PostgreSQL, but for local development, SQLite is easier to set up.
-
Run migrations:
php artisan migrate
-
Start the local server:
php artisan serve
-
Visit http://localhost:8000
You can try the live demo of this website here: https://karigor.onrender.com/
Note: As this is deployed on a free hosting service, the server may take up to one minute to boot if it has been idle.
- Clients can book appointments with available mechanics.
- Admin has full control over managing and updating appointments.
- The administrative interface is not visible to regular users on any public-facing pages. The admin login page can be accessed via: http://localhost:8000/admin/login
- The default administrator email is
admin@gmail.comand the default password isadmin123. - Once logged into the admin panel, you have the ability to add mechanics. These added mechanics will then be available for selection when users book appointments.
1. "Please provide a valid cache path" Error:
php artisan cache:clear
php artisan config:clear
php artisan view:clear2. Permission Denied Errors (Linux/Mac):
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache3. Missing PHP Extensions:
# Linux (Ubuntu/Debian)
sudo apt install php8.3-mbstring php8.3-xml php8.3-curl php8.3-zip php8.3-sqlite34. Composer Install Fails:
composer clear-cache
composer install --no-cache5. Migration Errors:
php artisan migrate:fresh --force6. Key Not Set Error:
php artisan key:generateIf you encounter any issues not covered above, please:
- Check the Laravel logs in
storage/logs/laravel.log - Ensure all prerequisites are properly installed
- Verify your
.envfile configuration - Try running
php artisan config:cacheafter making changes
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
⭐ Star this repo if you found it helpful!