けいそです。ゲームと読書とVtuberと漫画とアニメが好きです。
メモ的に、進捗を記録するノートです。ひと段落したら、きれいに清書するつもりです。
何やるの?
自分のYoutube,Chromeなどの、Googleに保存されてるデータを可視化して、どのくらい自分が使ってるのか、最近は何にはまってるのかとかを分析するサイトを作りたい。
どうやるの?
チャットGPTというAIを使います。計画からリリースまでのロードマップと具体的な進め方を聞きます。
そのアドバイスに従って進めます。わからないことが多いので聞きまくります。
アプリケーションの概要。
開発環境
ロードマップ
概念化:
アプリのスコープと要件を定義します。
ユーザーインターフェースとユーザーエクスペリエンスをスケッチします。
開発環境のセットアップ:
Node.js、MongoDB、Visual Studio Codeをインストールします。
バージョン管理のためにGitHubリポジトリをセットアップします。
設計と計画:
ワイヤフレームを作成し、データベーススキーマを設計します。
アプリのアーキテクチャとデータフローを計画します。
MVP(Minimum Viable Product)の開発:
Node.jsでバックエンド開発を開始します。
認証のためにPassport.jsを使用したOAuthの実装を行います。
Reactで基本的なフロントエンドコンポーネントを作成します。
データ可視化の統合:
D3.jsを使用してインポートされたデータを可視化します。
テスト:
フロントエンドとバックエンドの両方にテストを記述します。
ユーザーテストを実施してUX/UIのフィードバックを収集します。
コンテナ化:
アプリケーションをDockerにコンテナ化して、異なる環境間での一貫性を確保します。
継続的インテグレーションとデプロイメント:
CI/CDパイプラインのためにGitHub Actionsをセットアップします。
フィードバックに基づく繰り返し:
ユーザーフィードバックに基づいて機能とUIを改良します。
立ち上げの準備:
パフォーマンスとセキュリティを最適化します。
マーケティング資料とドキュメンテーションを準備します。
リリース:
選択したクラウドサービスにデプロイします。
アプリのパフォーマンスをモニターし、即座に問題を修正します。
リリース後:
未来の改善のためにユーザーフィードバックを収集します。
新機能とパッチを定期的にアプリに更新します。
コンセプト設計
ウェブアプリケーションを概念化する際に、特に個人データを可視化するアプリケーションの場合、以下のステップを実行することが重要です。
コアの機能の特定: アプリが提供する主要な機能を決定します。このアプリでは、データのインポート、認証、データの可視化、およびユーザー設定などが含まれるかもしれません。
ユーザーフローの決定: ユーザーがアプリ内をどのように移動するかをマップ化し、ログインからデータの表示までを考えます。
コンプライアンス要件の調査: GDPRなどのデータ処理に関する法的要件を理解し、それらにどのように対処するかを計画します。
データ仕様の決定: ユーザーがインポートおよび可視化できるデータの種類を決定します。
初期設計のスケッチ: アプリケーションのインターフェースのラフなワイヤフレームやモックアップを作成します。
ユーザーストーリー: エンドユーザーの視点から特定の機能を捉えるためにユーザーストーリーを書きます。
ツールと技術の選択: 開発に使用する適切な技術とAPIを選択します。
実現可能性の分析: プロジェクトの技術的および実用的な実現可能性を評価します。
セキュリティの計画: ユーザーデータのセキュアな取り扱いを最初から計画します。
プロジェクトのタイムライン: マイルストーンと締め切りを含む開発のためのタイムラインを作成します。
この概念化フェーズは、アプリケーションの基盤を築き、スムーズな開発プロセスを確保するために重要です。
このプロセスは、よくわからなかったので飛ばしました。ひとつずつ細かく聞いて決めていったら時間がかかりそうだし、もっと時間を使うべきことがある気がしたので。
「実際に作り始めたいけど何したらいい?」と聞いて、次のステップに無理やり移行。
実際にWEBアプリを作ってみよう!
私はこんなもの作った経験はありません。プログラミングはC言語の基礎と、Pythonで少し遊べるくらい。HTMLとCSSも基本を知ってるくらいです。
わからないことは何から何まできいていきます。
今回の目標は動くものを作るだけじゃなくて、教わりながら作る過程を通して、作り方の勉強をすることです。