Hasam 開発ブログ

チラシの挟み込みをWebでカンタンにするサービス「Hasam」の開発者ブログです

Hasamを支える技術

Hasamのサービスインに伴い、前回の記事ではHasamのサービス紹介をしました。

hasam.hatenablog.jp

今回は、Hasamで利用している技術を簡単に紹介したいと思います。

概要

Hasamのシステムはこのような構成になっています。

f:id:chooyan_eng:20170802120059p:plain

アプリケーション本体はDjango、サーバーはGoogle Cloud Platform、課金はStripe、アカウント認証はTwitterという構成です。

それぞれについて、少し詳しく説明します。

Hasamを支える技術

Django

DjangoPythonでWebアプリケーションを構築するためのフレームワークのひとつです。

Home | djangoproject.jp

Pythonという言語自体が比較的初心者にも書きやすい仕様になっていて、DjangoRuby on Railsに比べて「裏で勝手によろしくやってくれちゃう」感じが少なく、何か細かな変更や修正をしたいときに修正箇所と影響が予想しやすい、とても扱いやすいフレームワークでした。

最近はWebサービスというとRuby on Railsで開発する場合が多いかと思いますが、スクリプト言語フレームワーク使ってWebアプリケーション開発、というノウハウがない場合はDjangoも良い選択肢になることがわかりました。

Google Cloud Platform

Google Cloud Platformは、Googleが提供しているクラウドサービスの総称です。 AWSやAzureと同じく、いろいろなサービス(RDSやファイルストレージ、サーバーなど)から利用するサービスを個別に選んでシステムを構築することができます。

Google のクラウド コンピューティング、ホスティング サービス、API  |  Google Cloud Platform

今回はDjangoアプリケーションを動作させるプラットフォームとしてGoogle App Engineを、チラシ画像やCSS, JSファイルの配置場所として、Google Cloud Storageを、登録されたデータの保存用DBとしてGoogle Cloud SQLを利用しています。

Google Cloud Platformは、上記のような一般的なシステム構成を例にチュートリアルページを用意してくれているため、ひとまずそれにしたがって作業を進めるだけでアプリケーションをインターネットに公開できてしまう点がとても良かったです。

Stripe

Stripeはクレジットカードによる支払いやカード情報の管理を代行してくれるWebサービスです。

Stripe

開発向けのリファレンスやAPI設計がとてもわかりやすくまとまっているのが特徴で、本当に1時間もあれば概要を把握して課金を試してみるところまでできてしまいます。 ドキュメントは英語ですが、サンプルのソースコードを中心としたとても読みやすい文章で書かれているため、あまり英語だから苦労するようなこともありませんでした。

サービスの使い方自体を理解するのに時間を割くのではなく、自分のサービスの課金形態に合わせたカスタマイズに集中することができるので、Hasamへの1回500円の課金の仕組みも想像以上に素早く実装できてしまいました。

クレジットカード情報を扱う場合は、PCIという基準に準拠する必要があるのですが、Stripeが要求する技術的な条件を満たせば自動的に準拠していることが保証されるというのもStipeの利点です。

PCI に準拠する必要がありますか?準拠するにはどうしたらよいですか? : Stripe: Help & Support

Twitter

HasamのアカウントはTwitter認証で行なっています。 DjangoTwitter認証を簡単に行うオープンソースライブラリとしてsocial-app-djangoがありますので、そちらを利用しています。

GitHub - python-social-auth/social-app-django: Python Social Auth - Application - Django

今回のサービスは、特にユーザー間のコミュニケーションがあるわけでもなく、SNSへの自動連携なども必要なく、ただアップロードしたチラシを管理するためにユーザーの識別が必要でした。Twitterなら団の誰かがアカウントを持っているであろうことや、このサービスのために新しくアカウントをサインアップするのも面倒だろうという予想から、Twitterによる認証のみとしています。


以上です。 それぞれの技術を使ってみて得た知見などは、まとまったら改めてこのブログかQiitaへ投稿する予定です。

演奏会のチラシの挟み込みはぜひHasamをご利用ください!

www.hasam.jp

チラシの挟み込みをカンタンにするWebサービス「Hasam」をリリースしました!

本日、チラシの挟み込みをカンタンにする、「Hasam」というWebサービスをリリースしました!

www.hasam.jp

Hasamとは

Hasamは、オーケストラの演奏会におけるチラシの挟み込みをWebで電子化するサービスです。

Hasamを使うことで、従来は印刷費や交通費、作業時間などにより大きなコストになっていた「チラシの挟み込み」という活動を電子化し、演奏会開催者にとっては本番当日の時間節約に、広報担当者にとっては時間的・予算的なコストカットに、演奏会のお客様にとってはチラシの束をカバンにつめて持ち帰らなくてもよくなるという、チラシに関する様々な悩みが解決されます。

Hasamはチラシの挟み込みを電子化するサービスです。 Hasamを使ってチラシを管理している演奏会では、お客さんはパンフレットに挟まれたチラシの束を1枚1枚めくって見るのではなく、パンフレットに印刷されたQRコードスマートフォンで読み取り、ブラウザ上でチラシの画像を閲覧することになります。

そうすることで、チラシを1枚1枚パンフレットに挟み込む作業は必要なくなり、また挟み込むためのチラシを印刷する必要もなくなります。

Hasamを使った挟み込みの流れ

Hasamを使ったチラシの挟み込みは、「演奏会を開催する人」と、「チラシを挟み込みたい人」のそれぞれの立場の人が、それぞれHasamへ演奏会を登録することによって実現します。

「演奏会を開催する人」の場合

まずは「使ってみる」から、自分の演奏会のチラシ画像をアップロードします。

登録が完了すると、演奏会の管理画面に「挟み込み用URL」が表示されます。 これは、「自分の演奏会のチラシを挟み込みたい人」があなたの演奏会へチラシを挟み込む際に必要なURLです。

挟み込みの依頼があった場合、このURLを案内してください。

また、演奏会当日にお客さんに配布するパンフレットへ、「お客さん用QRコード」を印刷するのを忘れないでください。演奏会のお客さんは、このQRコードを読み取ることで挟み込まれたチラシを閲覧することができます。このQRコードがなければお客さんはチラシを見ることができず、挟み込みも無駄になってしまうので、忘れないよう十分注意する必要があります。

QRコードの印刷さえされていれば、演奏会当日は特になにもする必要はありません。 チラシの挟み込みの運営に時間を取られることがなくなるので、演奏会本番の準備に集中することができます。

「チラシを挟み込みたい人」の場合

「演奏会を開催する人」の場合と同様、まずは「使ってみる」から、自分の演奏会のチラシ画像をアップロードします。

次に、挟み込みしたい演奏会の担当者へメールなどで連絡し、「挟み込み用URL」を案内してもらいます。

「挟み込み用URL」を開くと、自分が登録したチラシの一覧が表示されますので、挟み込みたいチラシを一枚選んで登録します。

このとき、チラシの挟み込み1回につき500円の支払が必要になることにご了承ください。支払はクレジットカードで行うことができます。画面の案内に従って、クレジットカード情報を入力します。

決済が完了すると、チラシの挟み込みは完了です!もう挟み込みのためにチラシを1か所につき何百枚も印刷したり、演奏会会場まで足を運んだりする必要はありません。浮いた予算と時間を活用してさらに多くの演奏会に挟み込みをしたり、練習時間を増やしたり、乗り番台を減らすのも良いでしょう。

このように、「演奏会を開催する人」、「チラシを挟み込みたい人」のどちらの場合も、わずか数分のPCの作業で挟み込みが完結することが、このHasamの特徴です。 また、実際は「演奏会を開催する人」、「チラシを挟み込みたい人」のどちらの立場も逆になることがありますので(演奏会を開催する人も、演奏会当日までは自分の演奏会のチラシを挟み込みたい人になる)、最初の登録作業を1回行えば、開催、挟み込みのどちらの作業もできるようになっているのも特徴です。

Hasamの課題

Hasamを利用すれば紙に印刷したチラシは必要なくなるのかと言うと、実はそんなことはないと思っています。

Hasamはスマートフォンによるチラシの閲覧を前提にしているため、たとえばスマートフォンを使っていないお客さんや、画面上の細かい文字を読むのが難しいお客さん、紙のチラシ自体に愛着があるお客さんなど、電子的なチラシを見ることができないお客さんへの配慮がサービス上できていないことが課題となっています。

まだ解決策は検討中ですが、いくつかの案をこの場で出してみたい思います。

案1:印刷されたチラシを挟み込んだパンフレットも用意する

Hasamを利用したパンフレットと、従来のように印刷されたチラシを挟み込んだパンフレットを両方用意し、お客さんの希望によってどちらを渡すかを変える方法です。

しかし、これをするためには結局印刷も挟み込みもしなければならなくなり、Hasamを使う意味がなくなってしまいます。この案を採用するのであれば、Hasamを利用しないことを検討した方が良いかもしれません。

案2:印刷されたチラシを並べておく

挟み込みを受け付けたチラシの印刷された版を少しだけ郵送してもらい、ロビーなどに並べておく方法です。お客さんは気になったチラシを待ち時間の間に自分で選んで持ち帰ることができるようになります。

結局印刷のコストは少しかかってしまいますが、「挟み込み作業が不要になる」、「印刷費が抑えられる」というメリットをある程度活かすことができます。

案3:対応しない

少し乱暴ですが、何も対応しない、というのも一つの案です。 チラシから次に行く演奏会を探す楽しみがなくなってしまうのはその通りではありますが、もともとチラシの挟み込みを行っていない演奏会も少なからずあることを考えると、演奏会にチラシがないことがそのまま問題になるわけではないとも思っています。

どの案が最善かはその演奏会の規模や客層・考え方によって変わりますので、あくまで考えられる案を書いてみるだけになりますが、演奏会の開催者はこれらを基に対応を検討してみていただければと思います。Hasamサービスとしても引き続き解決策を検討します。

最後に、Hasamは @chooyan_i18n によって開発、運営されている、できたばかりのWebサービスです。まだまだ使いづらい点や不満などもあるかと思いますが、継続して改善していければと思いますので、ぜひ使ってみてフィードバックをいただければと思います。

フィードバックはこちらからお願いします!

hasam.operator@gmail.com


Hasam | チラシの挟み込みをWebでカンタンに

https://www.hasam.jp