← Back to Journal
System Engineering 6 min read

Building AutoCare Manager with Docker

Lessons from connecting Laravel, FastAPI, MySQL, and Docker into one complete workshop management system.

AutoCare Manager began as a vehicle workshop management project, but it gradually became an exercise in integrating multiple technologies into one reliable system. The project combines a Laravel frontend, a FastAPI backend, a MySQL database, and Docker Compose for service orchestration..

Why Docker became necessary

Before containerization, each part of the application depended on services running directly on the local machine. Laravel communicated with FastAPI through localhost, while the backend connected to a separately installed MySQL server.

This worked during early development, but it made the environment harder to reproduce. Docker allowed the frontend, backend, and database to run as separate services with predictable networking and configuration.

Connecting the application services

One of the most important changes was replacing local addresses with Docker service names. Laravel could no longer communicate with the backend through 127.0.0.1 because each container has its own network namespace.

The frontend therefore connected to FastAPI through the backend service name, while FastAPI connected to MySQL through the mysql service name.

  • Laravel frontend running as its own container
  • FastAPI backend exposed through Uvicorn
  • MySQL 8.4 with persistent Docker storage
  • A shared Docker network for service communication

Business rules beyond basic CRUD

The system became more valuable when the modules began sharing business rules. Work orders calculate labour, services, and parts. Inventory is reduced when parts are assigned. Payments cannot exceed invoice totals, and roles determine which users can access each operation.

These rules transformed the project from a collection of pages into an interconnected workshop management system.

What the project taught me

The biggest lesson was that full-stack development is not only about connecting a frontend to an API. It also involves environment configuration, service networking, security, data consistency, deployment, and troubleshooting across multiple layers.

A system becomes more valuable when its components operate together predictably, not merely when each component works independently.