RoutineNavi - 革新的タスク管理システム
ポートフォリオ事例紹介
📊 プロジェクト概要
プロジェクト名: RoutineNavi
開発期間: 2025年6月 集中開発
役割: フルスタック開発者
技術スタック: Python (Flask), JavaScript, SQLite, Bootstrap
🎯 解決した課題
既存タスク管理システムの問題点
従来のタスク管理アプリは「その日のタスクはその日にやる」という固定的な思考に基づいており、多くのユーザーが以下の問題に直面していました:
- 完璧主義による挫折: 1日でもタスクを忘れると「失敗」として記録される
- 硬直的なスケジュール: 人間の自然なリズム変動に対応できない
- 心理的負担: 未完了タスクの蓄積によるストレス増加
- 継続困難: モチベーション低下による習慣形成の失敗
💡 革新的ソリューション:「貯金型タスク管理」
核心アイデア
「タスクを未来に貯金する」という従来にない発想を実装。調子の良い日に多めにタスクをこなして「貯金」を作り、忙しい日はその貯金を活用するシステムを開発しました。
実装した機能
時系列実行システム
- 過去実行: 忘れたタスクを後から遡って記録
- 今日実行: 通常の実行方法
- 未来実行: 明日以降のストックとして事前実行
6日間カレンダービュー
- 過去2日 → 今日 → 未来3日の状況を一望
- リアルタイム達成率計算
- 密度レベル可視化(empty/light/normal/good/excellent)
🛠️ 技術的特徴・実装内容
バックエンド設計
Flask + SQLiteによる軽量アーキテクチャ
# タイムゾーン対応の実装例
JST = pytz.timezone('Asia/Tokyo')
def get_current_jst_datetime():
return datetime.now(JST)
# 貯金システムの核心ロジック
@app.route('/execute_task_with_date', methods=['POST'])
def execute_task_with_date():
execution_type = 'past' if exec_date < today else 'future'
# 実行タイプに応じた柔軟な記録処理
認証・セキュリティ
- Flask-Loginによる認証管理
- Werkzeugでのパスワードハッシュ化
- SQLインジェクション対策
フロントエンド・UX設計
レスポンシブWebデザイン
- Bootstrap 5ベースのモダンUI
- モバイルファースト設計
- 直感的な操作性
Ajax非同期通信
// タスク実行のリアルタイム更新
function executeTaskWithDate(taskId, date) {
fetch('/execute_task_with_date', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({task_id: taskId, execution_date: date})
})
.then(response => response.json())
.then(data => updateUI(data));
}
データベース設計
効率的なテーブル設計
- Users: 認証情報管理
- Categories: 色分けカテゴリ
- Tasks: タスク基本情報
- Task_Records: 実行履歴(貯金システムの核心)
- execution_type: past/today/future の区別
- executed_date: 実際の実行対象日
- created_at: 記録作成日時
📈 開発プロセス・課題解決
技術的課題と解決策
1. 日本時間対応
- 課題: タイムゾーン処理とエンコーディング問題
- 解決: pytzライブラリとUTF-8完全対応実装
2. 複雑な日付ロジック
- 課題: 過去・現在・未来の実行記録の整合性
- 解決: execution_typeフィールドによる明確な区別
3. パフォーマンス最適化
- 課題: 複雑なSQL集計処理
- 解決: インデックス最適化と効率的なクエリ設計
UX改善のこだわり
視覚的分かりやすさ
- カテゴリ別色分けシステム
- 達成率の段階的表示
- 優先度の自動判定(🔥マーク)
心理的負担軽減
- 「失敗」という概念の排除
- ポジティブなフィードバック設計
- 柔軟性を重視したUI設計
📊 システムの特色・差別化要因
独自機能
インテリジェント優先度システム
- 3日以上実行していないタスクの自動検出
- 放置レベル分析(never/recent/caution/warning/danger)
- 動的スコアリングアルゴリズム
高度な統計機能
- 過去30日間の達成率推移グラフ
- カテゴリ別パフォーマンス分析
- タスク放置状況の可視化
グローバル対応
- 完全UTF-8対応
- Windows/Linux/macOS クロスプラットフォーム
- 国際化対応の基盤設計
設計思想の革新性
従来システムとの比較
| 項目 | 従来システム | RoutineNavi |
|------|-------------|-------------|
| 基本思想 | 固定スケジュール | 柔軟な貯金システム |
| 失敗の扱い | ネガティブ記録 | 調整可能な記録 |
| 継続性 | 完璧主義要求 | 人間的リズム重視 |
| 心理的負担 | 高い | 低い |
🎨 ユーザーインターフェース
メインダッシュボード
- 6日間ビュー: 過去・現在・未来の状況を一画面で把握
- ワンクリック操作: タスク実行・貯金・取り消しが直感的
- リアルタイム更新: Ajax通信による快適な操作感
統計・分析画面
- 達成率グラフ: 30日間の推移を視覚化
- カテゴリ分析: パフォーマンスの偏りを把握
- 優先度マトリクス: 放置されているタスクを即座に特定
モバイル対応
- レスポンシブ設計: 全ての機能がスマートフォンで利用可能
- タッチ最適化: 指での操作に最適化されたボタンサイズ
- 軽量設計: 低帯域でも快適に動作
🌟 学習・成長ポイント
技術的学習
新技術の習得
- pytzライブラリによる高精度タイムゾーン処理
- Flask-Loginでの認証システム実装
- SQLiteの効率的活用とクエリ最適化
設計スキルの向上
- ユーザー中心設計(UCD)の実践
- 心理学的観点を取り入れたUX設計
- 将来の拡張性を考慮した設計
問題解決能力
創造的ソリューション
- 従来の常識にとらわれない発想力
- ユーザーの潜在的ニーズの発見
- 技術制約下でのベストプラクティス追求
🚀 今後の展開可能性
拡張機能案
AI機能統合
- 習慣形成パターンの機械学習分析
- 個人最適化された実行タイミング提案
- 自動優先度調整システム
チーム機能
- 複数ユーザーでの進捗共有
- 家族・チームでの協働タスク管理
- 競争要素を取り入れたゲーミフィケーション
外部連携
- カレンダーアプリとの同期
- ヘルスケアアプリとの連携
- API提供による他システム統合
📝 プロジェクトから得られた知見
技術面
- ユーザビリティ重視の開発: 技術的複雑さをユーザーに見せない設計の重要性
- パフォーマンス最適化: 小さなレスポンス改善が大きなUX向上につながること
- クロスプラットフォーム対応: 初期段階での対応が後の工数削減に直結すること
ビジネス面
- ユーザーの本質的課題発見: 表面的な要求ではなく根本的な問題解決の重要性
- 差別化戦略: 既存ソリューションとは異なるアプローチの価値
- 継続的改善: ユーザーフィードバックに基づく段階的機能拡張
このプロジェクトは、技術的実装力だけでなく、ユーザーの心理的側面を考慮した設計思想と、従来の常識にとらわれない創造的問題解決能力を示す事例です。