FixIt is a web-based application designed to bridge the gap between customers and service technicians. It streamlines the process of finding verified technicians, managing service requests, negotiating quotes, and processing bookings with an integrated review system.
This project was developed as a Capstone Project for the University of Antique.
- Admin: Verifies technician credentials, manages booking fee payments, and oversees platform activity.
- Technician: Manages profile, sets availability (calendar), handles service requests, issues quotes, and tracks earnings.
- Customer: Browses technicians (Nearby/Popular), creates service requests, approves quotes, and rates services.
- Service Request Workflow:
- Customer initiates request.
- Technician issues a quote (Service Fee + Booking Fee).
- Customer approves quote.
- Admin verifies booking fee payment.
- Technician completes service.
- Real-Time Messaging: Integrated chat system for direct communication between customers and technicians.
- Availability Calendar: Technicians can manage their monthly schedule; customers can view availability before booking.
- Verified Review System: Customers can only rate and review a technician after a service is marked as "Completed" to ensure authenticity.
- Geo-Location: Sort technicians by "Nearby" (Distance) or "Popularity" (Ratings).
- Backend: Laravel 12 (PHP)
- Frontend: React.js with TypeScript (
.tsx) - Glue: Inertia.js (Monolith-like SPA experience)
- Database: MySQL
- Styling: Tailwind CSS & Shadcn UI
- Real-time: Laravel Reverb / Pusher (for broadcasting)
Follow these steps to set up the project locally.
- PHP >= 8.2
- Composer
- Node.js & NPM
- MySQL
-
Clone the Repository
git clone repo cd fixit-web -
Install Backend Dependencies
composer install
-
Install Frontend Dependencies
npm install
-
Environment Setup Copy the example environment file and configure your database credentials.
cp .env.example .env
Open
.envand updateDB_DATABASE,DB_USERNAME, andDB_PASSWORD. -
Generate App Key
php artisan key:generate
-
Run Migrations & Seeders Set up the database tables and default data.
php artisan migrate --seed
-
Link Storage Required for uploading receipts and profile images.
php artisan storage:link
-
Run the Application You need two terminals running simultaneously:
Terminal 1 (Backend):
php artisan serve
Terminal 2 (Frontend):
npm run dev
- Register and upload your License and Certificates in settings.
- Wait for Admin verification.
- Set your availability in the Dashboard Calendar.
- Wait for incoming requests in the Service Requests tab.
- Browse technicians using the Nearby or Popular filters.
- Click "Book Now" or chat to initiate a Service Request.
- Wait for the technician to send a quote.
- Click "Approve Quote" in the chat window to confirm the booking.
- Log in to the Admin Panel.
- Review Technician documents and toggle verification status.
- Go to Service Requests to mark Booking Fees as "Paid" to allow technicians to complete jobs.
This project is open-sourced software licensed under the MIT license.
Developed by: [EJCF2025] University of Antique