タスク管理アプリ「引っ越しタスクチェッカー」
こんにちは、Move Checkerというタスク管理アプリを作りました。 すごくシンプルなアプリなんですが、実は裏側にはかなり深い試行錯誤が詰まっています。 このページでは、その開発の過程やこだわったポイント、地味に苦労したところ、そして楽しかった瞬間まで、まるっと紹介したいと思います。
アプリは下のバナーからアクセスできます。初めにログイン画面が表示されますが、新規ユーザー登録からユーザー名とパスワードを登録すると使用できるようになります。

どんなアプリ?
引っ越しタスクチェッカー は、ユーザーがログインして、タスクを追加・編集・削除できるようなPHPアプリです。
機能はこんな感じです:
- ログイン認証(セッション管理)
- タスクの一覧表示・追加・編集・削除(CRUD)
- メールを使用したユーザー名再通知・パスワード再設定
- 完了メッセージのフラッシュ表示
- CSSで見やすい見た目を調整
- 入力値のバリデーション
ぱっと見ると「よくあるやつ」なんですが、設計の中身がなかなか濃いです。
セキュリティを第一に考えた構成
「小規模でも、セキュリティは本番レベルにしたい」
そんな想いで、ファイル構成とアクセス制御にはかなりこだわりました。
public/
フォルダだけを外部に公開し、.env
,db.php
,auth.php
など重要なファイルはすべてその外に置く- .htaccess によるフォルダ制限で、public 以外のアクセスはすべて拒否(403)
- URLやCSSパスがズレないように
<base href>
を設定 - フォームの action はすべて手作業でチェックして補正(ズレが起こりがち!)
実際、完成までに10回くらい「なんでCSSが効かない?」「actionがズレる!?」と苦戦しました😅
苦戦ポイントと乗り越えたところ
正直、今回一番難しかったのは「プログラミングそのもの」よりも「パスの管理」でした。
- 相対パスと絶対パスの判定がズレる
<base href>
がフォームの送信先にまで影響する(地味に落とし穴)- .htaccess の構文が“ifじゃないのにifっぽい”という混乱
- 開発環境と本番環境で、パスの解釈が変わって壊れてしまう
そのたびに、目の前のエラーをじっくり追いかけて、直して、再テストして…
「やっと動いた!」という感動は、手間をかけたぶんだけ大きかったです。
最終的にこうなった!という成果
https://practice.asabori.com/p007/public
にアクセスすれば、引っ越しタスクチェッカーがちゃんと動く- すべてのパス・リンク・フォームが明示的に設定済み
.env
やsrc/
などの重要なファイルは外部から完全に遮断- .htaccess が public 以外をしっかり守るように設計
- 構成が Laravel 移行も意識した作りになっている
URLに /public
が見えているのはちょっと気になるけれど、
それを隠すために構成を崩すより「見えたままでも、安全に動く形」で完成としました。
この辺は“等身大の選択”として、とても納得感のある落としどころだったと思います。
この開発で学んだこと
- パス設計の奥深さ。一番難しいのはコードよりURLと階層の調整だった…!
- .htaccess の動き方や mod_rewrite の書き方を体感できた
- フォーム、POST先、セッション管理などがどう連動するかを整理できた
- セキュリティは「遮断の設計」と「通すべきものを通す設計」の両方が大事
今後に向けて
次のステップは Laravel への移行。
Laravelではルーティングやセキュリティがもっと洗練されていて、今回悩んだ部分を自動で解決してくれるところもあります。
でも、今回のPHPアプリ開発で学んだ「自分で構成とルールを考えて、手を動かして整理した力」は、Laravelに進んでも絶対に活きると感じています。
最後に
ちょっとしたツールの裏にも、いろんな試行錯誤が詰まっています。
この引っ越しタスクチェッカーは「自分の力でアプリを完成させる」という経験として、すごく大きな一歩になりました。
まだまだ勉強中ですが、「小さくても丁寧に作る」って、開発者としてすごくいい練習になるなと思ってます。
今後も、こうやって一歩一歩、技術と設計の力を育てていけたらいいなと思ってます🌿
コメント