みんなの「作ってみた」

GAE×DjangoでWebサービスを開発してみた

2019/03/03

tfuruya
tfuruya
Work:2017年入社。Python, Djangoで開発中。nginx, postgre。 Private:GoogleとSlack。Django,Pythonは勉強も兼ねて。Google Apps Scriptで色々連携させたい。

一言で言うと

GAEでWebサービス作ってみました。
Where to Visit ?

概要

今更だが、GAEスタンダード環境でPython3が使えることを知り、そこにWebサービスを作ってみようと考えた。
テーマは「新たな旅行先候補との出会い」

「どこか旅行に行きたいけど、どこがいいだろう。。。?」
旅行好きの自分は↑のように思うのだけど、その時、ネット上で旅行先での写真を探してみることが多い。
しかし、直感的に画像や写真だけから調べていく手段は身近にはないと感じる。どうしても国や地域などで調べてから、写真に行き着くケースが主である。

そこで今回、技術習得も兼ねて、直感的に旅先を選ぶ手助けができるWebサービスを作ってみた。

コンセプト

  • 直感的に旅先を選べるサービス

要件

  • ランダムに旅行写真を表示
    • 個々人で詳細な情報を調べられるように、その写真が撮られた国名や街名・場所名も提供する
  • 直感的にわかるトレンド表示
    • → Word Cloud
  • ある程度のフィルタリング機能

使用した技術

  • Google Apps Engine
    • Standard環境(Python3)
  • Python3, Django
  • Google Datastore
  • D3.js
    • Word Cloud作成
  • Ajax
  • Bootstrap4
  • Google Domain
    • 独自ドメイン

各種実装について

以下記事を個別に書いていきます(随時リンク追加予定)

成果物

Where to Visit ?

紹介

ランディングページ

いろいろな旅行先の写真(全部、自分が撮ったものですが。。。)からランダムに背景画像を選択するようにしています。
例えばオランダ
スクリーンショット 2019-03-03 20.24.41.png
ときにはベルギー
スクリーンショット 2019-03-03 20.25.10.png
ときにはラオス
スクリーンショット 2019-03-03 20.27.55.png

メインページ

メインのコンテンツは、「写真」と「Word Cloud」。
写真はCountry, Prefecture, Sitenameなどの情報を持ち、それがWord Cloudとして表示されている。
スクリーンショット 2019-03-03 20.29.17.png
Word CloudのWordをクリックすると、フィルターがかかる。
例えば日本を押すと、Country=日本のデータのみで、写真とWordCloudが構成される。
この遷移は、がんばってAjaxで実装してみた。
スクリーンショット 2019-03-03 20.29.43.png

下の写真をクリックすると、モーダルで表示
スクリーンショット 2019-03-03 20.35.07.png

サイドバーには写真が持つ情報をまとめてみた。クリックすると、その情報でフィルタリングして結果を表示します
スクリーンショット 2019-03-03 20.29.27.png

感想

  • 最初はマネタイズを目標にしてWebサービス開発を考えてたけど、なかなか進まないかった
    • → まずは経験を積んでみることにした。
  • 「公開しよう」と思えるレベルまで持っていくのに時間がかかった
    • → 最初に完成形イメージを深く考えないで、作りながらアイディアを深めって言ったのが良くなかった?
    • いろいろ使ってみたい技術・実装したい機能が出てきて、公開が遠のいてしまう。ある程度の区切りは作ったほうが良い
  • かっこいいページを作るのは難しい
    • センスが無いだけとは認めたくない
  • 「Webサービスを作って公開する」というのはいい経験になった。形に残るものを作るのは、実践的な技術習得になると思うので、ぜひ皆さんもトライしてみてほしい

ロードマップ

Vision APIの導入

Landmark検出を利用して、自動的に国名や住所、緯度経度、ランドマーク名を検出できるようにしたい。
(写真一枚一枚、データを登録するのは辛い・・)

google maps apiの導入

上記に関連して、緯度経度情報を持つ写真については地図を表示できるようにしたい

ユーザからのアクション

今は自分の写真を載せてユーザに見てもらうだけだが、ユーザから投稿してもらったり、コメントを貰ったりできるようにしたい
特に、自分の写真だけだとバラエティにかけるので、ユーザからの重点的に投稿は取り組みたいところ。