ウェブ

プログラミング作品集(ポートフォリオ)

プログラミング作品集(ポートフォリオ)

個人作品集へようこそ。
ここでは、これまでの作品やこれから出す作品を随時公開していきます。

NotebookLMポートフォリオ解説

複数画像をJPEG一括変換

2025年11月

ImageToJpgApp

Windows向けに作った、複数画像の一括 JPEG 変換アプリ。ローカル完結・再現性の高いビルド・配布を重視しています。
配布 / Download
  1. 目的: オフラインで動作するシンプルかつ信頼できる一括 JPEG 変換ツールを提供し、簡単に再現できるビルド手順で配布すること。
  2. 主な機能: 複数ファイルのドラッグ&ドロップ; PNG/WEBP/GIF/JPEG の自動判別と変換; 画質・ファイル名テンプレート設定; Windows onefile exe(ImageToJpgApp.exe)で配布。
  3. 安全設計: 処理前プレビュー・上書き防止・詳細ログ出力(app_run.log)を備え、トラブル時にログで迅速に解析できます。
  4. 配布形態: dist\ImageToJpgApp.exe をそのまま Releases に添付して配布。配布ファイルには SHA256 を併記することを推奨します。
  5. 自動ビルド: GitHub Actions を使い、PyInstaller による onefile ビルドワークフローを用意しています(assets/app.ico を含めて再現性を担保)。

使い方(簡潔)

  1. dist\ImageToJpgApp.exe(または Releases からダウンロードした ImageToJpgApp.exe)を実行します。
  2. 変換したいファイルまたはフォルダをウィンドウへドラッグ&ドロップして追加します。
  3. プレビューで仕上がりを確認し、画質・出力先・ファイル名テンプレートを設定します。
  4. 「変換」を押して処理を実行。処理ログは app_run.log に出力されます。
  5. 問題がある場合は app_run.log(最後 200 行推奨)を付けて Issue を作成してください。

リポジトリ / リリース

使用技術

Python 3.12 PyQt5 Pillow PyInstaller GitHub Actions

配布と運用上の注意

  • 配布ファイル(ImageToJpgApp.exe)には必ず SHA256 を添付することを推奨します。
  • 未署名のビルドは Windows SmartScreen の警告対象になります。広く配布する場合はコード署名を検討してください。
  • 配布前に別マシンでダウンロード→実行確認を行ってください。問題があれば Issue を作成してください。

画像一括圧縮ツール

2025年11月

compression-gui

ローカルで動作する画像一括圧縮ツール。Pillow と pngquant を組み合わせ、再現性の高いビルドと簡単な配布を目指しています。
配布 / Download
  1. 目的: オフラインで動作する一括画像圧縮 GUI を提供し、再現可能な CI ビルドで配布可能にすることを最優先に設計。
  2. 主な機能: 複数ファイルのドラッグ&ドロップ; PNG/JPEG の自動判別と最適圧縮; pngquant を利用した高圧縮(tools/pngquant.exe がある場合); 出力品質とファイル名テンプレートの指定。
  3. 安全設計: 処理前プレビュー・上書き保護・処理ログを備え、問題発生時にはログ(app_run.log)を元に迅速にトラブルシュートできます。
  4. 配布形態: Windows onefile 実行ファイル(dist\app.exe)を ZIP にまとめて GitHub Releases で配布。配布には SHA256 の添付を推奨。
  5. 自動ビルド: GitHub Actions で PyInstaller による onefile ビルドと Release 作成ワークフローを実行しています(ツールバイナリは tools/ に固定して再現性を担保)。

使い方(簡潔)

  1. アプリを起動する(dist\app.exe を実行、またはソースから python app.py)。
  2. 画像をドラッグ&ドロップ、または「開く」で追加する。
  3. プレビューで圧縮後の見た目を確認し、品質・幅/高さ・アスペクト比維持を設定する。
  4. 出力先とファイル名テンプレートを指定して「一括実行」する。
  5. 問題がある場合はプロジェクトルートの app_run.log を確認して Issue を作成してください。

使用技術

Python 3.12 tkinter / ttkbootstrap Pillow pngquant(オプション) PyInstaller GitHub Actions

配布と運用上の注意

  • 配布 ZIP には必ず SHA256SUM を添付することを推奨します(例: SHA256SUM-v1.0.0.txt)。
  • 未署名ビルドは SmartScreen の警告対象になります。公開配布時はコード署名を検討してください。
  • app_run.log を問題報告時に添付いただくと解析が早くなります(最後 200 行を推奨)。

画像サイズ一括変更ソフト

2025年11月

画像サイズ一括変更 — ImgResizer

画像をまとめてリサイズ。プレビュー・アスペクト比維持・品質指定で効率的に書き出せる Windows 向けデスクトップツール。
配布 / Download
  1. 目的: 大量画像のサイズ変換・リサイズ処理をシンプルかつ高速に行う。品質と出力形式を保ちながらバッチ処理を行えることを最優先に設計。
  2. 主な機能: 複数ファイルのドラッグ&ドロップ; プレビュー表示; アスペクト比維持オプション; 幅/高さ/画質指定; フォルダ丸ごと処理; 出力名テンプレート
  3. 安全設計: 実行前プレビューと差分表示。既存ファイルの上書きはデフォルトで保護され、確認ダイアログを表示します。
  4. 配布形態: Windows 実行ファイル(ImgResizer.exe)を GitHub Releases で配布。インストーラ(Inno Setup)版も同梱可能。
  5. 自動ビルド: GitHub Actions で PyInstaller によるビルドを実施。リリース作成ワークフローと連携可能。

使い方(簡潔)

  1. アプリを起動する
  2. 画像をドラッグ&ドロップまたは「開く」で追加する
  3. プレビューで表示を確認し、幅/高さ/画質やアスペクト比維持を設定する
  4. 出力先とファイル名テンプレートを指定して「保存」または「一括実行」する
  5. 必要ならログから個別ファイルの処理結果を確認する

使用技術

Python 3.11 tkinter PyInstaller Windows exe GitHub Actions

配布と運用上の注意

  • 重要ファイルは事前にバックアップしてください。
  • Undo 機能はアプリ内操作のロールバック用で、外部で変更された状態には対応しない場合があります。
  • 未署名ビルドは SmartScreen の警告が出ることがあります。公開配布ではコード署名を検討してください。

複数ファイル名の一括置換ソフト

2025年10月

一括リネーム(ファイル名置換) — file_renamer

複数ファイルをベース名+連番でまとめてリネームする Windows デスクトップ GUI ツール。シンプルで安全な操作フローを重視しています。
配布 / Download
  1. 目的: 大量のファイル名を短時間で安全にリネームする。プレビュー・Dry Run・Undo による失敗対策を最優先に設計。
  2. 主な機能: ファイル複数選択; ベース名・開始番号・桁数の指定; 旧名→新名プレビュー; Dry Run; 実行と Undo(undo ログを出力)
  3. 安全設計: 実行前にプレビュー表示を必須化。既存ファイル名の衝突は検出して警告を表示します。
  4. 配布形態: Windows 実行ファイル(file_renamer_gui.exe)を GitHub Releases で配布。ソースは Python + tkinter。
  5. 自動ビルド: GitHub Actions で PyInstaller によるビルドを実行。リリース作成には workflow に permissions: contents: write を設定してください。

使い方(簡潔)

  1. 「ファイル選択」で対象ファイルを追加する
  2. 「ベース名」「開始番号」「桁数」を設定する
  3. 「プレビュー」で旧名→新名を確認する
  4. 必要なら「Dry Run」で動作検証する
  5. 問題なければ「実行」を押し、必要なら「最後の操作を元に戻す」を利用する

リポジトリ

使用技術

Python 3.11 tkinter PyInstaller Windows exe GitHub Actions

配布と運用上の注意

  • 重要ファイルは事前にバックアップしてください。
  • Undo は外部操作(移動・削除)に対しては失敗する場合があります。
  • 大量配布する場合はコード署名を検討してください。ダウンロード時の信頼性が向上します。

メッセージアプリ

2025年10月

MyTwitter – Spring Boot × PostgreSQL × Render

Spring Boot と Docker を用いたミニブログアプリ。Render 上にデプロイし、PostgreSQL をバックエンドに採用。環境変数やヘルスチェックを整備し、クラウド運用を意識した構成。
ライブ / Live Demo
  1. 開発の流れ: Spring Boot プロジェクトを作成 → Dockerfile でコンテナ化 → Render にデプロイ → PostgreSQL を接続 → 環境変数を設定 → Health Check を導入。
  2. データベース接続: Render の Managed PostgreSQL を利用し、SPRING_DATASOURCE_URL に External URL を設定。SSL 接続必須のため ?sslmode=require を付与。
  3. 環境変数管理: ユーザー名や JDBC URL は公開可、パスワードは Secret ON に設定し安全に管理。
  4. ヘルスチェック: /actuator/health を Render の Health Check Path に指定し、起動確認を自動化。
  5. デプロイ運用: GitHub と連携し、Auto Deploy を ON(On Commit)に設定。push するだけで Render が自動ビルド&デプロイ。
  6. 制約: 無料プランのため、サービス停止時にデータはリセットされる。永続利用には外部ストレージや有料プランが必要。
💾 Renderは無料枠、Web Serviceの無料インスタンスは5分間のアクティビティがないとスリープ(休止)します。そのため、本番環境や常に稼働させたいサービスの場合は、スリープしないStarterインスタンス(月額$7)が最安の選択肢となります。

使用技術

Java 21 Spring Boot 3.x Maven Docker PostgreSQL Render Spring Boot Actuator PostgreSQL 17

今後の改善予定

  • ユーザー認証機能(ログイン/ログアウト)の追加
  • プロフィールページや投稿機能の拡張
  • Docker Compose によるローカル開発環境の整備
  • CI/CD パイプラインの導入

簡易版コメント投稿

  1. アプリケーションの目的: 最小限の機能(投稿・閲覧・削除)で、Webアプリケーションの基本動作を確認。
  2. データベース接続: H2 Databaseのインメモリモードを使用し、設定ファイルを簡略化。再起動でデータはリセットされる前提。
  3. 実装技術: Spring Data JPA、Thymeleafを用いてシンプルなUIとDBアクセスを実現。
  4. 今後の展望: 認証機能の追加、永続化DBへの移行(PostgreSQLなど)を検討。
MiniComment アプリのコメント投稿画面

使用技術

Java 21 Maven Thymeleaf Spring Data JPA
⚠️ 注意: 画面サイズやブラウザによりエフェクトの挙動が異なる場合があります。モバイルではエフェクトが控えめに表示されることがあります。

履歴保持電卓アプリ

  1. 履歴保持: すべての計算結果を履歴に保存し、履歴パネルから再利用・削除が可能。
  2. テーマ・カラー: ダーク/ライト切替とカラーセットで視認性を重視したデザイン。
  3. アクセシビリティ: aria 属性、aria-live、role 指定でスクリーンリーダー対応。
  4. キーボード操作: 数字キー、演算子、Enter(=)、Backspace(⌫) 等をサポート。
  5. レスポンシブ: 固定高さの電卓領域と内部スクロールでモバイルでも履歴が使いやすい。
履歴保持電卓:メインと履歴表示のスクリーンショット

使い方

  • ボタンをクリックまたはキーボードで入力して計算します。
  • 履歴アイテムをクリックするとその計算を再度表示できます。
  • 「C」「CE」「⌫」で入力クリアや桁削除、%や1/x等の高度な演算も対応。

使用技術

HTML CSS JavaScript Accessibility LocalStorage
⚠️ 注意: 画面サイズやブラウザによりエフェクトの挙動が異なる場合があります。モバイルではエフェクトが控えめに表示されることがあります。

TODOリスト

2025年9月

TODOリストアプリ

ローカル保存で高速に動くシンプルなタスク管理。フィルター、一括操作、視認性の高い金色テーマ。
ライブ / Live Site
  1. 直感的な追加: 入力欄から素早くタスクを追加。
  2. フィルター: すべて・未完了・完了を切替、各タブに件数表示。
  3. 一括操作: すべて完了・完了タスクの一括削除で管理が楽に。
  4. ローカル保存: ブラウザの LocalStorage に保存、リロードしてもデータ保持。
  5. レスポンシブ: モバイルでの使いやすさを重視したレイアウト。
⚠️ 注意: Render の無料プランを利用しているため、初回アクセスや長時間アクセスのない後は起動に 30秒〜1分 程度かかる場合があります。ページが白紙の場合は数秒待ってから再読み込みしてください。
ローカルストレージでのTODOデータ
💾 データについて: データはブラウザの LocalStorage に todos キーで JSON 形式に保存されます。別端末との同期が必要な場合はクラウド保存や API 連携を検討してください。

操作メモ

  • タスクをクリックで編集、チェックで完了切替。
  • フィルターで表示切替、件数で進捗を把握。
  • 一括操作ボタンでまとめて管理。

GitHub リポジトリ

使用技術

HTML CSS JavaScript LocalStorage Responsive

ジャンプアクションゲーム

2025年10月

Jumping Game

ブラウザで遊べるシンプルなジャンプアクション。モバイル対応・レスポンシブ設計。
ライブ / Live Site
  1. 操作: クリック / タップでジャンプ。スペースキーでも操作可能。
  2. ゲーム性: ランダムな障害物を避けながらスコアを稼ぐ。3つ通過後に徐々に難易度上昇。
  3. レイアウト: 雲だけのパララックス背景、地面はシームレスで隙間が開かない実装。
  4. 音: WebAudio を用いた効果音とミュート切替を実装。

GitHub リポジトリ

使用技術

HTML CSS JavaScript WebAudio Responsive
⚠️ **注意:** ブラウザやデバイスによって描画や音量の差が出る場合があります。特にモバイルではパフォーマンス優先で一部エフェクトを控えめにしています。

三目並べ

2025年9月

三目並べゲーム

シンプルで遊びやすいローカルプレイ。スコアボードと勝利演出でプレイ体験を高めます。
ライブ / Live Site
  1. ゲームプレイ: X と O が交互にマークを配置。縦・横・斜めで3つ揃えば勝利。
  2. スコアボード: X / O / 引き分け の勝利数を記録。ラウンド開始・リセット機能あり。
  3. レスポンシブ: スマホからデスクトップまで快適に操作可能なUI。
  4. 勝利演出: 勝利時に紙吹雪エフェクトで演出。視覚的に盛り上げます。
  5. 操作と導線: ゲーム下部にサイトへ戻るナビゲーション配置。

GitHub リポジトリ

使用技術

HTML CSS jQuery JavaScript Responsive
⚠️ 注意: 画面サイズやブラウザによりエフェクトの挙動が異なる場合があります。モバイルではエフェクトが控えめに表示されることがあります。

コメントを残す

メールアドレスが公開されることはありません。