2026-08-26 23:47:51 +03:00
2026-08-26 23:40:31 +03:00
2026-08-26 23:47:51 +03:00
2026-08-26 22:39:33 +03:00
2026-08-26 23:40:31 +03:00
2026-08-26 22:39:33 +03:00
2026-08-26 22:39:33 +03:00
2026-08-26 23:47:51 +03:00
2026-08-26 23:40:31 +03:00

Car Service Database

PostgreSQL database and web dashboard for a car service workshop, managed with Docker Compose.

Start

docker compose up -d

Open the web dashboard at http://localhost:3011.

The dashboard's Vehicles view provides a dedicated vehicle register containing make, model, model year, engine, transmission, fuel type, color, VIN, license plate, mileage, owner, and service-record count. The Service records form stores these vehicle details and can autofill them, along with the customer, when an existing VIN or license plate is entered. Customer contact information can also be autofilled by customer email or by a unique customer name. Names are not unique, so duplicate names are allowed; when a name matches multiple customers, the form asks for an email instead of choosing one incorrectly. It supports adding, listing, and editing service records with service date, VIN, license plate number, car mileage, customer, technician, complaint, and status. Adding a record creates or updates the linked customer and vehicle, technician, and service order in one transaction.

Service records can also include optional used parts and labor lines. Parts support a part number, quantity, and unit price. Labor supports used time in hours and an hourly price. Line totals and the service-record total are calculated automatically and stored with the service order.

The Accounts view supports reading, adding, editing, and deleting users with read, add, and delete rights. A default admin account is created automatically, and the last administrator cannot be deleted. These permissions are currently stored as staff access profiles; login/session enforcement can be added when authentication is required.

Check that the database is ready:

docker compose ps
docker compose exec car-service-db pg_isready -U car_service_app -d car_service

Connect with psql inside the container:

docker compose exec car-service-db psql -U car_service_app -d car_service

The default connection values are:

  • Host: localhost
  • Port: 5432
  • Database: car_service
  • User: car_service_app
  • Password: change-me-in-production

To use different values, create a .env file next to docker-compose.yml:

POSTGRES_DB=car_service
POSTGRES_USER=car_service_app
POSTGRES_PASSWORD=use-a-strong-password
POSTGRES_PORT=5432

The schema is loaded from init.sql the first time the named volume is created. To recreate the database from scratch, including all data:

docker compose down -v
docker compose up -d

Do not use the default password in production. Restrict the published port or place the database on a private Docker network when an application is added.

S
Description
No description provided
Readme
140 KiB
Languages
JavaScript 70.1%
HTML 29.6%
Dockerfile 0.3%