AGENTS.md 6.5 KB

AGENTS.md

Project map for AI agents. Keep this file up-to-date as the project evolves.

Project Overview

Stroyprofit CRM is a Laravel 11 application for managing orders of building structures (windows, doors, MAF). Covers the full lifecycle: order creation, production tracking, document generation (Excel/PDF), reclamation management, spare parts, and scheduling.

Tech Stack

  • Language: PHP 8.2+
  • Framework: Laravel 11
  • Database: MySQL 8.0
  • ORM: Eloquent
  • Frontend: Blade + Bootstrap 5 + jQuery + Vite + Sass
  • Queue: Redis + Laravel Queue Jobs
  • Cache: Redis (predis)
  • WebSocket: Node.js custom server (JWT + Redis pub/sub)
  • Documents: PHPSpreadsheet (Excel templates in /templates/)
  • DevOps: Docker Compose + Nginx + PHP-FPM

Project Structure

strprfcrm/
├── app/
│   ├── Console/              # Artisan commands
│   ├── Events/               # Broadcast events (WebSocket)
│   ├── Helpers/              # Utility helpers
│   ├── Http/
│   │   ├── Controllers/      # Request handlers
│   │   │   └── Admin/        # Admin-specific controllers
│   │   └── Middleware/       # HTTP middleware
│   ├── Jobs/                 # Queue jobs (export, import, generate, notify)
│   │   ├── Export/           # Export jobs
│   │   └── Import/           # Import jobs
│   ├── Models/               # Eloquent models
│   │   ├── Dictionary/       # Reference data models
│   │   └── Scopes/           # Global query scopes
│   ├── Notifications/        # Notification classes (FCM)
│   ├── Observers/            # Model event observers
│   ├── Providers/            # Service providers
│   └── Services/             # Business logic layer
│       ├── Export/           # Excel export services
│       ├── Import/           # Excel import services
│       └── Generate/         # Document generation services
├── database/
│   ├── migrations/           # Database migrations
│   ├── seeders/              # Database seeders
│   └── factories/            # Model factories
├── resources/
│   ├── views/                # Blade templates
│   │   ├── layouts/          # Base layouts
│   │   ├── partials/         # Reusable partials
│   │   ├── orders/           # Order views
│   │   ├── maf_orders/       # MAF order views
│   │   ├── reclamations/     # Reclamation views
│   │   ├── schedule/         # Schedule views
│   │   ├── spare_parts/      # Spare parts views
│   │   ├── spare_part_orders/# Spare part order views
│   │   ├── catalog/          # Product catalog views
│   │   ├── contracts/        # Contract views
│   │   ├── reports/          # Report views
│   │   └── admin/            # Admin panel views
│   ├── sass/                 # SCSS stylesheets
│   └── js/                   # JavaScript entry points
├── routes/
│   ├── web.php               # Main web routes
│   ├── channels.php          # Broadcast channels
│   └── console.php           # Artisan routes
├── templates/                # Excel templates for document generation
├── docker/                   # Docker service configs
│   ├── nginx/                # Nginx config
│   ├── php/                  # PHP-FPM config
│   ├── mysql/                # MySQL config
│   └── simple-ws/            # Node.js WebSocket server
├── docs/                     # Development documentation
├── tech-docs/                # Technical documentation
├── Makefile                  # Dev shortcuts (make up, make install, etc.)
├── docker-compose.yml        # Docker Compose services
└── CLAUDE.md                 # Claude Code project instructions

Key Entry Points

File Purpose
routes/web.php All application routes
app/Http/Controllers/ Request handlers
app/Services/ Business logic (import/export/generate)
app/Jobs/ Async queue jobs
app/Models/ Eloquent models
templates/ Excel templates for document generation
docker/simple-ws/server.js Node.js WebSocket server
Makefile Dev commands (make up, make install, etc.)
.env.example Environment variables reference

Key Models

Model Table/View Purpose
Order orders Client orders
MafOrder maf_orders MAF (small architectural forms) orders
OrderView order_views (view) Aggregated order data
MafOrdersView maf_orders_views (view) Aggregated MAF data
Product products Product catalog
ProductSKU product_skus Product SKU variants
Reclamation reclamations Client reclamations
ReclamationView reclamation_views (view) Aggregated reclamation data
Contract contracts Client contracts
Schedule schedules Production/delivery schedule
SparePart spare_parts Spare parts inventory
SparePartOrder spare_part_orders Spare part procurement orders

Service Layer

Service Purpose
Services/Export/ Excel export (orders, MAFs, schedules, reclamations)
Services/Import/ Excel import (orders, MAFs, reclamations, catalog)
Services/Generate/ Document pack generation (installation, handover, reclamation)
FileService File management
ShortageService Shortage/deficit tracking
SparePartInventoryService Spare part stock management
PdfConverterClient HTTP client for pdf-converter service

Documentation

Document Path Description
README README.md Project landing page
Claude instructions CLAUDE.md Dev commands and architecture overview
Spare parts module SPARE_PARTS_MODULE.md Spare parts feature documentation
Spare parts enhancements SPARE_PARTS_ENHANCEMENTS.md Enhancement notes
Tech docs tech-docs/ Technical documentation

AI Context Files

File Purpose
AGENTS.md This file — project structure map
.ai-factory/DESCRIPTION.md Project specification and tech stack
.ai-factory/ARCHITECTURE.md Architecture decisions and guidelines
CLAUDE.md Claude Code instructions and dev commands