dm スクリーンショット
公開済み 注力

dm

メッセージング / コミュニケーション / Webアプリ

概要

LINE風の操作感を目指した、1対1とグループチャットに対応した軽量ブラウザメッセージアプリ。

詳細

Next.js App Router + TypeScript + Prisma + Socket.IO で構築。1対1トークとグループチャット(トークルーム)の送受信、既読・リアクション・リプライ・送信取消・添付ファイル(画像プレビュー・一般ファイル保存)を実装。グループは作成・招待・メンバー管理・プロフィール(アイコン/カバー)・メンション・既読人数表示に対応。友だち申請・ブロック、公開プロフィール URL・QR 共有、表示名・タグによるメンバー検索など DM 開始導線も備える。リアルタイムは Socket.IO を Next.js 起動プロセス内で自動起動し、PM2 で `dm-web` を常駐。認証はユーザー ID / パスワード(セッション Cookie)のみ。DB は SQLite(開発)/MySQL(本番予定)の切り替え運用。VPS + Nginx + HTTPS でデプロイ済み。ポートフォリオ評価用のデモアカウントとサンプル会話データを同梱。

目的

SNS 全機能ではなく会話体験に集中したメッセージアプリとして設計・実装。LINE を使う人が迷わず使える操作感を最低ラインにしつつ、軽快さとページ間の統一感を優先する。ポートフォリオ評価用の実動デモも兼ねる。

想定利用者

個人間のやり取りをブラウザで行いたいユーザー、メッセージアプリの UI/UX・リアルタイム実装を確認したい人

見せたいポイント

  • 1対1トーク(メッセージ送受信・未読数・既読・長文折りたたみ・cursor pagination)
  • グループチャット(トークルーム作成・招待・メンバー管理・解散・既読人数表示)
  • Socket.IO によるリアルタイム受信(アプリ起動時に同一プロセス内で自動起動)
  • リプライ(元メッセージへの移動・多段階の戻り操作)
  • リアクション(追加・変更・削除・参加者一覧表示)
  • 送信取消とリアルタイム反映
  • 添付ファイル(画像サムネイル・プレビュー・ビューア、一般ファイルの保存)
  • 友だち申請・承認・拒否・ブロック
  • 公開プロフィール URL(/u/:userId)・QR コード共有・未ログイン向けプロフィール表示
  • 表示名・プロフィールタグによるメンバー検索(プライバシー設定付き)
  • グループ内メンション(@userId)とグループプロフィール(アイコン・カバー・紹介文)
  • 2カラム(PC)/1画面1役割(スマホ)のレスポンシブ UI
  • トーク背景・フォントサイズなどの表示カスタマイズ
  • ポートフォリオ用デモデータとログイン画面のワンクリック試用パネル
  • SQLite / MySQL 切り替え、storage バックアップ、本番起動前チェック

補足

ポートフォリオ評価用の実動デモ。ログイン画面の「ポートフォリオ用デモアカウント」から試用可能(共通パスワード: PortfolioDemo1)。本番 URL: https://chat.ak2lab.com/