コモレビカガミを作る
Tasks
ネクスト
nishio.icon新サブタイトル案を決めるプロセスにコモレビカガミを作ってみて必要な機能を洗い出す nishio.iconレポート画面?
これを作って下記をSNSに投稿する実験
Polisの経験がある人にとってはPolisのあのクラスター表示が脳裏に浮かぶだろうけど、検証すべき仮説は「たくさんの人の反応を引き出すためには素早い反応が必要」「オリジナルのPolisの可視化より、素早い得票数可視化の方がエンゲージメント高まるはず」なのでレポート画面は後回しで良いのではという気もするnishio.icon
レポート画面を作るより、まずJSONで結果を得るAPIを作るか
トップページに解説を置く
今はNext.jsの説明になっちゃってるので
トップページから作成画面への動線がない
っていうかトップページ自体が…
Metaを書く
どこに書くのかな?
トピックのページにOGPがあるといい?
作成はプレビューが欲しいですね…
単なる投票の羅列でない画面デザイン
Google Formみたいに途中にテキストとかセクション区切りがつけられたらいい気がする
ページの最後に「議論をしたければこちらのページへ」みたいにリンクを置けると導線が自然
小説自体をこの画面に書けたらいいのでは
AIが生成したタスク
nishio.iconWebデザインと開発:SNSでシェア可能な投票画面の作成に関わる作業。
nishio.iconAPI開発:システム間の連携を可能にするAPIの設計と開発。
who.iconマーケティングとPR:プロジェクトの露出を増やし、より多くのユーザーに到達するための戦略を立てる。
nishio.iconこのプロジェクトに新しく参加する人のための要約を作って
gpt.icon本プロジェクトでは、Google Cloud SQLのPostgreSQLとFirebase Authを使用して投票システムを作成しています。
投票システムの設計では、各ユーザーが各トピックの各問題に対して複数回投票でき、投票結果は更新可能にしています。
プロジェクトのキーコンポーネント:
Firebase Auth:
ユーザ認証のためにFirebase Authを使用しています。
ユーザの認証情報は、Firebase Authから生成される一意のユーザIDとして管理されます。
Google Cloud SQLのPostgreSQL:
投票データはGoogle Cloud SQLのPostgreSQLデータベースに格納します。
テーブル設計では、トピックID、ユーザID、問題ID、投票内容(1,0,-1のいずれか)、投票時刻の各フィールドを持つ投票テーブルを作成しました。
Next.js:
フロントエンドフレームワークとしてNext.jsを使用しています。
Next.jsのサーバサイドでは、Firebase Authから取得したユーザIDと投票情報を用いて、投票データをデータベースに書き込みます。
開発prompt
ChatGPTと相談しながら作って、日にちが空くと自分もChatGPTも文脈を忘れてる
草基素.icon
まあChatGPTの方に関しては過去ログを発掘して再利用することも可能なのだが…
グダグダになった時とか、仕切り直したい
仕切り直す時に、必要な情報を伝え直す必要がある
この必要な情報をコンパクトにまとめておくと良いのでは
ChatGPTにとって良いだけでなく、新規でプロジェクトに参加する人間にとっても良いのでは
というわけでここに整理していく
code:prompt
We use Vercel, Next.js, TypeScript.
特に"TypeScript"を言わないとJavaScriptで書かれて型エラー(implicit any)になりがち
code:prompt
Firebase Auth and Firestore are already installed and initialized correctly.
Use import { db } from "./client_firebase";
We use Firestore ver.9 library.
これを言わないと毎回セットアップのコードから生成しようとする
ver.9から関数などのインターフェースが大きく変わってる
firebase.collection("topics").doc()は古い書き方、今はdoc(collection(firebase, 'topics'))
これを言わないと古いバージョンのインターフェイスで作ってしまいエラーになる
code:prompt
Firestore path for topic is /topics/<id>.
Topic has type {title:string, description:string, questions:Question[]}
questions are subcollections.
Question has type {index: number, description: string}, index is 0-origin.
Firestoreのスキーマ
生成例
log I want to create utility function to make a topic on client-side. ネーミング
https://scrapbox.io/files/64a3e905d1f0df001ca160f5.png
Komorebi Kagami, a scene where sunlight filtering through tree leaves is reflected in a mirror. Metal mirror. Japanese culture.
Bing Image Creator|1024 × 1024 jpg
銅鏡が森の中にあるイメージだったんだけど全然そうならなかった NextJSのTypeScriptコードからPostgresのテーブルに値を入れるところまでできたnishio.icon
投票UIできた
Firestoreから投稿対象のデータを取る: できた
next: SNSシェア機能の実装が可視化よりも優先度高い
可視化
小説を読んで、質問に答えた後、その内容を把握してるAIと会話したい
リアルタイムのコメント追加は必要ないのではないか
そもそも大部分の人が繰り返し投票をしない
イテラティブにやるなら今回のトピックにコメントを追加するより、次回のトピックに入れた方がいい
Polisの結果を元に3つの異なる人格がテーマについての意見を答えるビュー
これGPT4と話してて「ヤタガラス」の方が良いと思ったnishio.icon