以下は開発者のGitHubページのREADMEにも記載してあります。
GitHub: https://github.com/yoshida1126/articles_app
このアプリは、技術記事を投稿・共有するための Web サービス(ポートフォリオサイト)です。
記事作成では、差分ビュー・リアルタイムプレビュー・オートセーブ・不要画像の自動削除など、 執筆体験をスムーズにするための機能を多数実装しています。
一方で、記事の投稿やコメント、いいね、フォローに加えて、 ユーザー同士が「どんな記事を保存しているか」を共有し合えるお気に入りリスト機能を実装。
さらに、他ユーザーが作成したリストをブックマークできるなど、 学びが人を通じて広がる“コミュニティ性”も大切にしています。
記事を書く体験と、技術のつながりが自然に生まれる体験の両方を提供する、 「書きやすさ」と「交流」を両立した技術記事プラットフォームを目指して開発しました。
レスポンシブ対応しているのでスマホからでもご覧いただけます。
画像ファイルの管理における工夫
Fat Controller を避けるための設計
テストのしやすさを意識した設計(DIの導入)
Proc
を引数として受け取る形にし、依存性注入(DI)を導入
。

使用させて頂いたアイコンの各種リンク
CircleCI: https://icons8.com/icon/ep4D1m8k13qZ/circleci
Cloudflare: https://lobehub.com/ja/icons/cloudflare
Docker: https://www.docker.com/ja-jp/company/newsroom/media-resources/
GitHub: https://icons8.com/icon/12599/github
Nginx: https://icons8.com/icon/LhQ8M0RI4YLP/nginx
Ruby on Rails: https://icons8.com/icon/12eMo7h5rCTp/ruby-on-rails

お気に入り記事のリスト機能
他のユーザーが作成したリストのブックマーク機能
ユーザー登録・ログイン機能(devise)
投稿機能
画像投稿機能
signed_id を抽出し、未使用画像を自動判別して削除。いいね機能
検索機能(ransack)
Ransack を使用しています。ハッシュタグ機能(acts-as-taggable-on)
アクセス制限・スパム対策
Redis を利用し、以下のようなスパム・イタズラ防止のためのアクセス制限機能を実装しています。
使用ツール
実施しているテストの種類
Proc を用いた 依存性注入(DI) を行い、テスト時にはモックを使用することで外部依存を排除。柔軟性・保守性・テスト容易性の向上を意識しています。