今回はChatGPTを活用して、ゼロからアプリを作ってみようと思います。
アプリを作成する際に、難しく感じがちなテーブル設計(スプレッドシートの項目整理)も、ChatGPT+AppSheetの予測機能で、良い感じに仕上げてくれます。
また、作成時に必要となりがちなテストデータの作成も、ChatGPTが準備してくれるので効率的に開発を進められます。
早速、始めていきます。
まず、お題は。。。特に考えていなかったのですが、「不動産情報を管理するアプリ」にしたいと思います。
別記事でデザイン帳票の作成記事を書こうと思っているので、その前段のアプリ作成です。
テーブル設計(スプレッドシート作成)
大手サイトの力を拝借
まずは、不動産情報の大手サイトにいって、情報のまとまりが良い感じのサイトをみつけます。
(不動産に限らず、どの業界でも大手サイトはデータベース設計のプロフェッショナルがシステム化済みのため、きれいなデータ構成になっているはずです。)
ChatGPTにテーブル設計を依頼
取得した画像のキャプチャをChatGPTに画像ファイルを渡して、テーブル設計をお願いします。
今回は、以下のプロンプトでテーブル設計をお願いしてみました。
この画像の情報を帳票出力するシステムを作成予定です。
テーブル設計をしてください。
その結果、以下のように回答を返してくれます。
すでにAppSheetの開発経験をお持ちの方は、各テーブルの主キーをもとに、Refの関連に誤っている箇所がないか見てもいいです。
今回は、簡単に作成するをモットーにしていますので、ChatGPTの結果をそのまま採用します。
以下、スキップして大丈夫ですが、今回のテーブル設計を念のため載せておきます。
1. 物件情報テーブル(Property)
カラム名 | データ型 | 説明 |
---|---|---|
PropertyID | INT (主キー) | 物件ID |
Name | VARCHAR | 物件名 |
CompanyID | INT (外部キー) | 管理会社ID |
Rent | DECIMAL(10,2) | 賃料 |
ManagementFee | DECIMAL(10,2) | 管理費 |
Deposit | DECIMAL(10,2) | 敷金 |
KeyMoney | DECIMAL(10,2) | 礼金 |
FloorPlan | VARCHAR | 間取り |
Area | DECIMAL(5,2) | 専有面積 (m²) |
BuildingType | VARCHAR | 構造 |
Floor | VARCHAR | 階数 (例: 5/10階) |
YearBuilt | YEAR | 築年月 |
NearestStation | VARCHAR | 最寄駅情報 |
AvailableDate | DATE | 入居可能日 |
Remarks | TEXT | 備考 |
2. アクセス情報テーブル(Access)
カラム名 | データ型 | 説明 |
---|---|---|
AccessID | INT (主キー) | アクセスID |
PropertyID | INT (外部キー) | 物件ID |
StationName | VARCHAR | 駅名 |
WalkTime | INT | 駅からの徒歩時間(分) |
3. 設備情報テーブル(Amenities)
カラム名 | データ型 | 説明 |
---|---|---|
AmenityID | INT (主キー) | 設備ID |
PropertyID | INT (外部キー) | 物件ID |
AmenityName | VARCHAR | 設備名 |
4. 管理会社情報テーブル(ManagementCompany)
カラム名 | データ型 | 説明 |
---|---|---|
CompanyID | INT (主キー) | 会社ID |
CompanyName | VARCHAR | 会社名 |
ContactNumber | VARCHAR | 電話番号 |
OperatingHours | VARCHAR | 営業時間 |
5. 契約情報テーブル(Contract)
カラム名 | データ型 | 説明 |
---|---|---|
ContractID | INT (主キー) | 契約ID |
PropertyID | INT (外部キー) | 物件ID |
ContractType | VARCHAR | 契約条件 |
AdditionalCosts | DECIMAL(10,2) | その他費用 |
スプレッドシートを準備しやすい形に整形
ChatGPTが回答したままのテーブル設計では、AppSheetへの転記が煩雑なため、スプレッドシートに貼りやすい形に整形もかねて、テストデータの作成をお願いをします。
上記のテストデータを作成してください。
データのヘッダは日本語にしてください。
物件IDが3つになるようなデータにしてください。
ChatGPTが返してくれた結果です。
1. 物件情報テーブル
物件ID | 物件名 | 管理会社ID | 賃料 | 管理費 | 敷金 | 礼金 | 間取り | 専有面積 | 構造 | 階数 | 築年 | 最寄駅 | 入居可能日 | 備考 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | パインステージ白金高輪 502号室 | 208,000 | 5,000 | 208,000 | 208,000 | 1LDK | 37.44 | 鉄筋コン | 5/10階 | 2024年 | 白金高輪駅 徒歩3分 | 2024-11-29 | 詳細はお問い合わせください | |
2 | グリーンヒルズ代々木 203号室 | 175,000 | 8,000 | 175,000 | 175,000 | 2DK | 45.00 | 木造 | 2/5階 | 2020年 | 代々木駅 徒歩5分 | 即入居可能 | ファミリー向け | |
3 | スカイビュー新宿 1508号室 | 350,000 | 12,000 | 700,000 | 0 | 3LDK | 85.00 | SRC | 15/20階 | 2018年 | 新宿駅 徒歩7分 | 2024-12-15 | ペット可、高層階 |
2. アクセス情報テーブル
アクセスID | 物件ID | 駅名 | 徒歩時間(分) |
---|---|---|---|
1 | 1 | 白金高輪駅 | 3 |
2 | 1 | 泉岳寺駅 | 8 |
3 | 2 | 代々木駅 | 5 |
4 | 3 | 新宿駅 | 7 |
3. 設備情報テーブル
設備ID | 物件ID | 設備名 |
---|---|---|
1 | 1 | バストイレ別 |
2 | 1 | エアコン |
3 | 1 | オートロック |
4 | 2 | システムキッチン |
5 | 2 | フローリング |
6 | 2 | 宅配ボックス |
7 | 3 | バルコニー |
8 | 3 | 追い焚き機能 |
9 | 3 | ペット相談可 |
4. 管理会社情報テーブル
会社ID | 会社名 | 電話番号 | 営業時間 |
---|---|---|---|
1 | アパマンショップ東陽町店 (株)大田ハウス | 0120-549-333 | AM10:00〜PM7:00 |
2 | 住まいサポート代々木店 | 03-1234-5678 | AM9:30〜PM6:30 |
3 | 高層タワー管理株式会社 | 03-9876-5432 | AM10:00〜PM8:00 |
5. 契約情報テーブル
契約ID | 物件ID | 契約条件 | その他費用 |
---|---|---|---|
1 | 1 | 仲介 | 19,870円 |
2 | 2 | 直接契約 | 15,500円 |
3 | 3 | 仲介 | 25,000円 |
AppSheetのスプレッドシートを作成
テーブル設計の最後になります。上記の結果を元にスプレッドシートを作成していきます。
Googleドライブに「db」(なんでも大丈夫です)というスプレッドシートを作成します。
ChatGPTが作成してくれたデータを、ヘッダーも含めて値をコピーし、スプレッドシートに「値のみ貼り付け」で貼り付けを行います。
また、シート名をテーブル名に変更します。
同じようにテーブル数分、スプレッドシートへコピーしていきます。
以上で、テーブル設計は完了です。ここで作成したスプレッドシートを元に、AppSheetを作成していきます。
AppSheet作成
ここからはAppSheetの作成を行っていきます。
アプリの新規作成
「Start with existing data」からアプリを作成します。
アプリ名を入力して「Choose your data」で、次の画面へ移動します。
「Google Sheets」を選んで、作成したスプレッドシートを選択します。
少し待つと。。。
アプリが作成されました!
作成したアプリを開くと、以下のような画面が表示されます。
- データ:AppSheetのアプリはデータを元に構築されます。今回でいうと初めに指定した「db」スプレッドシートになります。この情報を利用してアプリを作成します。
- ビュー:アプリ内でデータを表示するためのインターフェースです。ユーザーはビューを通じてデータを確認、入力、編集できます。
- アクション:ユーザーがアプリ内で行う操作を簡略化または自動化するための機能です。イメージ的にはボタンを押したときの動きになります。
- オートメーション:繰り返し行う業務を自動化するための機能です。今回は使いません。
AppSheetのデータを更新
データを開くと、先ほど作成したテーブルのうち「物件情報」のみが表示されています。そのため、それ以外のテーブルの取り込みを行います。
データの「+」ボタンを押します。
既に選択したスプレッドシートの以下を押して、取込を行います。
- Add Table “アクセス情報”
- Add Table “設備情報”
- Add Table “管理会社情報”
- Add Table “契約情報”
Create a new table の設定で、以下のallowedは「Update」「Adds」「Deletes」を選びます。
すべてのスプレッドシートを取り込むと、以下のようにデータに表示されます。
テーブル関連の整理
テーブルを追加したら、テーブル間の関連を整理していきます。正しいテーブルの関連を定義することで、複雑なデータ構造でも効率的に管理できるアプリを作成できます。
今回の「物件情報」と「設備情報」での設定を説明します。
- 物件情報テーブル: 各物件の基本情報を管理。
- 設備情報テーブル: 各物件に関連する設備情報を管理。
となっています。そのため、設備情報の物件IDをRefに変更します。
今のスプレッドシートのデータは、以下の状態となっています。物件(パインステージ白金高輪)と設備(バストイレ別、エアコン、オートロック)がリンクづけられるようにしていきます。
具体的には、以下のように設備情報テーブルの物件IDのタイプを「Ref」に変更します。
この設定により、物件(下記ではパインステージ白金高輪)に、設備が3つ(バストイレ別、エアコン、オートロック)紐づいた状態になります。
画面で見ると、以下のような状態になります。
元のスプレッドシートと比較すると分かりやすいかと思います。
同じように、以下のテーブルについても物件IDのRef設定を行っていきます。
- アクセス情報
- 契約情報
また物件と管理会社もリレーションを設定します。
- 管理会社情報
完成
以上により、不動産情報管理をするアプリの作成ができました。
もちろん、もっと使いやすくすることは出来ますが、ChatGPTとAppSheetを使って作成するのはここまでです。
10分~20分くらいで出来ました。
補足
リレーション(Refタイプ)について
少しだけ補足いたします。
テーブルのリレーションを設定するにあたって、必要となるものが「Ref」になります。
Ref(リファレンス)は、AppSheet内で異なるテーブルを関連付けるためのデータ型です。これは、データの一貫性を保ち、テーブル間の関係を簡単に管理するために使用されます。
Refの一番の役割は、テーブル間のリレーションシップの構築です。
Refは、1つのテーブルの行を他のテーブルの行と結び付けます。リレーショナルデータベースの「外部キー(Foreign Key)」に似ています。
それにより、あるテーブルのレコードから、関連する他のテーブルのデータを簡単に参照・操作できます。
コメントを残す