ちょっとしたアイデアがお金になったら、うれしいですよね!?
というわけで、
「いろんなアイデアが欲しい」、「このアイデア実現してくれないかな?」って思う人のためのWEBサービスを作ってみました。
持っているアイデアを売り買いできる、アイデアのメルカリといった感じ。
(今回はデモ版のため実際の金銭の取引はできません。サービス案として作っています。一つの自作サービス例として見ていただけたら幸いです)
サービス「インスピレーション」のURLとコード(Github)
- URL:https://inspi-web.herokuapp.com(heroku無料サービスが終了。現在閉鎖中です)
- Github:https://github.com/don-do/inspiration(現在はprivateのため、閲覧できません)
思いついたら出品し、アイデアの概要まで無料公開。課金すればアイデアの詳細を見られるというもの。
クリエイターが投稿するnoteと似たものです。主に、ビジネスアイデアの売買プラットフォームという感じ(デモ版のため、実際の金銭のやりとりはできません)。
以下は、当記事の内容。
- サービス概要:ユーザー登録〜アイデアの投稿など。制作期間について
- サービスを作った理由:単品でアイデアを売買できるように
- 使用技術:Docker・AWSS3・Laravel・Vue(Vuex・VueRouter)など
- 工夫したところ・難しかったところ:購入からメール送信までのユーザとのコミュニケーション
- やってみて感じたこと、得られたこと:似たコンセプトのWEBサービスをマネする大切さ
- 今後の課題として取り組んでいきたいこと:IT・自動化によってゲームのようにクリアするよろこび、IT用語や歴史など面白いと思った気づきを発信
サービス概要:ユーザー登録〜アイデアの投稿などと、制作期間について
サービス概要について、ざっくり3点。- アイデアの投稿
- 売買
- カテゴリー検索
アイデアの投稿
ユーザー登録・ログイン後、ヘッダーのアイデア投稿ボタンから画面遷移できます。画像イメージを投稿したり、カテゴリを選択したり、アイデア名・概要・アイデアの内容・価格を入力したりできます。投稿後に変更することも可能。
売買
商品の詳細画面から購入することができ、お気に入り登録することもできます。自分が売ったものを買ってもらったり、他のユーザーのアイデアを購入したりすることもできます。
カテゴリー検索
カテゴリーで検索をかけたり、
投稿日で検索をかけたりもできます。
基本的な売買の処理と、検索が簡単に行える仕様です。
制作期間
合計50人日ほど。外観と機能の洗い出し(1人日)。以下のような感じ。
- ユーザー登録
- プロフィール編集
- ログイン・ログアウト
- パスワードリマインダ
- アイデア登録・編集・削除
- マイページに購入一覧・気になる一覧・投稿一覧・レビュー一覧表示
- 他ユーザーのアイデアに気になる
- 他ユーザーのアイデアを購入
- アイデア一覧の検索機能
- アイデアのTweetシェア機能
スマホ版から作って
あとは、各機能と画面のプログラミング。
Dockerに環境を作り、Laravelを入れ、各機能の作成とSCSSによる画面作成。
このバックエンド側15人日とフロントエンド側15人日、サーバと繋いで最終調整10人日という感じです。
AWSやherokuと繋いで、レンタルサーバにアップという流れ。
サービスを作った理由:単品でアイデアを売買できるように
アイデアはすぐに共有される時代ですが、ニッチなアイデアや権威性のある人の作ったアイデアであれば欲しい人がいると思いました。思いつきを商品に出してみるというWEBサービスがあっても良いなと。
アイデアを出した人も、アイデアが欲しい人もメリットがあるようにしたいと思い、作っていきました。
使用技術
LAMP(Docker)・AWSS3・heroku・Laravel・Vue(Vuex・VueRouter)・SCSS・FLOCSS。LAMP環境を作って、そこにアプリを作成。Dockerを使いました。開発環境を共有できるので、ちょっと使ってみたかったんです。
AWSS3は、画像の保管庫用に使用。AWSも使ってみたかった。S3くらいだったらちょっとつなげるだけ。
また、サーバーはherokuを使っています。
工夫したところ・難しかったところ:購入やレビューからメール送信までのユーザとのコミュニケーション
プログラムを組む以上に、使っている人に良い感情を抱かせたり次の行動を促したりすることが、やりがいを感じるところであり難しいところでもありました。こうした方がいいんじゃないかとかあれこれ考えるのが楽しいです^^
購入すると、購入者と販売者にメール送信されます。また、商品へのレビュー時もメール送信されます。
以下のコントローラで情報を拾って、view側で出力。メールの受け手が、どんなメッセージを受け取れば安心できるのか考えながら作るのにちょっと頭を使いました。
<?php
/**
* 購入時、購入者へメール送信
* @param string $id
* @return array
*/
public function purchaseMail(string $id)
{
$soldIdea = Idea::where('id', $id)->first();
$purchaser = Auth::user();
if ( $purchaser->name ) { // 名前を登録済みなら、名前を挿入
$mail_text = $purchaser->name.' 様、ご購入ありがとうございました。';
} else { // 名前が未登録なら、Eメールを挿入
$mail_text = $purchaser->email.' 様、ご購入ありがとうございました。';
}
$data = 'ご購入されたアイデア 「'.$soldIdea->title.'」';
$ideaDetailUrl = 'https://inspi-web.herokuapp.com/ideas/'.$soldIdea->id;
$mail_to = $purchaser->email;
Mail::to($mail_to)->send( new TransactionMail($mail_text, $data, $ideaDetailUrl) );
}
/**
* 販売時、アイデア投稿者(売り手)へメール送信
* @param string $id
* @return array
*/
public function sellMail(string $id)
{
$soldIdea = Idea::where('id', $id)->first();
$seller = User::where('id', $soldIdea->user_id)->first();
if ( $seller->name ) { // 名前を登録済みなら、名前を挿入
$mail_text = $seller->name.' 様のアイデアが購入されました。';
} else { // 名前が未登録なら、Eメールを挿入
$mail_text = $seller->email.' 様のアイデアが購入されました。';
}
$data = '取り引きが成立し、販売したアイデア 「'.$soldIdea->title.'」';
$ideaDetailUrl = 'https://inspi-web.herokuapp.com/ideas/'.$soldIdea->id;
$mail_to = $seller->email;
Mail::to($mail_to)->send( new TransactionMail($mail_text, $data, $ideaDetailUrl) );
}
/**
* アイデア投稿者(売り手)に、レビュー通知メール送信
* @param string $id
* @return array
*/
public function reviewNotificationMail(string $id)
{
$reviewedIdea = Idea::where('id', $id)->first();
$seller = User::where('id', $reviewedIdea->user_id)->first();
if ( $seller->name ) { // 名前を登録済みなら、名前を挿入
$mail_text = $seller->name.' 様のアイデアに、購入者からレビューが投稿されました。(レビューは削除される場合があります)';
} else { // 名前が未登録なら、Eメールを挿入
$mail_text = $seller->email.' 様のアイデアに、購入者からレビューが投稿されました。(レビューは削除される場合があります)';
}
$data = 'レビューが投稿されたアイデア: 「'.$reviewedIdea->title.'」';
$ideaDetailUrl = 'https://inspi-web.herokuapp.com/ideas/'.$reviewedIdea->id;
$mail_to = $seller->email;
Mail::to($mail_to)->send( new TransactionMail($mail_text, $data, $ideaDetailUrl) );
}
サービスとユーザーとのコミュニケーションがサービスの質を向上させる上で重要なので、ユーザーとのコミュニケーションを自動化することを工夫しました。
やってみて感じたこと、得られたこと:似たコンセプトのWEBサービスをマネする大切さ
ゼロからオリジナルで作らずに、他のWEBサービスを参考にしました。コンセプトの似たようなサービスを比較すると学びが多い。
note:https://note.com/
brain:https://brain-market.com/
Blabo!:https://bla.bo
junk mart:https://junkm.art/
SURF SCAPE:https://surf-scape.com/
どれもアイデアの共有を目的としており、ユーザーの動きを考えられたものなっています。
商品投稿者の情報が分かりやすいというのが、購入するユーザーにとって安心できるポイントだと改めて感じさせられ、良い点を取り入れようと工夫しました。
マネこそ最上の学び。
今後の課題として取り組んでいきたいこと:生活をゲームのようにクリアするよろこび、IT用語や歴史など面白いと思った気づきを発信
取り組みたいことは2点。自動化と教養・雑学の発信です。- 自動化や工夫によって、生活を楽に豊かにする情報発信
- IT用語や歴史に関する教養・雑学の発信によって面白いと思ったことを提供すること
自動化によって生活をゲームのようにクリアする喜び
1点目は、自動化や工夫で生活が楽に豊かになること。生活の攻略法・取扱説明書のような形で、クリアする喜びを共有していけたら最高だなと思います。
アイデアを売買するWEBサービスを作っていく中で、日々の生活を振り返ることが多かったです。
過去に、ITやお金・事業などの道具の使い方を知らないばっかりに無駄な労力を使ってしまうことが多々あり^^;その反省を踏まえて、今後はより効率的に楽しく道具を使っていけるようになりたい。
今まで労力をかけていたことがやらなくても良いと分かった時や、より効果的な方法が分かった時などとても喜びを感じるんです。
そういったポジティブな気持ちとともに発信していきたいです。
情報があればショートカットできる。そして、モノは断捨離
特に、情報があればいろんなことを便利に使え、面倒なことはショートカットできるし、時には笑えて楽しい瞬間に出会える。「そっかこうやってやるんだ!」とか「なるほどこうなってるんだ!」という達成感や気づきって嬉しいものです。
情報源としては、Googleの検索だけでなくYouTubeや有料メルマガなどからも情報を得ていると楽しく日常を過ごせることに日々嬉しさを感じています。
逆に、物理的なモノについてはどんどん無くしていっている自分に気づく。
この情報があれば、こういったモノは不要だなと気づく場面が多く、これも達成感につながります(車も手放しまして、工夫して生活できるか実験中です)。
アイデア・情報っていうのは、こんなにも肩の荷を軽くしてくれるものなのかと、改めて気づくことが多いです。
そして私自身も、「なるほどなあ」と思えるような情報を発信して行けたらいいなと思っています。
ことばや歴史の教養・雑学による面白い発見
2点目は、実用的ではないけれど、視野を広げるような情報発信をしていきたい。特にITに関わる用語や歴史などです。
視野を広げることができて楽しい。そんな気持ちを発信していきたい。
とくにIT・プログラミング、英語などの語学、歴史や歴史上の人物、心理・社会、投資・金融など。
テクノロジーが社会を変える様を見ていると嬉しくなるし、言葉の意味を知ることが楽しいという感覚も共有したいんです。
また、歴史や心理など社会の仕組みについて知ると嬉しくなる。
自分が気になる情報を追って発信し、人に良い影響を与えられる内容を心がけていきたいと思っています。
自分の情報発信を通じて、時間を充実させられたらなと。
何よりIT・英語、歴史や歴史上の人物、心理などに関する情報が好きだという気持ちがいっぱいの世界観を作ることができたらなと感じています。
生きるゲームを楽しく
以上のように人生の攻略本や取扱説明書のようなノリで、IT・生活の工夫・自動化などを発信し、生きるのをゲームにするような感覚で発信したい。そして、視野が広がった嬉しさとともに語学・歴史教養系の情報発信も行っていきたいです。
最後までお読みいただきありがとうございます。では!