人材派遣管理システムを個人開発してみた
⚠️ 注意事項 この記事は「ReactとPHPの連携」や「業務アプリのUI/UX設計」の学習を目的としたプロトタイプ開発の記録です。 コードの簡潔さを優先し、以下のセキュリティ対策は意図的に割愛しています。パスワードのハッシュ化
ファイルアップロードの厳格なバリデーション
CSRF / XSS / SQLインジェクション対策
認証トークンの署名・検証
実務で同様のシステムを構築する際は、Laravel などのWAF (Web Application Framework) を使用し、適切なセキュリティ対策を行ってください。
技術スタック
フロント
React + TypeScript
Vite
MUI
axios
recharts(=管理画面・集計を意識してるのが分かる)
バックエンド
PHP(API直書き)
db.php でDB接続
REST 風 API
はじめに
人材派遣・業務委託系のシステムは、
業務要件が多く、かつ「ちょうどよく面倒」 な領域だと思っている。
スタッフ管理
案件管理
稼働・契約・期間
管理者と現場ユーザーの分離
集計・可視化
業務系エンジニアとしては、
CRUD だけの Todo アプリよりも、
こういった 現実の業務に近い題材 のほうが設計の練習になる。
そこで今回、
人材派遣管理システムを個人開発してみた。
システム概要
本システムは、
人材派遣業務を想定した 管理向け Web アプリケーション である。
想定機能
スタッフ情報管理
派遣・契約情報の管理
管理画面ベースの操作
データの集計・可視化(グラフ表示)
技術構成
フロントエンド
React + TypeScript
Vite
MUI(Material UI)
axios
recharts(集計グラフ表示)
バックエンド
PHP(シンプルな API 実装)
MySQL 想定
REST 風 API 構成
業務システムでよく見かける
「SPA + API 分離構成」を意識している。
なぜこの構成にしたか
今回の目的は、
「セキュリティ万全な商用システム」を作ることではない。
目的は以下の3点。
業務ドメインを意識した画面・データ構造設計
フロントとバックエンド分離構成の実装
業務系システムとして破綻しない全体像の確認
そのため、
Laravel などの重量フレームワークは使わず
あえて素の PHP API で構成
セキュリティ対策は最低限に留めた
正直に書く:セキュリティ面について
このシステムは セキュリティ的に不十分 である。
具体的には、
認証・認可は簡易的(本番想定ではない)
トークン管理・ロール制御は未実装
ファイルアップロードの厳密な検証なし
環境変数管理(.env 等)未対応
SQL インジェクション対策も最小限
なぜ割り切ったのか
理由はシンプルで、
業務要件と構造理解を優先したかった
からである。
実務では当然、
Laravel + Sanctum
CSRF / XSS / SQLi 対策
ロールベースアクセス制御
などを導入するが、
今回は 「分かっていて省略している」 状態を意図的に作った。
やってみて分かったこと
1️⃣ 業務系は画面より「データ構造」が重い
UI を作るよりも、
どの情報を持たせるか
将来どう拡張されそうか
集計に耐える構造か
を考える時間の方が圧倒的に長い。
2️⃣ グラフ表示は「設計の答え合わせ」になる
recharts を使って可視化すると、
このデータ構造で本当に良いのか
集計が無理していないか
が一気に露呈する。
これは業務系ではかなり良い練習になる。
3️⃣ Web でも業務屋の考え方は通用する
Web フレームワークに詳しくなくても、
業務要件
データ設計
処理フロー
を押さえていれば、
最低限「破綻しない」システムは組める。
今後やるとしたら
本気で実運用を想定するなら、
Laravel 化
認証・認可の実装
API の責務分離
ER 図・設計書整備
あたりは必須。
ただし今回は、
業務システムを一通り作り切る経験
としては十分な成果だったと感じている。
おわりに
Web 系の派手なデモではないが、
業務システムの現実を意識した個人開発としては、
かなり手応えのある題材だった。
同じように、
業務系
基幹系
裏方エンジニア
の人が Web に挑戦する際の
参考になれば幸いである。
