🚀 大学業務のデジタル改革 – 私の卒業プロジェクト「Proftime」
Malte Budig – 2025年4月21日
大学における授業負担(デュプタート)の計画や精算業務は、いまだに手作業が多く、煩雑でエラーが起こりやすく、時間もかかります。私の卒業プロジェクト「Proftime」は、この課題を解決するために誕生しました。これは、講義計画・負担管理・精算を、大学職員が簡単に行えるようにする、現代的なWebアプリケーションです。
この記事では、ReactやTanStack、Keycloakなどの最新ツールを活用し、どのようにスケーラブルで実用的なシステムを構築したのかをご紹介します。
🎯 目標:Excelからの脱却、わかりやすさの追求
主なターゲットユーザーは以下の通りです:
- 教授陣:授業を計画し、負担を提出・精算
- 学部長(ディーン):学部全体の計画や承認、負担軽減の管理
私の目標は、直感的でモジュール化され、保守性が高く、安全性のあるシステムを構築することでした。

🧱 技術基盤:モダンで堅牢、柔軟な構造
本システムは、TypeScriptを使ったReactフロントエンドとSpring BootベースのREST APIをバックエンドに持つ構成です。主なフロントエンド技術は以下の通りです:
- TanStack Router & Query – 型安全なルーティングとデータ管理
- Shadcn UI – 柔軟でカスタマイズ可能なUIコンポーネント
- React Hook Form + Zod – 型安全なフォームバリデーション
- i18next – 多言語対応を初期段階から実装
- Keycloak – 安全なログインとロールベースのアクセス制御
アーキテクチャはモジュール構造で、Dockerによる開発環境、明確なスキーマ設計が特徴です。
🧑💻 UXと機能:効率的でアクセシブル、丁寧な設計
ユーザビリティに重点を置きました:
- サイドバー・ヘッダー・アクションバーのある明確なUI
- ロールに応じた画面構成(教授とディーン)
- 編集可能なテーブルの再利用
- 入力バリデーションとアクセシビリティ対応のダイアログ・フォーム
- 多言語対応を最初から実装
- 型定義されたデータ構造とフィルタ機能

**RBAC(ロールベースアクセス制御)**により、利用者は自分に関係する情報のみを閲覧でき、情報の整理とセキュリティを両立しています。

🧪 品質と拡張性
開発時にはテスト性と将来的な拡張性を重視しました:
- モジュール化された型付きコンポーネント
- 単体テストと統合テストの実施
- Zodによる中央集約型スキーマ管理
- ロジック・構造・スタイルの明確な分離
今後の課題:CI/CDの導入、E2Eテスト、アクセシビリティ改善(WCAG準拠)
✨ 結論:大学業務をスマートにする第一歩
Proftime は、時代遅れのメールベース業務を卒業し、直感的かつ効率的で、将来性のあるデジタルソリューションを提供します。将来的には、承認ワークフロー、データ出力、自動レポート機能などへの拡張も可能です。
学び:「技術が実際のニーズと結びついたとき、本当に役立つソフトウェアが生まれる。」
※ このプロジェクトのソースコードは公開されていません。
