WORKS
WEB

MANGA READER 自炊漫画リーダー

  • PHP
  • MySQL
  • XAMPP / Apache
  • PDO
  • JavaScript (SPA)
  • PDF.js
  • bcrypt Auth
  • Figma

制作時間:約1か月

ゲストで見る(公開デモ)
自炊漫画リーダーのメイン画面スクリーンショット

OVERVIEW

プロジェクト概要

課題

自分で電子化した漫画(PDF・画像フォルダ)を、ブラウザから快適に読みたい。 さらに、200作品超のライブラリを出版社・作者・ジャンルで整理し、 読書進捗まで自動保存できる自家用ビューアが欲しかった。

目的

XAMPP (Apache + PHP + MySQL) 上に、認証・ライブラリ走査・PDFレンダリング・ 読書進捗保存までを一人で構築。ライブラリ走査を 13秒 → 9ms(約1374倍) に 最適化するなど、実用速度に踏み込んだ運用を目標にした。

PROCESS

制作プロセス

  1. PLAN

    自炊ファイルの構成(PDF / 画像フォルダ混在)を整理し、必要機能を洗い出し。

  2. BUILD

    XAMPP 上に PHP + MySQL でアプリを構築。PDO で SQL インジェクションを防止。

  3. READER

    PDF.js で見開き/単一ページ/白紙挿入/左綴じ・右綴じを実装。

  4. OPTIMIZE

    ライブラリ走査・巻一覧・セッションロックを最適化し、体感速度を一桁向上。

  5. OPERATE

    読書進捗を自動保存、メタデータ編集 UI、出版社フィルタなど運用機能を継続追加。

GALLERY

成果物ギャラリー

RETROSPECTIVE

振り返り・工夫した点

UX-DRIVEN LAYOUT

UI/UX を意識して、ボタンを限りなく削ぎ落とした。 作品選択画面は一度に多く並べすぎると選びにくかったので 6列 に固定。 巻数選択画面は「何巻かを選ぶだけ」の単機能なので、画面いっぱいに表示して 迷わず即決できる密度にした。

1374× FASTER LIBRARY SCAN

ライブラリ走査の is_file() を撤去し、拡張子だけで判定するように変更。 13秒 → 9ms(約1374倍)まで短縮し、開いた瞬間に一覧が出る体感に。

RESUME WHERE YOU LEFT OFF

ページ移動・モード切替・白紙挿入を 1.5秒デバウンスで自動保存。 タブを閉じる時は navigator.sendBeacon で確実に書き込み、 次回起動時にページ位置・綴じ方向・表示モードまで完全復元される。

SECURITY FIRST

bcrypt によるパスワードハッシュ、PDO プリペアドステートメントでの SQLi 対策、 ログイン必須化により /api/image.php を直接叩いても 401 を返す設計に。

ONE PERSON, FULL STACK

インフラ (XAMPP / Apache Alias) ・ DB スキーマ・ API・SPA フロント・運用までを一人で回し、 各レイヤーのトレードオフを実感を持って理解できた。

LIVE

公開デモ(ゲスト閲覧)

下記URLからゲストとして実際に触れます。ログイン不要で、 「試し読み」作品(青空文庫の名作)を閲覧・ページめくりできます。 自炊した蔵書・編集機能は安全のため非公開です。

コピーしました