Closed32

【2023未踏福岡】プロダクトの進捗スクラップ

手羽先手羽先

これは何?

  • 筆者が2023の未踏福岡に採択されたので、進捗を公開していくスクラップです

なぜスクラップ?

  • 管理しやすい
    • 後から編集可能
    • Twitterに比べて分野ごとに内容をまとめられる

なぜ公開する?

  • 未踏福岡、未踏ジュニア、未踏関連の方に参考になるかもしれない
    • もちろん、それ以外の開発者にとっても
  • 自分の開発の速さやいつに何をしたのか記録しておきたい
  • 不特定多数の人に見られているという自覚を持つことで自分に鞭を打つため
手羽先手羽先

スクラップの問題点

  • 2023/07/30(三日目)にして気づいたことだが、投稿日時が表示されない模様。
    • 編集をした日時が表示されるので、間違えて編集してしまったら記録が見えなくなって大変
    • バックエンドでデータとして持っているかどうかは謎
手羽先手羽先

重要:スクラップだと日付が表示されないので、Twitterに移行します

  • 開発期間が8月から始まるので、そこからTwitterに移行しはじめます。開発期間が始まるまではスクラップを使っていきます。
手羽先手羽先

認証系の作成

  • NextAuthを使った認証
    • Next13からのApp Directoryを使ったので、_app.jsの書き方ができなくて困った
      • 最終的にnextauthのmiddlewareを頼った方が良いと判断
      • もしくは、server component, server側の処理で認証を判断した方がマシかもしれない
        • テスト段階なのでCSRで簡易的に実装した
  • Prismaも使ってユーザー管理

フロントの作成

  • Headerの作成
    • アバターをGoogleアカウントやGitHubと同期するようにしてみた
    • アバターを押すとdropdownを表示するようにしてみた
      • ログインしているユーザー名を出す等
      • ログアウトも実装
手羽先手羽先

UIの作成

  • Header, Dashboard, コース一覧, ログイン画面の作成
    • Headerのバグ修正
    • Dashboardからはアナリティクスも見れるようにしたい
      • コース一覧からさらに詳細画面を作れるようにする
      • dynamic route?
    • ログイン画面
      • GoogleとGithubでログインできるようにしている
        • メインがGoogleで、サブでGitHubを選択できるように
        • ログアウトはアバターのDropDownのログアウトボタンからできるように




手羽先手羽先

設定画面の作成

  • 設定画面の作成
    • 必要な設定のみ
  • なぜかshadcnのtoastが動作しない
    • バグなのかわからない
    • 優先順位は低いが、違う環境でも試してみて、再現をしてみる
手羽先手羽先

コース

  • テストでタグをつけてみた
    • 今後、検索機能でコンテンツを検索できるようにする
  • UIについて
    • UIはいくらでも後から簡単に変更できるので、未踏福岡期間は最低限のUIにする。
      • ダークモード切り替えなどは時間がかかる割にはreturnが少ないのでしないつもり
      • その他最低限のUIのみ準備
手羽先手羽先

コースのUI

  • 分裂したコースとは別に、コンテンツをまとめたコースを紹介するCardを作成
    • デザインは酷いが、後でいくらでも変えれるので、ひとまずイメージとしてこんな感じにしておく
手羽先手羽先

外部サーバーにデプロイ

  • Netlifyでやってみたがなぜか500エラーでアクセスできず
    • 色々調べたがログも取得できないので諦め

  • Vercelでデプロイしてみた
    • 成功!無事にデプロイすることが出来た
    • ログイン機能がうまく動かなかったが、oauthのurlの設定とDBの設定をしていないからだと予想。
      • まだログイン機能はそこまで必要ではないので後々着手することにする
手羽先手羽先

コース画面の制作

  • 細かい各コンテンツをまとめて、roadmapのようにする予定のコース画面の制作
    • gridを使ってみた

  • そして、今気づいたけど、Zennのスクラップって投稿日時が分からないのか…更新日時はわかるが、もし間違えて更新したら大変
    • githubでコンテンツ管理した方が良いのかもしれない
      • ただ、画像や文字などの差分が全て公開されるのは困る
手羽先手羽先

コースのコンテンツを追加


  • 雑だが、イメージとして追加してみた
    • 一応入門コースなので、もっと減らしてもいいかも。
      • 中級、上級とかは入門コースを終わらせてから、とか。
手羽先手羽先

  • それっぽい感じに目次とコースの説明のCardを作ることが出来た。
手羽先手羽先

エディタ画面の作成

  • 他に作る部分と言えばやっぱりエディタ部分なので、取り組んでみる
    • gridを使ってみたが、動的に変更するには何が良いのだろう?
手羽先手羽先

Three.jsの導入

  • 何気に初めてThree.jsをNextで動かすので、調べながらやってみる

React環境での違い

  • 調べて行くと、ReactでThree.jsを使う際に、react-three-fiberというものがあるらしい。
    • どうやら、ThreejsのコードをReactのcomponent風にかけるというもの
      • めちゃくちゃ便利そう
      • ただ、今回のプロジェクトはReact環境以外でも動いて欲しいので、悩みどころ。

https://qiita.com/naberyo34/items/181f817ddd38c74dbc76
https://zenn.dev/hironorioka28/articles/5674b57278effd

手羽先手羽先

  • 適当に書いたら動いた
  • 画面サイズとReactの部分を削る作業が必要そう
手羽先手羽先

なんとかサンプルも動かせたが、なぜかクリックしてもドラッグできない問題が発生。ちょっと調べる。

手羽先手羽先

バグの原因

  • canvasの外のpaddingを消したら動くようになった。
  • 全画面じゃないと対応してない?
このスクラップは2023/08/02にクローズされました