Skip to content
OnlyProjects
MCA · Web DevelopmentFor educational purposes only
Code included

Job Card and GST Billing System for a Two-Wheeler Service Centre (MERN)

From appointment to GST invoice — digital job cards, parts stock and service reminders for a two-wheeler garage

Mapped to your syllabusAnna University MCA Regulation 2021 · Project Work · Semester 4

Overview

1 min read

JobCard-GST is a web application that replaces the paper job cards, carbon-copy estimates and hand-written tax invoices used by the thousands of small two-wheeler service centres and independent garages across India. A typical garage juggles walk-ins and phone bookings, tracks each bike's repair on a register, pulls spares from a shelf without recording it, and writes invoices by hand — which makes GST billing slow, stock invisible and service follow-up impossible.

The system gives a garage four internal roles — owner, service advisor and mechanic — plus a public appointment form. Every repair flows through a strict job-card lifecycle: Booked → Vehicle In → Estimate → Approval → In Service → Quality Check → Ready → Delivered, with a rework loop from quality check back to service. Mechanics record the work done and the spares consumed, and each issue decrements the parts stock atomically with a low-stock alert. On delivery the system generates a GST-compliant tax invoice as a PDF — separate line items for parts (HSN 8714) and labour (SAC 9987), CGST/SGST split for intra-state Tamil Nadu sales, and rates held in a configurable table because notifications change. Customer and vehicle history, odometer readings and a configurable interval drive next-service reminders.

Built with React, Node.js/Express and MongoDB — exactly the full-stack taught in MC4201, with the document model from Advanced Database Technology (MC4202) and Git/Docker practice from DevOps (MC4009) — it is a viva-defensible Anna University MCA Regulation 2021 Semester-4 project.

Relevant for
Tamil Nadu
Level
Intermediate · 14 weeks · team of 3
Common at
Anna University, Chennai, IGNOU, Jawaharlal Nehru Technological University Hyderabad
Updated
Nov 2026

Syllabus alignment

Anna University · MCA Regulation 2021

Project Work · Semester 4

Subjects this project applies
  • MC4201 Full Stack Web Development
  • MC4202 Advanced Database Technology
  • MC4203 Cloud Computing
  • MC4009 DevOps
How it is evaluated

See your department's project guidelines.

Also fits: IGNOU MCA_NEW — MCSP-232 guidelines (2025), JNTUH MCA R22, Bharathiar University 2023-24.

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

Small two-wheeler service centres in India handle appointments, estimates, repairs, spares and billing on paper and spreadsheets. The same job details are copied three or four times, estimates are given verbally and disputed, parts leave the shelf without being recorded so stock counts and reorder decisions are guesswork, and hand-written GST invoices routinely get the parts-versus-labour tax split wrong. Owners cannot answer basic questions — which bikes are pending, what was billed last month, when a customer's next service is due — because the history is scattered across filled registers. There is a need for a secure, role-based web application that enforces the garage's real workflow as a job-card state machine, keeps an auditable parts ledger with atomic stock updates, generates correct GST invoices from a configurable rate table, and maintains per-vehicle service history with automatic reminders — without storing any government identity numbers.

Synopsis

Abstract

This project delivers a workflow-driven web application for small two-wheeler service centres: appointments, a state-machine job card per bike, parts inventory with atomic stock updates, GST-compliant invoicing and service reminders. The stack is React, Node.js/Express REST APIs and MongoDB behind Mongoose, with JWT-based role-based access control. The design mirrors an Indian garage's daily routine: phone bookings, walk-ins, odometer readings, shelf-picked parts and cash or UPI settlements.

Introduction

Two-wheelers form India's largest vehicle class, serviced by authorised centres and neighbourhood garages alike. Small ones run almost entirely on paper: the job sheet is rewritten three times (estimate, work log, bill), spares leave the shelf unrecorded, and a shortage surfaces only when a part goes missing. GST makes billing errors costly: parts and labour are taxed under different codes and the invoice must show the correct split. The domain workflow — estimate first, approval before work, quality check before delivery — is genuinely procedural, making it an excellent vehicle for demonstrating state machines, transactions and role-based design.

Existing System and Gap

  • Existing: paper job cards rewritten for estimate, labour and bill; stock in the owner's memory; hand-totalled invoices; phone-call reminders; history lost when a register fills.
  • Limitations: no single source of truth, slow GST invoicing, stock leakage, no audit trail, no measurable turnaround time.
  • Gap: affordable workshop software targets car dealerships and large chains; nothing lightweight models the small Indian two-wheeler garage's exact workflow — estimate-before-work, parts-vs-labour GST split, per-bike history.

Proposed System

  • A public appointment form creates bookings; the service advisor converts them into job cards when the vehicle arrives.
  • A strict job-card state machine (Booked → Vehicle In → Estimate → Approved → In Service → Quality Check → Ready → Delivered, with Cancelled and a Rework loop) enforced on the server, not in the UI.
  • Estimates list labour and parts with prices; work starts only after approval, and every deviation becomes a new estimate revision.
  • Parts issued to a job card are decremented atomically with a transaction, keeping a stock-movement ledger and triggering low-stock alerts at the reorder level.
  • The invoice is generated as a numbered PDF with parts (HSN 8714) and labour (SAC 9987) lines, CGST/SGST computed from a rate table; payments record cash, card or UPI reference.
  • Per-vehicle service history plus a configurable day/km interval feeds the owner's reminder list.

Feasibility Study

  • Technical: The MERN stack is free and well documented; MongoDB fits the nested line-item structure of job cards and invoices, and multi-document transactions cover stock-sensitive operations. The app runs on any machine with Node.js 20 and MongoDB 7 and deploys via Docker.
  • Economic: No licence cost; a low-tier server or the garage's existing PC suffices — far cheaper than the registers and billing errors it replaces.
  • Operational: Screens mirror the paper flow: the service advisor trains in under an hour, the mechanic gets a large-button job board, and the owner gets dashboards.

Objectives

  1. 01Model the garage's repair process as an enforceable job-card state machine with estimate approval and a quality-check rework loop.
  2. 02Implement role-based access control (owner, service advisor, mechanic) with JWT authentication and server-side authorisation middleware.
  3. 03Maintain customer and vehicle registries keyed on mobile number, with no government identity numbers stored.
  4. 04Track parts inventory with atomic, transactional stock decrements, a movement ledger and reorder-level alerts.
  5. 05Generate numbered GST tax invoices as PDFs with separate parts (HSN 8714) and labour (SAC 9987) lines and CGST/SGST split from a configurable rate table.
  6. 06Record payments by cash, card or UPI reference and reconcile them against invoices.
  7. 07Provide per-vehicle service history and configurable day/km service reminders on role-specific dashboards.
  8. 08Ship the system containerised with Docker and a seeded demo dataset, with automated tests for the critical workflows.

Scope

In scope

  • One service centre, three internal roles (owner, service advisor, mechanic) and a public appointment request form.
  • Two-wheeler vehicles of any make; job cards with labour lines, parts lines, estimate revisions and quality check.
  • Parts catalogue with HSN codes, purchase entries, atomic issue/return of stock, low-stock alerts.
  • GST tax invoicing with CGST/SGST split, invoice PDF, payment recording and a monthly billing summary.
  • Service history, odometer log and reminders; CSV export of bills and stock.

Out of scope (v1)

  • Payment-gateway integration (payments are recorded with mode and reference, not processed online).
  • Insurance-claim and warranty-claim workflows, multi-branch or franchise support.
  • Customer login portal and push/SMS sending (the reminder list is displayed and exportable).
  • Bar-code hardware integration; spare-part scanning is manual entry in v1.

Methodology

The project follows an iterative and incremental (Agile-flavoured) SDLC with one-week iterations and a demo to the guide every fortnight — appropriate because the workflow rules (state machine, approval, stock) are refined by feedback after each working increment.

PhaseWeeksActivitiesDeliverable
Requirements1–2Interview a local garage owner; list functional/non-functional requirements; use cases; SRSApproved synopsis + SRS
Design3–4REST API contract, MongoDB schema, job-card state diagram, wireframesDesign document
Increment 15–6Auth, roles, customer/vehicle registry, appointment formWorking registry module
Increment 27–9Job-card state machine, estimates and approval, mechanic boardCore workflow module
Increment 310–11Parts inventory, atomic stock issue, low-stock alertsInventory module
Increment 412GST invoicing, PDF generation, payments, remindersBilling module
Testing & hardening13Unit + integration tests, role-abuse checks, seed dataTest report
Docs & demo14Dockerfile, README, final report, PPT, rehearsalFinal submission

Testing approach: Jest unit tests for validators and the GST calculator; Supertest integration tests for the API including illegal state transitions and concurrent stock issues; manual black-box test-case tables per screen; UAT with a seeded demo day simulating a garage's morning rush.

Architecture & tech stack

3 diagrams · 8 technologies · 2 min read

  • React (MC4201)
  • Node.js + Express (MC4201)
  • MongoDB + Mongoose (MC4202)
  • JWT authentication
  • Tailwind CSS
  • PDFKit (invoice PDFs)
  • Jest / Supertest
  • Docker + Git (MC4009)

The system is a classic three-tier MERN application with a stateless REST API.

  1. Presentation tier — a React SPA (Vite build, Tailwind CSS) with role-aware routing; mechanics use a simplified job board, the owner gets dashboards.
  2. Application tier — Node.js/Express REST API organised as routes → auth middleware (JWT verification and role checks) → controllers → services holding business rules (state transitions, GST computation, stock transactions).
  3. Data tier — MongoDB via Mongoose with validated schemas; multi-document transactions protect stock decrements and invoice creation; PDFKit renders invoices.
flowchart LR
  B["React SPA (advisor / owner / mechanic)"] -->|HTTPS + JWT| API["Express REST API"]
  P["Public appointment form"] --> API
  API --> MW["JWT verify + role middleware"]
  MW --> C["Controllers: job cards, inventory, invoices"]
  C --> S["Services: state machine, GST calc, stock tx"]
  S --> DB[("MongoDB via Mongoose")]
  S --> PDF["PDFKit invoice renderer"]
  S --> F["Stock ledger + low-stock alerts"]

Data model (ER)

erDiagram
  USER ||--o{ JOB_CARD : "works on"
  CUSTOMER ||--o{ VEHICLE : owns
  APPOINTMENT ||--o| JOB_CARD : "becomes"
  VEHICLE ||--o{ JOB_CARD : "has history"
  JOB_CARD ||--o{ JOB_LINE : contains
  PART ||--o{ JOB_LINE : "issued as"
  PART ||--o{ STOCK_MOVE : "moved by"
  JOB_CARD ||--o| INVOICE : "billed by"
  INVOICE ||--o{ PAYMENT : "settled by"
  VEHICLE ||--o{ SERVICE_DUE : "triggers"

  USER {
    string id PK
    string name
    string email UK
    string passwordHash
    string role
  }
  CUSTOMER {
    string id PK
    string name
    string mobile UK
  }
  VEHICLE {
    string id PK
    string customerId FK
    string regNumber
    string makeModel
    int odometerKm
  }
  JOB_CARD {
    string id PK
    string vehicleId FK
    string status
    string assignedMechanicId FK
    date openedAt
  }
  JOB_LINE {
    string id PK
    string jobCardId FK
    string kind
    string hsnSac
    decimal rate
    decimal qty
  }
  PART {
    string id PK
    string name
    string hsn
    int stockQty
    int reorderLevel
  }
  INVOICE {
    string id PK
    string jobCardId FK
    string number UK
    decimal cgst
    decimal sgst
    decimal total
  }

Job-card state machine

flowchart LR
  BK["Booked"] --> VI["Vehicle In"]
  VI --> ES["Estimate Prepared"]
  ES -->|approved| AP["Approved"]
  ES -->|rejected| CX["Cancelled"]
  AP --> IS["In Service"]
  IS --> QC["Quality Check"]
  QC -->|rework needed| IS
  QC --> RD["Ready for Delivery"]
  RD --> DL["Delivered"]

Modules

6 modules

  1. Module 01

    Authentication & Roles (Member 1)

    JWT login with bcrypt-hashed passwords and three internal roles (owner, service advisor, mechanic). Express middleware verifies the token and the role on every protected route, so a mechanic can read assigned jobs but only an advisor can approve estimates and only the owner can configure rates and users.

  2. Module 02

    Customers, Vehicles & Appointments (Member 1)

    A public form captures name, mobile number and bike details for an appointment; the advisor converts appointments into job cards on arrival. Vehicles are keyed by registration number with make/model and odometer, and the customer registry stores only a mobile number — never Aadhaar or PAN.

  3. Module 03

    Job-Card Workflow (Member 2)

    The heart of the system: a server-side state machine (Booked → Vehicle In → Estimate → Approved → In Service → Quality Check → Ready → Delivered, plus Cancelled and rework) that rejects illegal transitions with clear errors, records timestamps for turnaround-time reports and shows mechanics a large-button board of their jobs.

  4. Module 04

    Parts Inventory & Stock Ledger (Member 2)

    Parts catalogue with HSN code, cost, selling price, stock quantity and reorder level; purchase entries increase stock, and issuing a part to a job card decrements it inside a MongoDB transaction that also writes a stock-movement row — so concurrent issues cannot oversell the last unit and every change is auditable.

  5. Module 05

    GST Invoicing & Payments (Member 3)

    On delivery the invoice is built from job lines: parts under HSN 8714 and labour under SAC 9987, taxed at rates from a configurable table (seeded at 18% each following the 2025 rationalisation), split into CGST and SGST for intra-state sales, numbered per financial year and rendered to PDF; payments record cash, card or UPI reference against the invoice.

  6. Module 06

    Dashboards, Reminders & Reports (Member 3)

    Owner dashboard with pending jobs, turnaround time, monthly billing and low-stock alerts; reminder list computed from each vehicle's last service and a configurable day/km interval; CSV exports of invoices and stock for the garage's records and the CA.

Slides

12 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    Job Card & GST Billing System for a Two-Wheeler Service Centre

  2. Slide 2

    Introduction

  3. Slide 3

    Problem Statement

  4. Slide 4

    Existing vs Proposed System

  5. Slide 5

    Objectives

  6. Slide 6

    Technology Stack

  7. Slide 7

    System Architecture

  8. Slide 8

    Database Design

  9. Slide 9

    Job-Card Workflow (Demo)

  10. Slide 10

    GST Invoicing

  11. Slide 11

    Testing

  12. Slide 12

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 16 answered free · 13 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    Why did you choose the MERN stack instead of Java Servlets/JSP or PHP?

    MC4201 teaches the full JavaScript pipeline — browser, server and database — so one language spans the client and server. React gives a responsive role-aware SPA for the garage screens, Express is a thin API layer, and MongoDB's document model fits nested job lines and invoices naturally. The project also needs transactions for stock, which modern MongoDB supports.

  2. 02Concept

    MongoDB is a document database — what advantages does it give you here over MySQL?

    A job card with its labour and part lines is one aggregate that is always read and displayed together, so embedding the lines as an array matches access patterns and avoids joins. Validation happens in the Mongoose schema, and the occasional multi-document operation — decrementing stock and writing the movement row — runs in a transaction. We also state the trade-off: ad-hoc reporting joins are weaker than SQL, so heavy reports are pre-computed exports.

  3. 03Concept

    Explain how JWT authentication works in your application.

    At login the server verifies the bcrypt-hashed password and issues a signed JWT containing the user id and role. The client sends it in the Authorization header; an Express middleware verifies the signature and expiry, attaches the user to the request, and a second middleware checks the role for the route. The server keeps no session store, which keeps the API stateless.

+13 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

7 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

7 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

219 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

219 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

312 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

312 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

10 sources

  1. React Documentation
  2. Express — Node.js web application framework Documentation
  3. MongoDB Manual — documents, indexes and multi-document transactions
  4. Mongoose Documentation — schemas, validation and sessions
  5. RFC 7519 — JSON Web Token (JWT)
  6. OWASP Top 10 — Web Application Security Risks
  7. Goods and Services Tax portal, Government of India (rates, HSN/SAC, invoice rules)
  8. Node.js Documentation
  9. Vasan Subramanian, Pro MERN Stack Development, 2nd ed., Apress
  10. Ian Sommerville, Software Engineering, 10th ed., Pearson

Cite this bundle

OnlyProjects. (2026). Job Card and GST Billing System for a Two-Wheeler Service Centre (MERN): MCA Web Development project bundle [Educational resource]. https://onlyprojects.online/projects/mca-web-two-wheeler-service-centre-jobcard

Future scope

1 min read

  • Online payment capture (UPI/Razorpay) with automatic invoice reconciliation and WhatsApp invoice delivery.
  • Insurance-renewal tracking and PUC expiry reminders per vehicle.
  • Bar-code/QR scanning for parts issue and a supplier purchase-order module.
  • Slow-moving-parts demand analysis to optimise reorder levels.
  • Multi-branch support with a central owner console, and a customer portal with live job status and digital job-card acceptance.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.