見出し画像

人材派遣管理システムを個人開発してみた

⚠️ 注意事項 この記事は「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点。

  1. 業務ドメインを意識した画面・データ構造設計

  2. フロントとバックエンド分離構成の実装

  3. 業務系システムとして破綻しない全体像の確認

そのため、

  • Laravel などの重量フレームワークは使わず

  • あえて素の PHP API で構成

  • セキュリティ対策は最低限に留めた


正直に書く:セキュリティ面について

このシステムは セキュリティ的に不十分 である。

具体的には、

  • 認証・認可は簡易的(本番想定ではない)

  • トークン管理・ロール制御は未実装

  • ファイルアップロードの厳密な検証なし

  • 環境変数管理(.env 等)未対応

  • SQL インジェクション対策も最小限

なぜ割り切ったのか

理由はシンプルで、

業務要件と構造理解を優先したかった

からである。

実務では当然、

  • Laravel + Sanctum

  • CSRF / XSS / SQLi 対策

  • ロールベースアクセス制御

などを導入するが、
今回は 「分かっていて省略している」 状態を意図的に作った。


やってみて分かったこと

1️⃣ 業務系は画面より「データ構造」が重い

UI を作るよりも、

  • どの情報を持たせるか

  • 将来どう拡張されそうか

  • 集計に耐える構造か

を考える時間の方が圧倒的に長い。

2️⃣ グラフ表示は「設計の答え合わせ」になる

recharts を使って可視化すると、

  • このデータ構造で本当に良いのか

  • 集計が無理していないか

が一気に露呈する。

これは業務系ではかなり良い練習になる。

3️⃣ Web でも業務屋の考え方は通用する

Web フレームワークに詳しくなくても、

  • 業務要件

  • データ設計

  • 処理フロー

を押さえていれば、
最低限「破綻しない」システムは組める。


今後やるとしたら

本気で実運用を想定するなら、

  • Laravel 化

  • 認証・認可の実装

  • API の責務分離

  • ER 図・設計書整備

あたりは必須。

ただし今回は、

業務システムを一通り作り切る経験

としては十分な成果だったと感じている。


おわりに

Web 系の派手なデモではないが、
業務システムの現実を意識した個人開発としては、
かなり手応えのある題材だった。

同じように、

  • 業務系

  • 基幹系

  • 裏方エンジニア

の人が Web に挑戦する際の
参考になれば幸いである。


いいなと思ったら応援しよう!

この記事が参加している募集