歯医者webサイト(app015_clinic_booking)

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

歯医者のwebサイト

プロジェクト概要

Railsで構築した歯科医院向けの予約サイト。

患者がWebフォームから診療内容を選んで予約でき、医院側は予約枠を管理できる。


背景と課題

  • 医療機関の予約システムを題材に選び、実務的なCRUDを超えた「予約管理」の流れを学ぶことが目的。
  • 特に「既存予約を除いた空き枠を自動表示する仕組み」を作ってみたかった。

目標・成功条件

  • ユーザーが簡単に予約できること。
  • 重複予約を防止し、空き枠を自動抽出できること。
  • 予約確認メールを送信できること。

実装の工夫

  • Reservation.open_slots_for(date) で空き枠を抽出。
  • ダミーデータは Faker を使って予約を自動生成し、テスト。
  • メニューは「初診」「再診」「クリーニング」「矯正相談」から選択。
  • 予約完了後は letter_opener で確認メールをシミュレーション。

ハマりポイントと解決

  • 重複予約エラー:ActiveRecord::RecordNotUnique
    → モデルのバリデーションを調整し、同じ日時の予約を制限。
  • seedが反映されない問題:
    → rails db:seed 実行後の処理を確認し、正常にダミーデータが投入されるよう修正。
  • 予約削除:開発中に rails c を使って Reservation.destroy_all で全削除。

予約希望日を入力しても、時間を選択できない

# エラー
Uncaught TypeError: Failed to resolve module specifier "@hotwired/turbo-rails". 
Relative references must start with either "/", "./", or "../".

ブラウザが importmap で @hotwired/turbo-rails を使えない

→「turbo-rails」の入れ忘れ

gem "turbo-rails"
bundle install
bin/rails turbo:install

before

after


学びと次の一手

  • 実務でありがちな「予約重複」「メール送信」「ダミーデータ投入」などを実際に体験できた。
  • カレンダーUI(予約状況の可視化)を改善したい
  • 患者のマイページ(予約確認・変更)を作成したい
  • 管理者用ダッシュボードを作成したい