TheHackチーム開発第2回 チーム3
何を作ったか?
エンジニア向けの学習管理ツールを作りました。
発案者 N氏
条件
Next.js でフロントを実装
Ruby on Rails をAPIとして利用する
RSpecを用いたテストを書く
Asanaを利用したプロジェクト管理
ログインがあり、ログインした人のみが投稿できる(何を投稿するサイトかはチームで考えてください!)
/my-profile のパスで自分の情報が見れる
開発環境について
6人の開発環境を揃えるためにdockerを採用しました。
フロントエンドにNodeコンテナ
バックエンドにRails
データベースにはPostgresqlを採用しました。
仕様について
フロントエンド Next.js
Node: 18.13.0
NextJs: 13.1.1
React: 18.2.0
TypeScript: 4.9.4
CSSはTailwindを利用
バックエンド Ruby on Rails
Ruby: 3.2.0
Rails: 7.0.x
PostgreSQL: 13.8
使用したライブラリ
Rails
RidgePole: schemaを単一のSchemaファイルで一括管理する
Jbuilder: view ファイルとしてJSON形式のデータを簡単に形成できる
dot-env: .env ファイルを環境変数として扱える
RuboCop: Rubyのコードを静的解析する
rails-erd: Rails のモデルからER図を生成する
RSpec: Rails のテストライブラリ
Next.js
Orval: OpenAPI 定義ファイルからコードを自動生成するツール
date-fns: 日付処理を簡単に行う
jotai: 軽量な状態管理ライブラリ
js-cookie: クッキー操作を簡単に行うライブラリ
lodash: 配列処理を簡単に行うライブラリ
react-icons: コンポーネントとして各種アイコンを扱える
react-tabs: タブコンポーネントを簡単に生成する
tailwind: CSSライブラリ
tslint: TypeScript の静的コード解析
pritter: コード整形ツール
サイトデザインについて
発案者N氏のデザインを採用し、
イメージを共有するため、Figmaを利用し、画面共有しながら皆でイメージを膨らませました。
(折角デザインして頂きましたが、開発期間の都合で機能を削る事となりました。)
タスク管理について
Asanaでプロジェクト管理
Asanaの経験者が少なかったのもあり、やっすんさんに使い方を教えて頂きました。
週毎にやることを設定する事で、残タスクが視覚的に把握できました。
API 設計について
OpenAPI・SwaggerでRESTful APIの管理をしました。
TheHackについて
YouTubeチャンネル「やっすんのエンジニア大学」で募集・活動しているエンジニアの為のコミュニティオンラインサロンです。
やっすんのエンジニア大学
YouTubeのvideoIDが不正ですやっすんのオンラインサロン The HACKの活動を紹介します!
NextjsとRailsを使ってUGCアプリを作ってみませんか? The HACK チーム開発第二弾!
まとめ
開発期間の都合上、機能を削る事となってしまいました。
プルリクエストのレビュー・取り込み方
・48時間で誰かが取り込むルール
・それゆえ、レビューがあまり出来なかった
F氏
Rails も React も多少経験はあったものの、他の方のプルリクを確認することで知見がたくさん増えた。プルリクの運用ルールなどをもう少し明確に決めておくと、さらに早く進められるかも、と感じた。
Discussion