【個人開発】管理栄養士国家試験対策サービスを開発しました

# はじめに
初めまして、[よしき](https://x.com/eiyou_quiz)と申します。
今回、管理栄養士国家試験対策サービス「栄養士マスタークイズ(eiyoushi-master-quiz)」を開発しました。
初めての記事執筆なので拙い点も多いかと思いますが、その点何卒ご了承ください。

もしよろしければ最後までご覧ください！

# サービス名 : 栄養士マスタークイズ

▼ サービスURL
https://eiyoushi-master-quiz-1d4150fdbd38.herokuapp.com/


▼ Githubリポジトリ
https://github.com/Urubu495/eiyoushi-master-quiz

## サービス概要
このサービスは管理栄養士国家試験の対策をサポートする学習支援アプリです。
過去の試験問題を利用してユーザーに出題し、試験対策のための学習をサポートします。

### サービスを作成した背景
このサービスを作った理由は、私が管理栄養士国家試験の試験勉強をしていた頃、勉強する際には基本的に参考書(主に過去問集)を利用して勉強していたのですが、電車の移動中などのちょっとしたスキマ時間に分厚い本を開いて、勉強するというのが、少し大変だと感じたためです。

なので、忙しい日々の中でも、シンプルな操作で手軽に、かつ効率的な学習ができるサービスを開発して、学習に取り組むことへの障壁を低減させ、より多くの人が主体的に目標達成のために学ぶことができるように、このサービスを作成しました。

# サービス紹介
**1. 問題出題機能**
| 問題設定ページ | 問題出題ページ |　続きから出題ページ　|
|:-:|:-:|:-:|
| <img width="550" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/c46e128b-09ab-6f76-415c-d0b5abb2f28a.png"> | <img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/1de8cc6a-a5b9-fe98-7a5a-52e0a56b091c.png"> | <img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/e72d2500-3165-a2fc-3b33-5b99472a591d.png">|
| 問題の出題数や分野などを自分の好みに合わせて設定ができます。  | 問題設定ページで設定された問題集がこのページに出題されていきます。 | 作成した問題集をすべて解き終える前に中断した場合、このページから問題集を途中から再開することができます。 |

**2. 問題保存機能**
| 保存問題ページ |
|:-:|
 <img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/919eabc9-66f2-6f88-0fbd-1a4c81ee92dd.png">, <img width="215" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/6f2c0858-1fc0-7235-178e-157be5cf66cd.png"> |
| 問題出題ページにある「この問題を保存するボタン」を押すと保存問題ページにその問題が保存される。この機能を利用することで苦手な問題などを後からいつでも復習することができます。|

**3. 回答履歴、正答率確認機能**
| 回答履歴ページ | 正答率確認ページ |
|:-:|:-:|
| <img width="215" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/00406c66-1a1e-988c-3210-6c1c8bd160f5.png">  | <img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/48b5240e-a0f9-ef7c-0905-6814aa7633cc.png">  |
| 回答した問題の履歴を確認できます。  |  回答履歴を元に分野別の正答率などを確認できます。 |

**4. 問題一覧機能**
| 問題一覧ページ |
|:-:|
 <img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/91d20bfd-2082-6e96-9769-978448ca8478.png">, <img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/d737b73a-e37d-8c12-0e68-bc7697417012.png"> |
| 年度別の過去問の一覧(第37回以外の問題は今後追加予定)を確認できます|

# 工夫した点
他の過去問出題アプリでは問題に解説文がついているのですが、このアプリでは解説文まで入れてしまうと開発に時間がかかり過ぎてしまうため、入れませんでした。
なので、どうすれば他の解説がついている過去問出題アプリではなく、自分の開発したアプリを使ってもらえるのかと考えた結果、このアプリでは使いやすさや手軽さを重要視して作りました。

具体的には、以下の機能を実装しました：
| **1. 問題保存機能** |
|:-:|
今は時間がないけど後でじっくり復習したいと思ったような問題を保存することができるようにしました。これにより、ユーザーは自分のペースで学習を進められるようになります。
![保存問題GIF.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/308f87db-6268-f6fc-b87c-d664d9cd7b64.gif)

| **2. 問題の再会機能** |
|:-:|
作成した問題集をすべて解き終える前に中断した場合でも、問題集を途中から再開できるようにしました。忙しい日々の中のちょっとしたスキマ時間でも学習ができるようにし、学習継続のための障壁を低減させることを目指しました。
![問題再開GIF.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/df6d1879-2497-6eea-d797-be20f48a8f5a.gif)


| **3. 出題傾向の高い問題の出題機能** |
|:-:|
実際の試験で重要視されるトピックや問題に焦点を当て、効果的な学習を可能にしました。これにより、限られた時間の中で効率的な学習ができるように作成しました
(出題傾向の数値は問題の分野を細かく分けた時、過去5年間の試験でその分野の問題が何回出題されたかを基準に決まっており、数値が高いほど試験で出題される可能性が高い問題となっています)
![出題傾向GIF.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/fb628c8a-dd4c-5874-0f6e-bbf8af1320d0.gif)

| **4. UIを意識したレスポンシブ対応** |
|:-:|
ユーザーがPCやスマートフォンなどのどんなデバイスからでも快適に使えるよう、作成しました
![レスポンシブ対応GIF.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701298/a953d39d-7cfb-90b9-b536-d2854f219732.gif)

これらの機能は合わせて、学習者が限られた時間の中で大きなの成果を出せるように設計しており、他のアプリと比較して明確な差別化ポイントとなっています。

# 使用している技術

| カテゴリ | 技術 |
| --- | --- |
| フロントエンド | Hotwire /bootstrap / bootstrap Icons /esbuild /SCSS |
| バックエンド | Ruby 3.2.2 / Rails 7.0.8.1 |
| データベース | PostgreSQL |
| 認証 | Sorcery |
| 環境構築 | Docker / docker-compose |
| インフラ | heroku |
| API | sendgrid-ruby |

# おわりに
初めての、0からテーブル設計などを考えての個人開発でしたので、わからないことばかりで大変ではありましたが、思い描いたものを形にすることができてとても楽しかったです！
まだまだ至らない点ばかりですが、今回の経験を糧に今後も楽しみながら学んでいきたいです。
最後まで読んでいただきありがとうございました。