「スキルを商品として販売したいワーカー」と「仕事を依頼したいクライアント」をマッチングするプラットフォームを新規開発した事例をご紹介します。商品販売・仕事依頼・チャット・決済・本人確認・振込申請までを一気通貫で設計した、クラウドソーシング領域における大規模システム開発の進め方を解説します。
| サービス種別 | スキル売買・クラウドソーシング型マッチングプラットフォーム |
|---|---|
| 主な利用者 | スキルを販売するワーカー/仕事を依頼するクライアント |
| 開発期間 | 約7ヶ月 |
| 開発費用 | 800万円 |
| 使用技術 | PHP8.1 / Laravel9 / MySQL / Tailwind CSS / Alpine.js |
| 決済・外部連携 | Stripe決済連携、SNSログイン(Socialite) |
開発前の課題
クライアント様は、ワーカーが自分のスキルを「商品」として販売できる場と、クライアントが仕事内容を指定して依頼できる場を一つのプラットフォーム上に両立させたいという構想をお持ちでした。既存のクラウドソーシングサービスは依頼ベースの機能が中心で、商品販売型のマーケットプレイス機能と依頼型のマッチング機能を同じユーザー体験の中で自然に両立できるサービスは少なく、汎用パッケージでの構築は難しい状況でした。
また、個人間でお金が動くサービスである以上、「相手が信頼できる人物かどうか分からない」という不安への対策も欠かせません。本人確認・評価・NDA(秘密保持)付きのやり取りなど、取引の安全性を担保する仕組みをどこまで用意するかが、要件整理の段階で大きな論点になりました。
さらに、ワーカーへの売上振込、プラットフォーム側の手数料徴収、ポイントやクーポンによる販促など、金銭まわりの要件も多岐にわたっていました。これらすべてを一つのデータ設計の中で矛盾なく成立させ、かつ運営開始後も安定して運用できる形に落とし込むことが、開発規模の大きさに直結する課題でした。
ご提案・開発アプローチ
まず「商品(スキル)」と「仕事依頼(ジョブリクエスト)」を別軸のエンティティとして設計し、ワーカーが商品を販売する流れと、仕事依頼に提案する流れのどちらからでも契約が発生できるデータモデルを構築しました。商品ページには購入前にワーカーへ質問できるQ&A機能を設け、金額やカテゴリだけでは伝わらない疑問点を契約前に解消できるようにしています。
コミュニケーション面では、契約前の軽いやり取りに使うダイレクトメッセージ(DM)と、契約成立後に使う取引専用のチャットルームを明確に分離しました。さらに取引用チャットルームの中には、秘密保持契約(NDA)を締結するための専用メッセージを送信できる機能を実装しています。送信すると「受信者確認中→送信者確認中→締結」という双方の確認を経て締結済みとなるステータス管理を持たせることで、普段のやり取りと同じチャット画面の中で、機密性の高い案件に必要な合意形成まで完結できるようにしました。
バックエンドはPHP8.1・Laravel9で構築し、フロントエンドはTailwind CSSとAlpine.jsを採用することで、画面点数の多いサービスでも軽量かつスピーディーな開発を実現しました。決済まわりはStripeに対応し、ワーカーへの振込申請データを自動生成し、手数料計算・ポイント付与までを管理画面から一元管理できる設計としています。開発規模が大きいプロジェクトであることを踏まえ、命名規則やルーティングの書き方を定めたコーディング規約を整備し、Larastan(PHPStan)による静的解析やコードフォーマッタ、Gitブランチ運用ルールをあわせて導入することで、複数人・長期間の開発でもコード品質を保てる体制を構築しました。
業務フローの設計
このサービスには「ワーカー」「クライアント」「システム管理者」の3者が登場します。それぞれの役割に応じて、取引から入金までの流れを以下のように整理しました。
- ワーカー:商品を出品したり仕事依頼に提案したりして契約を獲得 → チャットでやり取りしながら納品 → 取引完了後、売上が自動反映 → 画面から振込を申請
- クライアント:仕事依頼を投稿してワーカーからの提案を購入、または気になる商品を直接購入して契約 → チャットでやり取りしながら納品を受領
- システム管理者:定期的に振込申請データをまとめて出力し、金融機関側で振込手続きを行う
振込申請をワーカーごとに個別処理するのではなく、一定期間分をまとめてデータ化し、管理者が定期的に処理する運用にしたことで、取引件数が増えても振込業務の手間が線形に増えすぎない仕組みにしています。
実装した主な機能
ユーザー向け・管理者向けあわせて、以下のような機能を実装しました。
ワーカー・クライアント共通の機能
- 商品(スキル)出品・カテゴリ/サブカテゴリ管理・追加オプション設定
- 仕事依頼(ジョブリクエスト)の投稿と提案(プロポーザル)
- 契約前のDM、契約後の取引用チャットルーム、NDA(秘密保持契約)締結メッセージ
- 商品ページでの質問・回答機能
- 評価・お気に入り・フォロー機能、閲覧数の可視化
- ポートフォリオ・YouTubeリンク掲載によるスキルの実績紹介
- スキル・経歴・希望職種などのプロフィール登録
- 友達紹介コードによる招待の仕組み
- SNSログイン、通知機能・通知設定、お気に入り登録
決済・ポイントまわりの機能
- Stripeによるクレジットカード決済・返金処理
- 有効期限付きポイントの付与・利用
- クーポンの発行・配布・利用
- 銀行口座登録、売上の振込申請、購入キャンセル対応
安全性を担保する機能
- 本人確認(KYC)情報の登録・管理
- 規約違反ユーザーの利用停止(BAN)機能
- チャット内で完結する秘密保持契約(NDA)の締結フロー
管理者向けの機能
- 商品・仕事依頼・ユーザーの一覧/詳細管理
- 手数料率・ポイント付与率などのマスタ管理
- 振込申請データの一括出力
- クーポン発行、お知らせ・ブログの配信、問い合わせ履歴管理
- 登録時アンケート(流入経路など)の集計
安心して取引できるための工夫
個人間でお金と成果物をやり取りするサービスだからこそ、「誰が」「どんな実績を持つ」ワーカーなのかを取引前に判断できることが重要です。ポートフォリオや実績動画の掲載、評価機能に加えて、売上が発生する以上は本人確認情報の登録も必須としました。
また、トラブルが発生した場合に備えて、管理者が問題のあるユーザーを利用停止にできるBAN機能や、商品ページでの質問機能を合わせを済ませられる導線を用意しています。機密性の高い案件では、取引チャットの中でNDAを提案し、双方の確認を経て締結するところまで同じ画面で完結できるため、業務委託契約に近い性質を持つ取引にも対応できる設計です。
導入による効果
商品販売と仕事依頼という2つの入り口を一つのプラットフォームに統合したことで、ワーカーとクライアントのどちらの立場からでも、同じサービス内でスムーズに取引を開始できるようになりま きチャットといった仕組みにより、初めて取引する相手とも安心してやり取りできる環境が整っています。
また、ポイント・クーポン・フォロー・友達紹介コードといった継続利用や新規流入を促す仕組みをあわせて実装したことで、単発の取引で終わらせず、ユーザーが繰り返し利用し、新しいユーザーを呼び込む土台を構築できた点も大きな成果です。手数料計算や振込申請データの作成を管理画面から一元操作できるため、取引件数が増加しても、運営側の売上精算オペレーションが破綻しない設計になっています。
まとめ
本事例は、商品販売型のスキルマーケットプレイスと依頼型のクラウドソーシングという2つの仕組みを、本人確認・評価・NDA・ポイント・振込申請といった周辺機能まで含めて一つのプラットフォーム上に矛盾なく統合した、開発規模の大きい新規開発事例です。取引の安全性とユーザーの継続利用を同時に実現しつつ、長期開発でもコード品質を維持できる体制を整えられ大きな価値だと考えています。
スキル売買やマッチング領域のサービスは、取引の安全性・決済・継続利用の仕組みづくりなど検討すべき論点が多く、要件整理 す。特に、お金と個人情報の両方を扱う大規模なプラットフォーム開発では、機能要件だけでなく開発体制や運用設計までを見据えた設計が欠かせません。同様のプラットフォーム開発をご検討の際は、ぜひお気軽にご相談ください。