訪問者側
製品カテゴリ、詳細仕様、対象製品を引き継いだ問い合わせフォームが必要でした。
DEMO Portfolio Demo — 企業・製品・仕様はすべて架空のデータです。
制作範囲を確認Portfolio case study
精密切削工具メーカーの製品サイトと管理業務を題材に、公開カタログから問い合わせ対応までを一つの Laravel アプリケーションとして実装しました。
Public site
Blade / Tailwind CSS
Admin
Inertia / Vue / TypeScript
Backend
Laravel / Eloquent / MySQL
Quality
PHPUnit / PHPStan / Pint
01 / Context
製品カテゴリ、詳細仕様、対象製品を引き継いだ問い合わせフォームが必要でした。
分類・製品の CRUD と、問い合わせを new・in progress・closed で管理する画面が必要でした。
02 / Architecture
現在の規模で説明できる、単純な Laravel 単体構成を選びました。
REQUEST
Route
BOUNDARY
Middleware
Form Request
ACTION
Controller
DOMAIN
Eloquent
MySQL
RESPONSE
Blade
Inertia / Vue
閲覧中心の製品情報をサーバーで描画し、構造を明確に保ちます。
CRUD と状態変更をコンポーネント化しつつ、Laravel の Session 認証を共有します。
現在の要件に不要な認証・通信レイヤーを増やさず、説明可能性を優先しました。
03 / Implementation
CATALOG
分類フィルター、製品詳細、JSON 仕様、関連製品、公開状態を実装。
INQUIRY
対象製品の再検証、送信制限、問い合わせ保存、完了時刻を管理。
ADMIN
公開登録を止め、管理者ミドルウェアを通した分類・製品・問い合わせ画面を構築。
EVIDENCE
公開可視性、権限、検証、CRUD、状態時間の整合性を自動テスト。
04 / Data policy
商用運営中の会社や顧客案件ではありません。
05 / Scope
求職用に一つの通常規模のプロジェクトを完成させることを優先し、Redis、マイクロサービス、独立 API、決済、オブジェクトストレージ、実運用メールは追加していません。問い合わせは Demo データベースへ保存され、実在企業への送信は行われません。