How charls-duno/busico-midterm works
charls-db is a Laravel terminal-yard application for registering containers, tracking their yard placements, and calculating dwell time and demurrage. The principal workflow runs from container and placement requests through their controllers to TerminalYardService, which applies validation-related business rules, updates vessel/container/placement records, and computes fees. Authentication and profile management are separate supporting workflows. The tree includes React/Inertia pages, but the README is empty and sampled sources do not establish the full page-to-route wiring; unsampled yard views and dashboard presentation are therefore not mapped in detail.
Main entry points: TerminalYardService.php Yard rules and fees · Container.php Container records · YardPlacement.php Placement records · ContainerController.php Container management
Components 22
Yard operations
- Container management
app/Http/Controllers/ContainerController.php - Placement management
app/Http/Controllers/YardPlacementController.php - Yard rules and fees
app/Services/TerminalYardService.php - Container records
app/Models/Container.php - Placement records
app/Models/YardPlacement.php - Vessel records
app/Models/Vessel.php - Container request validation
app/Http/Requests/StoreContainerRequest.php - Placement request validation
app/Http/Requests/StoreYardPlacementRequest.php - Yard dashboard
app/Http/Controllers/DashboardController.php
Identity and profile
- Authentication routes
routes/auth.php - Login and logout
app/Http/Controllers/Auth/AuthenticatedSessionController.php - Account registration
app/Http/Controllers/Auth/RegisteredUserController.php - Login validation
app/Http/Requests/Auth/LoginRequest.php - User account
app/Models/User.php - Profile settings
app/Http/Controllers/Settings/ProfileController.php - Profile validation
app/Http/Requests/Settings/ProfileUpdateRequest.php
Web presentation
- Inertia middleware
app/Http/Middleware/HandleInertiaRequests.php - Login page
resources/js/pages/auth/login.tsx - Registration page
resources/js/pages/auth/register.tsx - Profile page
resources/js/pages/settings/profile.tsx - Appearance preference
resources/js/hooks/use-appearance.tsx
Other components
- Terminal user
Connections 24
- Terminal user → Authentication routes: uses routes
routes/auth.php - Authentication routes → Login and logout: dispatches login
routes/auth.php - Authentication routes → Account registration: dispatches registration
routes/auth.php - Login and logout → Login validation: authenticates with
app/Http/Controllers/Auth/AuthenticatedSessionController.php - Account registration → User account: creates account
app/Http/Controllers/Auth/RegisteredUserController.php - Login and logout → Login page: renders
app/Http/Controllers/Auth/AuthenticatedSessionController.php - Account registration → Registration page: renders
app/Http/Controllers/Auth/RegisteredUserController.php - Profile settings → Profile validation: validates with
app/Http/Controllers/Settings/ProfileController.php - Profile settings → Profile page: renders
app/Http/Controllers/Settings/ProfileController.php - Terminal user → Container management: manages containers
- Container management → Yard rules and fees: creates or updates
app/Http/Controllers/ContainerController.php - Container management → Container request validation: accepts validated data
app/Http/Controllers/ContainerController.php - Terminal user → Placement management: manages placements
- Placement management → Yard rules and fees: creates or updates
app/Http/Controllers/YardPlacementController.php - Placement management → Placement request validation: accepts validated data
app/Http/Controllers/YardPlacementController.php - Yard rules and fees → Container records: reads and writes
app/Services/TerminalYardService.php - Yard rules and fees → Placement records: reads and writes
app/Services/TerminalYardService.php - Yard rules and fees → Vessel records: finds or creates
app/Services/TerminalYardService.php - Container records → Vessel records: relates to
app/Models/Container.php - Container records → Placement records: relates to
app/Models/Container.php - Placement records → Container records: belongs to
app/Models/YardPlacement.php - Yard dashboard → Container records: reads
app/Http/Controllers/DashboardController.php - Yard dashboard → Placement records: reads
app/Http/Controllers/DashboardController.php - Login page → Appearance preference: uses preference