Garage

A comprehensive garage management application for Frappe/ERPNext that handles vehicle service operations, from initial customer contact through diagnosis, repair, and final invoicing.

Install Garage

bench get-app https://github.com/aadhilpm/garage

Add the Frappe Gems badge to your README

Maintain Garage? Paste this into your README:

[![Listed on Frappe Gems](https://frappegems.com/api/method/frappe_gems.seo.badge?app=aadhilpm%2Fgarage)](https://frappegems.com/gems/apps/aadhilpm/garage)

About Garage

Garage Management System

A comprehensive garage management application for Frappe/ERPNext that handles vehicle service operations, from initial customer contact through diagnosis, repair, and final invoicing.

What This App Does

This app manages the complete workflow of a vehicle service garage. It tracks vehicles, schedules appointments, manages diagnoses, handles job cards with parts and labor, and integrates with ERPNext for invoicing and inventory.

Core Features

Vehicle Management

Track customer vehicles with complete service history. Records make, model, year, VIN, current odometer reading, and links to the customer. Each vehicle maintains a history of all service appointments, diagnoses, and completed work.

Service Appointments

Customers can book appointments specifying date, time, service type, and service bay. The system tracks appointment status from scheduled through confirmed, in-progress, completed, or cancelled. Appointments can be linked to service packages for common maintenance.

Vehicle Diagnosis

When a vehicle comes in with issues, technicians create a diagnosis record. This captures customer complaints, diagnostic trouble codes (DTCs) with severity levels, findings from inspection, root cause analysis, and recommended repairs. The diagnosis includes estimated parts and labor costs, calculates totals automatically, and can generate material requests or convert directly to job cards.

Job Cards

The main work order document. Tracks the entire repair process from check-in to delivery. Records all service items and parts used, labor hours by mechanic, odometer reading, customer complaints and work performed. Manages status through draft, in progress, on hold, completed, and delivered states. Handles customer approvals when required.

When submitted, job cards automatically create sales invoices for billing, stock entries for parts consumed, and timesheets for labor tracking. They also check stock availability and can generate material requests for missing parts.

Service Bays

Physical locations where work is performed. Tracks bay number, type (general service, diagnostics, engine work, body work), current status (available, occupied, maintenance), and equipment available. The system updates bay status automatically based on active job cards.

Mechanics

Technician records linked to ERPNext employees. Tracks specialization, experience, hourly rate, current availability, and commission percentage. Used for assigning work and calculating labor costs.

Service Packages

Pre-defined maintenance packages like oil changes or 30K service. Include lists of items needed, standard labor hours, pricing, and recommended service intervals. Can be applied to appointments or job cards to auto-populate items and labor.

Vehicle Inspections

Digital inspection checklists performed during service. Can attach photos, note component conditions (good, needs attention, critical), and link to job cards for documentation.

Custom Desk Pages

Three specialized pages streamline daily operations:

Diagnosis Workstation

For mechanics and technicians. Shows all assigned diagnoses in one view with quick filters. Update status with one click (start, complete). Create material requests directly from the page. Check stock availability for required parts. Convert approved diagnoses to job cards without opening forms. Dashboard shows open, in progress, pending approval, and critical counts.

Job Card Workshop

Real-time workshop view. Visual display of service bay occupancy showing which vehicle is in which bay. Two view modes - kanban view organized by status columns, or list view for detailed review. Quick status updates (start, hold, resume, complete). Stock checker shows required vs available quantities with one-click material request creation. Dashboard tracks active jobs by status and bay availability. Mechanics see only their assigned work.

Approval Center

For service advisors and managers. Central location for all pending customer approvals. View detailed estimates with parts breakdown, labor charges, and totals. Approve or decline with notes that get added to the document. Send estimates to customers via email. Track approvals and declines per day. Filter by type or priority.

ERPNext Integration

The app deeply integrates with ERPNext:

Sales & Invoicing: Completed job cards auto-create sales invoices with all items and labor charges, using configured income accounts and cost centers.

Inventory Management: Stock entries move parts from warehouse to WIP (work in progress) during job card creation, then to consumption when completed. Material requests can be created for purchasing needed parts or transferring from main warehouse to WIP.

Timesheets: Labor charges automatically create timesheets linked to the mechanic's employee record, using configured activity types.

Items: Uses standard ERPNext items for both parts (stock items) and services (non-stock items).

Customers & Vehicles: Links to ERPNext customer records and the standard Vehicle doctype with custom fields added.

Permissions System

Seven pre-configured roles control access:

Garage Manager: Full access to everything. Can view all records, create and modify all documents, access all custom pages.

Service Advisor: Create and manage appointments, diagnoses, and job cards. Access approval center. Cannot delete records. Views all customer records.

Garage Mechanic: See only assigned job cards and diagnoses. Can update status and add findings. Cannot see other mechanics' work. Limited delete permissions.

Garage Customer: Portal access only. View own vehicles and appointments. Cannot see job cards or internal operations.

Parts Manager: Manage inventory, create material requests, view stock levels. No access to diagnosis or job cards.

Quality Inspector: View and create vehicle inspections. Read-only access to job cards.

Garage Accountant: Access invoicing and financial reports. No access to workshop operations.

Reports

Service Revenue Report: Revenue breakdown by date range, service type, or mechanic. Shows totals for parts, labor, and overall revenue.

Job Card Analysis: Performance metrics including average completion time, jobs by status, revenue per job card.

Mechanic Performance: Track jobs completed, hours worked, revenue generated, and commission earned per mechanic.

Customer Service History: Complete service history per customer or vehicle showing all appointments, diagnoses, and completed work.

Pending Approvals: List of diagnoses and job cards awaiting customer approval with aging.

Installation

Install using bench:

cd ~/frappe-bench
bench get-app https://github.com/your-repo/garage --branch develop
bench --site your-site install-app garage

The installation automatically adds custom fields to the ERPNext Vehicle doctype and creates the garage workspace with all links and shortcuts.

Initial Setup

After installation, configure Garage Settings:

Company Defaults: Set your default company, income account, expense account, cost center, and warehouses (both default and WIP warehouse).

Item Configuration: Create or link to a labor item (non-stock service item) and set default timesheet activity type.

Working Hours: Configure working hours for appointment scheduling and slot duration.

Notifications: Enable email notifications if desired.

Demo Data

Load demo data for testing:

bench --site your-site execute garage.garage.install.install_demo_data

This creates sample customers, vehicles, service bays, mechanics, service packages, appointments, job cards, and inspections. Useful for testing the workflow before going live.

Typical Workflow

  1. Customer calls or books online. Service advisor creates a service appointment with date, time, and service bay.

  2. Vehicle arrives. Mechanic opens diagnosis workstation, sees assigned vehicle, clicks start to begin diagnosis.

  3. Mechanic runs diagnostics, adds trouble codes, findings, required parts and labor. Clicks request parts if needed (creates material request). Marks diagnosis complete.

  4. Service advisor opens approval center, reviews diagnosis estimate, sends to customer via email. Customer approves.

  5. Advisor clicks approve in system. Diagnosis automatically converts to job card with all parts and labor populated.

  6. Mechanic opens job card workshop, sees new job, checks stock availability. Clicks start when parts ready.

  7. Mechanic performs work, updates status as needed. Marks complete when done.

  8. Advisor reviews completed job card, submits it. System automatically creates sales invoice, stock entry for consumed parts, and timesheet for labor.

  9. Customer pays invoice, picks up vehicle.

File Structure

garage/
├── garage/
│   ├── doctype/           # All document types
│   ├── page/              # Custom desk pages
│   ├── report/            # Reports
│   ├── utils/             # Helper functions
│   ├── doc_events/        # Document event handlers
│   ├── custom_fields/     # Custom field definitions
│   ├── fixtures/          # Workspace and role fixtures
│   ├── install.py         # Installation hooks
│   ├── demo_data.py       # Demo data generator
│   ├── api.py             # API endpoints
│   └── permissions.py     # Permission logic
├── hooks.py               # App hooks
└── patches/               # Database migrations

API Endpoints

The app provides REST APIs for external integrations:

get_customer_vehicles(customer): Returns all active vehicles for a customer.

get_vehicle_service_history(vehicle): Returns service history for a vehicle.

get_available_slots(date, service_bay): Returns available appointment time slots.

create_appointment_from_portal(customer, vehicle, date, time, service_type): Creates appointment from customer portal.

check_stock_for_job_card(job_card): Checks stock availability for job card items.

get_service_packages(): Returns all active service packages.

create_service_job(data): Creates appointment and job card in one call (used by control center).

All endpoints are whitelisted and accessible via POST to /api/method/garage.garage.api.method_name.

Customization

The app is designed to be customized. Common customizations:

Add custom fields: Modify the vehiclecustomfields.py file to add fields to the Vehicle doctype.

Custom reports: Add new reports in the report folder following the existing patterns.

Modify workflows: Update status options in the doctype JSON files.

Add service types: Update the service appointment doctype to add new service types.

Custom page filters: Edit the page JS files to add new filter buttons or logic.

Requirements

  • Frappe Framework (latest version)
  • ERPNext (latest version)
  • Python 3.10+
  • MariaDB or PostgreSQL

License

MIT

Support

For issues or questions, open an issue in the repository or contact the development team.

Related HR & Payroll apps for Frappe & ERPNext

  • Hrms — Open Source HR and Payroll Software
  • Huf — Open-source, self-hosted multi-agent AI infrastructure for teams and apps with support for cloud and local models, tool integrations, workflows, and automation across business systems including Slack, ERPNext, Discord & Gmail.
  • Bookings — Hotel Management App for Erpnext
  • Employee Self Service — This is the backend component for Nesscale ESS - a mobile app that brings ERPNext to your phone. Employees can manage their HR tasks, sales activities, and projects right from their mobile devices.
  • Inventory Tools — A collection of features to streamline and enhance inventory management and manufacturing workflows in ERPNext.
  • Check Run — Payables utility for ERPNext
  • Next Ai — NextAI is an AI-powered app for Frappe and ERPNext, delivering seamless content generation, automation, and productivity enhancements.
  • Projectit — Open Source PWA mobile app to track the Employees out in the field. This mobile app is developed on Frappe Framework and it is integrated with the Project functionalities of ERPNext and integrated tightly with Frappe HR.