![見出し画像](https://assets.st-note.com/production/uploads/images/40158517/rectangle_large_type_2_731d3685809147364a6516e14f63e5b4.png?width=1200)
クソ物件GOの集団予定管理ツールをnocodeで構築してみた
はじめに
こんにちは、西新宿社長と申します。不動産屋さんが活用できるITサービスを作って運営する会社を経営しています。twitterではツイ廃の不動産クラスタが主宰する「全宅ツイ」に所属させていただいております。今回は、最近盛り上がりを見せつつあるnocodeサービスを使って「クソ物件オブザイヤー」の中の企画「クソ物件GO」で役に立つツールを作ってみたので開発の内容や気づきをまとめたいと思います。
作ったもの
「クソ物件GO」赤軍の予定管理サービスです。100人以上のチームで合計600ある目的地に対して、担当者として自分をアサインしてチーム内に予定共有できるツールになっています。目的地を地域や重要度などで絞り込んで検索、自身の予定を編集・削除、物件に誰が登録しているかの可視化、それがリアルタイムで反映されていくなどの機能を持っています。PWA(Progressive Web Apps. ネイティブアプリに近い挙動をするWebアプリのこと)で提供しています。
クソ物件GOって?
そもそもクソ物件GOってなんぞやという方もいると思うので。クソ物件GOとは、毎年年末に開催される「不動産業界の奇祭」と呼ばれるクソ物件オブザイヤーにエントリーされた物件を巡礼する、不動産版ingressのようなゲームです。現地で対象物件に「チェックイン」することでそれぞれの物件に設定されたポイントが加算されていき、対象期間内により多くのポイントを得たプレイヤーが勝利するという、位置ゲー×陣取りのような性質を持っています。
対象物件は全世界600!去年までは個人戦だったのですが、今年からチーム対抗戦になり、以下のレギュレーションにあるように「相手チームより先にチェックインしないと得点が半分になる」「コンプボーナスは先に達成したチームのみ」などチーム内でのリソース分配が重要なルールとなりました。ちなみにそれぞれのチームには150名程度が参加しています。
◆今年の得点表
東京都23区の物件:1点
政令指定都市の物件:2点
それ以外の都市の物件:4点
外国の物件:20点
クソ物件オブザイヤー2020物件:得点が3倍
※複数年度登場する物件は最新のものでカウントします。
※相手チームがチェックインしたポイントは得点が半分になります。
◆特別ミッション
【ミッション1】「都道府県内のクソ物件をコンプリートせよ」一つの都道府県内の全ての物件を回れ。これは各チェックインの順番は問わない。しかし、コンプボーナス20点は先に達成したチームのみ。
【ミッション2】「開発用地を調査せよ」開発用地は通常の得点の2倍。且つ、建築中・再開発されていた場合はボーナスとして更に2倍になる。再開発ボーナスは先に発見したチームのみ。
直面した課題
先ほどのルール説明にあった通り、
1. 個人戦からチーム戦にレギュレーションが変わった
2. チーム内の誰かが1度チェックインすればポイントになる
(逆に、同チームで二人目以降はポイントにならない)
3. 敵軍に先にチェックインされるとポイントが半分になる
4. 物件毎に獲得できるポイントの重み付けが異なる
ことから「チーム内で被りがないよう、1物件に1担当を設定する」「被りが出た場合は早く訪問できるメンバーを優先する」「ポイント設定の高い重要拠点に漏れがないかのチェック」などをする必要性が生じました。グループチャット上でのコミュニケーションでは、ログが流れる、地域が混ざるなどの問題を抱えていました。
では作ってみよう
上記の課題を解決するために、物件毎に自分の予定を登録してチームに共有できるツールがあればいいと考えました。こういった場合おそらく第一選択肢として挙がるのはオンラインで共同編集できるスプレッドシートかと思います。ただし、100人以上いるチームでフィルタなど各々が自由にかけると混乱を招きますし、モバイル環境でも直感的に予定を登録できることが望ましいと考えたため、いっそのことツール化して解決することにしました。
使用するツール
とはいえ短い納期でゼロからサービスを構築するのは、あくまでお遊びでやるには重すぎます。そこで以前から興味があったnocodeサービス「adalo」を使うことでエンジニアリングリソースを最小限にツールが作れるのではないかと考え、取り組みました。nocodeでは直感的なデータベース構築と豊富なコンポーネントにより、実用に足るレベルのサービスが爆速で構築できるという特徴を持っています。adaloがいけてるなと思うところは、用意されているUIがモダンなこと、そのままネイティブアプリとしてもリリースできることですね。(今回はWEBアプリの形式にしましたが)
サービスは私が一人作業でドキュメントを参照しながら約8〜10時間程度で完成しました。参考までに私のスキルセットはどちらかというとビジネス寄りで、制作に関してはXDなどのツールを使ってツールモックが作れる、初級程度のSQLが書ける、簡単なHTMLが書ける、プログラミングはかなり挫折を繰り返している、です。全くの無ではないですが非エンジニアです。
実際の工程
まずは全体の設計図をざっくり絵にします。この絵は自分だけがわかればいいので超雑に超スピードでやります。今回はこんな感じでした。必要な画面遷移と、それぞれの局面でどんなデータを持つ必要がありそうかをざっくり書き出します。当初案だとkuso_bukkenテーブルに担当者のカラムを設定して一番早い人間だけを上書きしていこうとしてますね。これは後々スケジュールを別テーブルにした方がええなと思い、別立てすることになります。こうしてラフでも全体像を書き出すことで、変更した方が望ましい点に気づけたりします。これがきっちり書ききれた時点でnocode開発の7割くらいは勝利確定です。
テーブルの設計をやっていきます。超直感的。必要なカラムを追加してデータ形式(テキスト、数値など)を指定、その後は手打ちでもcsv取り込みでも簡単にデータを追加していけます。
テーブル毎のリレーションも簡単に指定できます。データベースは外部サービスに接続したりも可能です。adaloの用意したものだと容量があまり多くないため、大規模なデータを扱う必要があれば外部に繋いだ方が望ましいと思われます。
UIの設計もより直感的です。ラフスケッチを見ながら必要な画面を足していきます。今回は物件リストを表示しつつ、都道府県の絞り込みやタイトルでの検索を実装しました。物件詳細画面ではGoogle mapのAPIを叩くことで地図表示を実現しています(これも引くほど簡単でした)。訪問予定ユーザーはスケジュールのテーブルから物件ごとに登録したユーザーを引っ張ってきて、早い時間で予定を登録したユーザーが上位表示されるようにしました。
最終的な画面遷移図はこちら。物件を検索し予定登録できる以外に、自分の予定を確認・変更・削除できる導線やポイントが高い物件のみに絞って表示できる画面などを追加しました。また、敵チームが登録できないようチーム内で流通する秘密の暗号を入力しないと登録できない導線としました。
できたもの
コッカラッス!を体現するアイコン
メインメニュー。全体で何件登録されてるかは内緒。
都道府県とキーワードで絞り込んで・・・
日程を入力。
登録OKです
予定一覧はこんな感じ。登録2になってたら他の誰かも予定入れてるから調整しようね!かなりサクサク動かすことができてます。よかったです。僕が所属する赤軍はこのツールを使ってコンプリート戦略の立案などをやっていました。
気付き
・ログインが何らかの原因で外れたときに、そのままサービスを使えてしまうことがあった。ログインユーザーがemptyで画面遷移しようとした時に判定を掛ける必要あり?要調査。取り急ぎ、予定登録ボタンにログインuserがemptyでない判定を最低限入れることで対応した。
・リストをフィルタリングしてるとき時間が掛かることがあったのでスピナーを表示させたかったけどやり方が分からなかった。
・直感的にできてしまうが故に、パフォーマンス悪い、重い実装をしてしまうことが多々あった。SQLある程度書けるレベルなら工夫して改善していける。「なんも分からん」という人は正直バックエンドが厳しいと思う。どういうデータをどの形式でどのテーブルに持たせるかのイメージが持てないので。
・他人に公開してからだと本番環境をいじりながらユーザーがいる感じになるのでかなり不安。ステージング環境を用意してそこで問題なければ本番に反映という手順を踏めるといいなと思った。(2プロジェクト用意すればできるのかもしれませんが)
・Wordpressレベルで簡単にPWAを作れる段階には達していると思った。PWA自体も、想像以上にネイティブアプリに近い動きをする。5Gで通信環境が進化すれば「それPWAでよくね」が増えると確信。ただ現状はやっぱ多少もっさりはする。
・非エンジニアの僕1人でここまでできるので、エンジニア入れて外部や自前のAPIとうまく連携しながら作り込んでいけばもっと高度なことができるはず。アプリ作る工数が劇的に下がるんじゃないかな。
・ドキュメントやフォーラムの情報で有用なのはほぼ英語なので英語は頑張ろう。
最後に宣伝
1. 案件をください
今回作ったツールは私一人で構築した簡易的なものですが、私の会社には複数のエンジニアが所属しており、より高度な開発が可能です。今回のような社内ツール的なものであればかなり安価な初期・ランニング費用でご提案できますし、外部APIや自前のAPIと連携しながら複雑な処理をするサービスを承ることもできます。また、今回はウェブアプリの形式でリリースしましたが、ネイティブアプリでの展開も可能です。つまり案件をください。「何か作りたかったんだよなー」という方はお気軽にTwitterのDM(@jpnbeehive)まで。スクラッチの開発よりは自由度は落ちますが、それでもかなりのことがやれます。できます。コッカラッス!
2. 他のnote読んでほしい
今回のテーマとは全く毛色が違いますが、noteで今年の春先に「100日後に死ぬ社長」という企画小説のようなものを書きました。(始めた手前やめられなくなってとても苦しみました)我ながら「ワニよりおもしろいなあ」と思っているので読んでください。
3. クソ物件オブザイヤー2020もよろしくです
「不動産業界の奇祭」クソ物件オブザイヤーがまもなく今年のフィナーレを迎えます。こっちもめちゃめちゃ面白いイベントなのでぜひチェックしてみてほしい。僕も「実習生がアパートで豚解体」でエントリーしてるよ!投票してください。
久しぶりにがっつりnoteを書いたので疲れました。それではまた。