目次
プロジェクト概要
DS Deliveryは、アカウント登録不要で注文可能なWeb注文システムと、配達員向けモバイルアプリを統合したオンデマンド配達プラットフォームです。
顧客・飲食店・配達員の三者をリアルタイムで接続し、注文受付から配達完了までのプロセスを一元管理することを目的として設計・開発しました。
リアルタイム同期処理および安定したGPS追跡を実現するため、拡張性と整合性を重視したアーキテクチャ構成を採用しています。
背景・課題
従来の配達サービスでは、以下の課題が存在していました。
- 会員登録必須による注文時の離脱
- 注文ステータス更新の遅延
- 配達員の複数案件管理の非効率
- 配達状況のリアルタイム可視化不足
- 地図・ナビゲーション精度の問題
既存ソリューションでは、UXとリアルタイム処理の両立が困難でした。
技術的アプローチ
1. 登録不要注文セッション設計
ユーザーアカウントを作成せずに注文可能とするため、以下を実装しました。
- 一時セッショントークン生成
- 注文専用トラッキングURL発行
- REST APIによるトークン検証
- 必要最小限の個人情報保存設計
これにより、注文時の入力負担を軽減し、コンバージョン向上を実現しました。
2. リアルタイム通信アーキテクチャ
WebSocketを導入し、
- 注文ステータス即時更新
- 配達員の現在地共有
- レストラン通知の即時反映
- 配達完了同期処理
を実装しました。
サーバー側で状態遷移を管理し、競合や二重更新を防止する設計としました。
3. 注文ステータス管理設計(State Machine)
注文フローを明確に定義し、以下の状態遷移をサーバー側で制御しました。
- 注文受付
- 承認
- 調理中
- 受取
- 配達中
- 配達完了
不正な状態変更やデータ不整合を防ぐため、遷移制御ロジックを厳格に設計しました。
4. モバイルアプリ設計(React Native)
iOS/Android両対応の単一コードベースで構築。
実装機能:
- 背景GPS位置取得
- Google Maps SDK統合
- 注文キュー管理
- プッシュ通知連携
- 同時複数注文管理
バッテリー消費とGPS精度の最適化のため、一部ネイティブモジュール連携を行いました。
5. 地図API戦略
用途に応じたAPI選定を行いました。
Web側:
- Mapbox(リアルタイム可視化)
モバイル側:
- Google Maps SDK(ナビ機能)
これにより、操作性と精度の両立を実現しました。
システム構成
バックエンド
- Spring Boot
- PostgreSQL
- REST API
- WebSocket
フロントエンド
- React
- 状態管理設計
モバイル
- React Native
- Google Maps SDK
- プッシュ通知
APIは将来的な機能拡張や外部連携を前提とした設計としています。
技術的成果
- 三者間リアルタイム同期の実現
- 同時注文処理時のデータ整合性維持
- 配達進行状況の可視化
- クロスプラットフォーム開発による効率向上
- 注文時の入力障壁削減によるUX改善
使用技術一覧
Spring Boot • REST API • WebSocket • PostgreSQL • React • React Native • Google Maps SDK • Mapbox
プロジェクト体制
- 開発期間:8ヶ月(2024-2025年)
- チーム規模:5名
- 開発体制:アジャイル/スクラム
- 担当範囲:設計〜実装・モバイル開発・リリース対応まで一貫担当
- ※機密情報保護のため一部表現を抽象化しています。
本プロジェクトでの強み
- リアルタイム分散システム設計
- WebSocket同期処理
- 状態遷移制御ロジック実装
- モバイル位置情報連携
- フルスタック開発統括
リードエンジニア:ブライモ ラルフ
