私は現在簿記を勉強しています。
基本的にはテキストを読んで問題演習をするといったことの繰り返しなのですが、「だれかに学習のサポートをしてほしいな」と感じることがありました。
そんな経験から取得した後は、簿記学習のサポートをココナラのようなスキル販売サイトで行いたいと考え、今回その時に使うアプリを想定して開発しました。
参考書の各チャプターを読んでもらい、学んだことをこのアプリにアウトプットしてもらいます。
参考書にはパブロフ流でみんな合格 日商簿記
シリーズ(よせだあつこさん著)を使用します。(理由は自分が使用していたため)
それぞれのアウトプットに対してコメントを通してディスカッションすることができ、その都度修正してもらい、管理者(私)が問題ないと判断したら合格点をもらえます。
(3級は教材が私の手元にないため、現在は2級工業簿記・商業簿記のみ対応としています。)
予定では
- ベーシック: 1週間のお試しコース
- プラス: 1ヶ月980円コース
- プロ: 合格するまでの永久対応の14,980円コース
を考えています。
当初はアプリ自体にStripeやPay.jpなどの外部決済サービスの導入を考えていましたが、(ココナラのような)スキル販売サイト上で取引できること、顧客情報流出のリスクがあることを考慮し、導入しませんでした。
- フロントエンド: Nuxt.js(Vue.js) 2.15.8
- バックエンド: Ruby on Rails 6.1.4.6 APIモード
- デプロイ先: Heroku
- 画像ストレージはAmazon S3を使用
- 独自ドメインは お名前.com にて取得
-
user
ユーザー情報についてのテーブル。
devise-token-authという認証系のGemで追加- name: 名前
- email: メールアドレス
- password, password_confirmation: パスワード
- is_admin: 管理者かどうかの情報。デフォルトはfalse
- level_id: ユーザーがどのレベルの内容に取り組んでいるのかをわかるようにする外部キー
- plan: 契約しているプランを示す。basic, plus, proのどれか。
-
level
学習コンテンツのレベルを示したテーブル。
具体的には、3級簿記、2級工業簿記、2級商業簿記のどれか。- name: コンテンツの名前
-
chapter
levelの中の、チャプターについてのテーブル
levelが2級工業簿記の場合は、「材料費」「労務費」「経費」などが当てはまる。- name: チャプターの名前
- level_id: どのレベルのチャプターなのかを示す外部キー
-
lesson
chapterの中の、レッスンについてのテーブル
levelが2級工業簿記、chapterが材料費の場合、「直接材料費と間接材料費」「材料の消費単価」「棚卸減耗費」などが当てはまる。- name: レッスンの名前
- level_id: どのレベルか示す
- chapter_id: どのチャプターか示す
-
output
それぞれのlessonに対してのアウトプットを保存するテーブル- post: アウトプットの本文。html形式で保存
- user_id: 投稿したユーザーを示す
- lesson_id: どのレッスンに対してのアウトプットかを示す
- be_finished: デフォルトはfalse。合格したら管理者がtrueにする
-
comment
アウトプットに対してのコメントを保存するテーブル- body: コメントの内容
- user_id: コメントを投稿したユーザーを示す
- output_id: どのoutputか