本文へ移動

DEMO Portfolio Demo — 企業・製品・仕様はすべて架空のデータです。

NihonReach Precision tools · Portfolio

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

公開サイトは Blade

閲覧中心の製品情報をサーバーで描画し、構造を明確に保ちます。

管理画面は Inertia / Vue

CRUD と状態変更をコンポーネント化しつつ、Laravel の Session 認証を共有します。

独立 API は作らない

現在の要件に不要な認証・通信レイヤーを増やさず、説明可能性を優先しました。

03 / Implementation

実装した範囲

CATALOG

分類・製品・公開条件

分類フィルター、製品詳細、JSON 仕様、関連製品、公開状態を実装。

INQUIRY

入力検証と状態管理

対象製品の再検証、送信制限、問い合わせ保存、完了時刻を管理。

ADMIN

認証・権限・CRUD

公開登録を止め、管理者ミドルウェアを通した分類・製品・問い合わせ画面を構築。

EVIDENCE

テストと静的解析

公開可視性、権限、検証、CRUD、状態時間の整合性を自動テスト。

04 / Data policy

データ方針

商用運営中の会社や顧客案件ではありません。

  • 製品名・型番・説明・仕様は、この Portfolio Demo 用に作成した架空データです。
  • 実在企業の Logo、顧客情報、図面、内部資料、未公開パラメータは使用していません。
  • 工具画像は本プロジェクト用に生成・選定したオリジナル素材で、特定企業の製品を再現していません。
  • 表示件数は Demo データの現在値であり、営業実績や導入実績ではありません。

05 / Scope

意図した境界

求職用に一つの通常規模のプロジェクトを完成させることを優先し、Redis、マイクロサービス、独立 API、決済、オブジェクトストレージ、実運用メールは追加していません。問い合わせは Demo データベースへ保存され、実在企業への送信は行われません。