0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(4)【個人開発】TelAvailability 〜フレンドの電話対応状況を共有するアプリ〜就活中

Posted at

アプリ概要(電話アポ / tel-availability)

🎯 目的

自分とフレンドの電話対応状況を共有・確認
https://tel-availability.vercel.app/
image.png

アプリ概要(電話アポ / tel-availability)


🔑 主要機能

  • ステータス: 対応可 / 不可 / 緊急のみ
  • 付随情報: 10文字メモ(編集ボタンで入力→確定でバッジ表示)
    • プリセット: 15 / 30 / 60分・今日まで (自由入力あり)
  • フレンド一覧: 検索(名前 / 状態)、ドラッグ並び替え、ピン留め、1行メモ
  • 詳細表示: 行本体クリックで所属名 / 電話 / メールのモーダル
  • フレンド交換: 自分のコード表示、コード入力、申請リスト(UI)
  • テーマ: ライト / ダーク対応(設定から)

🛠 非機能

  • PWA対応(manifest / インストール可)
  • Vercel自動デプロイ(GitHub pushトリガー)
  • セキュリティ: .env* はgit管理外、公開鍵の類はリポジトリに含めない

⚠️ 現状の制約

  • 永続化なし(UIモック)。申請やプロフィールはフロントの一時状態
  • 認証やRLSは未実装(将来Supabase等で追加)
  • 現在実際にはフレンド交換の機能は実装していない。

📚 技術概要

スタック

  • Next.js 14(App Router, TS, ESLint)
  • Tailwind v4
  • Radix UI
  • dnd-kit
  • lucide-react
  • next-pwa

📂 構成

src/app/
├ layout.tsx # レイアウト
├ page.tsx # 40/60レイアウト
└ globals.css

src/components/
├ Header.tsx # ハッシュでモーダル起動: #friend-exchange, #settings
├ ProfileCard.tsx # ステータス / 付随情報 / プロフィール
├ FriendsList.tsx # 検索・DnD・ピン留め・メモ・申請モーダル
├ SettingsDialog.tsx # 設定モーダル
└ StatusBadge.tsx

src/lib/
└ supabaseClient.ts # 接続雛形のみ


💡 実装ポイント

  • DnD: PointerSensor + verticalListSortingStrategyDragEndEventで型安全に
  • 検索: フォーカスで状態サジェスト表示、選択でフィルタ・フォーカス解除、リセットボタン
  • モーダル: Radix Dialog(削除確認・詳細・フレンド交換)

🚀 デプロイ方法(Vercel)

  1. GitHub連携 → New Project → 本リポジトリ選択
  2. Environment Variables(必要時)
    • NEXT_PUBLIC_SUPABASE_URL
    • NEXT_PUBLIC_SUPABASE_ANON_KEY
  3. そのままDeploy(Build / Output設定はデフォルト)

🗄 将来のデータモデル(導入時)

  • users(id, nickname, org, phone, email, friend_code)
  • presence(user_id, status enum, note, expires_at)
  • friends(user_id, friend_user_id, state, memo, pinned)

👉 認証 + RLSで「本人のみ更新 / フレンドのみ閲覧」を徹底


🗺 ロードマップ(任意)

  • 永続化・認証(Supabase / Firebase)
  • ステータスTTLの自動復帰(CRON)
  • 監視(Sentry) / 解析(Vercel Analytics)
  • PWAのオフライン最適化

今回の製作を経て

今回の製作アイデアは、電話をかけても出ないという無駄な時間を減らせるようになればいい と思い制作しました。
様々な要素を自分で付け足していけて楽しかったし、電話に限らず連絡手段全てを対象にこのアイデアを実現したいなとも思います。


実装面での気づき

ダークモードを実装したかったのですが、時間の制約上挑戦できませんでした
実はこれは 2チャレンジ目 で、1回目は原因不明のエラーに悩まされ、1時間ほど格闘したのですが解決せず作りなおしました。
その結果、1回目よりも プロンプトの質も上がり、使用した技術スタックも変更し、格段にいいものができた ので結果オーライだと思っています。


今後について

毎日更新と言っておいてなんなのですが、今週はやらないといけないことが多く、毎日更新はできないと思います
ただ、時間に縛られず 隙間時間に開発できれば良いな と思っています。
💬 質問やアドバイスお待ちしております!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?