【卒業制作】MVPリリース時点での実装内容まとめ①(技術スタック/実装機能編)
はじめに
現在通っているスクールの卒業制作として、技術記事を投稿できるアプリを作成しています。
MVPリリースが完了したため、自分のまとめ用に記事を作成しました。
MVP時点で実装した機能一覧、技術スタック、実装をまとめた記事、GitHubのissueを載せましたので、ご参考になれば幸いです。
なぜ技術記事を投稿できるアプリを作成したのか?
昨日の投稿でも少し触れましたが、初学者の私にとって、QiitaやZennなどの技術サイトでいきなり投稿することが難しかったことが理由の一つに挙げられます。他にも理由はありますが、ここでは割愛させていただきます。
どのような機能をMVPリリース時点で実装したのか?
MVP(Minimum Viable Product)では、考えた機能からサービスが成立する限界まで、機能を削ぎ落としたものをリリースすることということで、スクールの講師の方々のご意見、カリキュラム記載内容を参考に今回の内容で実装しました。
現時点では、他技術記事サイトとの差別化要因が、「いいね機能が複数あること」くらいしかありませんが、
本リリースでは他技術記事サイトと差別化でき、かつ技術記事を投稿するハードルを下げたアプリを開発に取り組んでいます。
取り組んでよかった点
MVPリリース前に、アプリの講評をいただけたこと
本来MVPリリース時点でアプリ内容を公開すると思いますが、タイミングよくスクール内のアプリ開発イベントがあり、そこへこのアプリのミニ版を提出しました。
講師の方やスクールの方々からMVPリリース前に講評をいただけたことで、本リリースへ回そうと思っていた機能(プレビュー機能など)を、MVPリリースへ変更する対応を取りました。
開発では一人よがりになってしまいがちだったので、ユーザーの声を取り入れ、声の多かったものや不具合に対しては早急に対応できよかったです。
卒業制作が、初めてのアプリ開発ではなかったこと
今回の卒業制作前に、ミニアプリ開発を1度行っていました。
そのため、rails newからデプロイまで、ある程度理解できている状態であり、エラーが起きても対処できました。
技術検証を行った点
今回のMVPリリース時点での機能は、本当に基本的なもの(スクールのカリキュラムの内容と似ているもの)が多かいです...。(これを卒業制作と読んでいいのか、一抹の不安はあります...)
ただマークダウン記法のgem選定、プレビュー機能に関しては、テスト用リポジトリで技術検証を行ってから実装しました。
スクール内のアプリ開発イベントの際には、技術検証を行わず提出してしまい不具合が多発したため、今回の卒業制作では技術検証を行った形になります。
今後の展望
本リリースでは、「ユーザーが記事を書きやすい環境、記事を書くことを継続できる環境を整える」ことを目標に、
チャットボット機能(記事を書く前/書いている最中/書き終えた後)、バッジ機能、通知機能を実装予定になります。
またMVPリリース時点では、UIに全くこだわっていないのである程度の機能を実装でき次第、UIを整えていきたいと思っています。
また昨日の記事にも書いた通り「第三者からの評価・好評」が、記事継続のモチベーションにもつながると感じたので、閲覧数の表示等も時間の許す限り、本リリースまでに実装できたら...と思っています。
MVPリリース時点での使用技術スタック
カテゴリー | 使用技術 |
---|---|
フロントエンド | Rails 7.1.3.4, @hotwired/turbo-rails": "^8.0.4", TailwindCSS, DaisyUI, JavaScript |
バックエンド | Rails 7.1.3.4 (Ruby 3.2.2 ) |
インフラ | Render.com |
DB | PostgreSQL |
開発環境 | Docker |
MVPリリース時点で実装した機能
機能 | 詳細 | 実装方法 | 備考 |
---|---|---|---|
認証 | |||
ユーザー新規登録 | issue #3 | sorceryを参照し実装 | |
ログイン機能 |
issue #6 issue #103 |
sorceryを参照し実装 | |
ログアウト機能 | issue #7 | sorceryを参照し実装 | |
パスワードリセット機能 |
パスワードリセットメール実装記事(本番環境) issue #23 |
sorceryを参照し実装 | |
投稿 | |||
記事投稿機能 | issue #9 | ||
下書き保存機能 |
issue #16 issue #80 issue #81 |
参照記事①参照記事② | |
プレビュー機能 |
実装記事 issue #17 |
||
検索機能 | issue #18 | Ransack4.0.0以上の注意点をまとめた記事 | |
ソート機能 | issue #20 | 参照記事①参照記事② | |
マークダウン機能 |
isseu #10 issue #54 |
||
Xシェア機能 | issue #31 | 参照記事 | |
複数のいいねボタン(非同期) |
実装記事① 実装記事② |
||
コメント | |||
コメント投稿機能(非同期) |
issue #21 issue #60 |
||
コメント編集機能(非同期) |
issue #58 issue #90 issue #117 issue #141 |
コメント編集挙動修正した実装記事 | |
コメント削除機能(非同期) |
issue #58 issue #92 |
||
マイページ | |||
プロフィール編集 | issue #24 | ||
投稿済、下書記事の閲覧 | 実装記事 | ||
いいね済の記事閲覧 | issue #26 |
最後に
明日以降は、gem選定理由等の記事を書いていきたいと思っています。
ありがとうございました。
Discussion