小規模ヘアサロン向け予約サイト
- STAFF NAME :
test
- EMAIL :
test@test.com
- PASSWORD :
test1234
※現在調整中です。
# git clone
% git clone https://github.com/taiga-tech/ReservationApp.git
% cd ReservationApp
# docker build
% docker-compose build
% docker-compose run --rm app yarn install
% docker-compose up -d
# 初期設定
% docker-compose run --rm app rails db:create
% docker-compose run --rm rails db:migrate
% docker-compose run --rm rails db:seed
language | version |
---|---|
Ruby | 2.6.5 |
Ruby on Rails | 6.0.3.3 |
MySQL | 5.6.47 |
jQuery | 4.4.0 |
Docker DeskTop | 3.0.1 |
Docker Engine | 20.10.0 |
docker-compose | 1.27.4 |
CircleCI | 2.1 |
-
ユーザー画面
- 美容室の予約
-
店舗管理画面
- Staff登録 (Devise)
- 予約一覧
- 店舗情報編集
- スタイリスト追加、編集
- 消費税、割引率編集
- メニュー追加、編集
- プロモーション画像切り替え
少数オペレーションのヘアサロンをターゲットに予約サイトを作成しました。
理由は少数オペレーションだと電話対応が困難になり、作業中のお客様を待たせてしまうと考えたためです。
知人のヘアサロン経営者から、スマートフォンのブラウザから予約をしてもらうのはすごく大変で、
店舗のSNSと予約が合体したモバイルアプリがあるとスマートフォンに慣れていないお客様でもインストールさえすれば電話予約が少なくなるという話を聞いてヒントにしました。
現状モバイルアプリへの実装はWebView
のみでの実装はできているのですが、より高いユーザビリティを求めているため、Swiftでの実装を考えております。
- 管理画面へのアクセス方法を少し困難にしました。
- Trelloを意識したUIにこだわり、タスクの管理のしやすいような実装を意識しました。
現状、縦方向のソートしかできないため、スタイリスト間の移動ができるよう改善予定です。
- 予約フォームで希望ヘアスタイルの画像を添付することにより、カウンセリング時間の短縮ができます。
- モバイルアプリ化
- レスポンシブ化
- 予約時にメニューの複数選択
- 予約一覧で日時順にする
- 予約キャンセル、終了タスクの棲み分け
- 店舗情報の住所を変更するとトップページ下部のマップを変更する(Google API)
- 管理画面へのアクセスのセキュリティ強化
CircleCi導入- CircleCi設定
Column | Type | Options |
---|---|---|
name | string | null: false |
string | null: false | |
tel | string | null: false |
date | string | null: false |
time | string | null: false |
request | string | |
image | string | |
menu_id | references | foreign_key: true |
stylist_id | references | foreign_key: true |
- belongs_to :menu
- belongs_to :stylist
Column | Type | Options |
---|---|---|
name | string | null: false |
position | string | null: false |
comment | text | |
image | stirng |
- has_many :reservations
Column | Type | Options |
---|---|---|
name | string | null: false |
parice | integer | null: false |
comment | text |
- has_many :reservations
- has_many :menu_categories
- has_many :categories, through: :menu_categories
Column | Type | Options |
---|---|---|
menu_id | references | foreign_key: true |
category_id | references | foreign_key: true |
- belongs_to :menu
- belongs_to :category
Column | Type | Options |
---|---|---|
name | string | null: false |
- has_many :menu_categories
- has_many :menus, through: :menu_categories
Column | Type | Options |
---|---|---|
name | string | null: false |
string | null: false, unique: true | |
password | string | null: false |
Column | Type | Options |
---|---|---|
code | string | null: false |
address | string | null: false |
tel | string | null: false |
weekday | string | null: false |
weekend | string | null: false |
holiday | string | null: false |
Column | Type | Options |
---|---|---|
image | string | null: false |
Column | Type | Options |
---|---|---|
tax | float | null: false |
discount | float | null: false |