Giter Site home page Giter Site logo

shinsuke-abe / recordiet Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.35 MB

レコーディングダイエットをサポートする為のウェブアプリ。もっぱらRuby on Railsの勉強用です。

Ruby 97.99% CoffeeScript 1.60% JavaScript 0.41%

recordiet's Introduction

Recordietについて

レコーディングダイエットをサポートする為のWebアプリです。作者がRuby on Railsの勉強のために作りました。以下の機能があります。

  • 体重履歴の管理

  • 目標管理

  • 食事履歴の管理

最新の実装状態はIssuesを確認してください。作者の「ああしたい」や「こうしたい」がつまっています。

使い方

Herokuにデプロイしているのでご自由にお使いください。※無料枠なんでDB容量に限界が来たらごめんなさい。。。

recordiet.heroku.com

ソースをダウンロードしてどこか別のところで動かすのもありです。

つっこみについて

Ruby始めて1カ月くらいのソースなので「Rubyっぽくない」「Railsっぽくない」所が見受けられるかと思います。ソースを読んでそういうところが見つかったら、後学のためにつっこみを入れてくれると作者が喜びます。

recordiet's People

Contributors

shinsuke-abe avatar

Watchers

 avatar

recordiet's Issues

アクセス制御をかける

ログインフォームと新規登録フォーム以外は未ログインでアクセスできないようにする

目標を修正する

1.目標が存在するユーザで編集フォームから目標を修正する
2.修正が終了するとユーザ履歴画面に遷移する
3.目標の数値と目標までの数値が更新される

目標とご褒美を設定する

1.ログイン済のユーザ履歴画面から目標設定フォームを開く
2.目標体重と期限、達成時のご褒美を入力する
3.ユーザ履歴画面に目標体重と期限、「後?キロ」「後?日」が表示される

目標モデルを作成する。
体重の未入力は不可。期限、ご褒美の未入力はOK。
期限は未来の日付でなければならない。

ログアウトする

1.ログインする
2.ログアウトリンクを押下する
3.セッションがクリアされ、/loginが表示される。
4.ログインが必要な機能にアクセスすると/loginにリダイレクトされる

flash[:notice]とflash[:alert]を使い分ける

現状、アプリケーションから発信しているメッセージは何でもかんでも:noticeに突っ込んでる。
必要な物はalertにするのと、入力フォームのチェックはActiveRecordに任せるので不要とする。

目標を削除する

1.ログイン状態から目標を削除する
2.削除完了したら削除前のフォームを表示する
3.目標未設定の状態になっている

食事内容を変更する

1.ログイン後に食事内容一覧を表示する
2.変更したい食事内容を選択して編集フォームを表示する
3.編集後、食事内容一覧にもどる

編集時にエラーが発生した場合は編集フォームを再表示する

体重の変更で体重の未入力エラー

1.ログイン済の状態で変更する履歴を選択する
2.変更フォームで体重を空白にして保存する
3.「記録の登録には計測日と体重が必要です。」が表示される。

目標のルーティングを再考する

railsでは単一リソースのネストは使う想定になっていない可能性がある。
目標は単一リソースだが、ログインしているユーザがいる前提。
/user/milestoneでパスを生成したいが、ヘルパメソッドのフックなど色々必要。

resource :user
resource :milestone

にすべきか?

食事内容を表示する

1.体重履歴一覧から表示したい日付の食事内容を選択する
2.指定された一覧が表示される

ユーザ情報を変更する

1.ログイン状態でユーザ変更リンクをクリックする。
2.ユーザ情報を変更する。
3.ログオフする。
4.変更後情報でログインできる。

目標の達成履歴を表示する

1.ユーザメイン画面から達成履歴表示リンクを押下する
2.達成履歴リストを表示する
3.登録されている数だけ達成履歴が表示される

Readmeの修正

アプリのエレベータピッチと要求される機能一覧を書く。

食事内容を削除する

1.ログインして食事内容一覧に遷移する
2.削除したい食事内容を選んで削除ボタンをクリック
3.食事内容一覧が再表示される

戻るボタンを追加する

体重履歴の編集からメイン画面
目標新規追加からメイン画面
目標修正からメイン画面
目標達成履歴からメイン画面

体重履歴を変更する

1.ログインユーザの履歴から変更したい履歴を選択する。
2.ログイン変更フォームから変更内容を入力する。
3.変更ボタンを押下するとログインユーザの履歴に遷移する。

未ログインユーザにアクセス制限をかける

未ログイン状態で許可するフォームは以下の通り。

・ログイン
・認証
・ユーザ登録入力
・ユーザ登録実行

それ以外のフォームに未ログイン時にアクセスすると、ログインフォームにリダイレクトされる。

1.ログインフィルタを作成
2.logins_controller.show, create, users_controller.new, create以外のコントローラにフィルタを設定

ユーザ登録が成功する

1.未ログイン状態で/user/newを表示する。
2.未登録のメールアドレス、表示名、パスワードを入力する。
3.登録後/userにリダイレクトされ、履歴未登録のメッセージが表示される。

食事内容を登録する

1.体重履歴から履歴登録ボタンを押下して食事登録フォームを表示する
2.食事の内容と種類(プルダウンで「朝食」「昼食」「夕食」「間食」「その他」を選択)を入力する
※食事内容が未入力の場合はエラー
3.内容が登録され体重履歴ページにリダイレクトされる

食事内容モデルを作成する。

体重履歴を削除する

1.ログイン済のユーザで一覧から削除する。
2.履歴画面にリダイレクトされる。

情報未入力:ユーザ登録が失敗する

1.ユーザ登録フォームを表示する。
2.メールアドレス、表示名、パスワードが未入力の状態で登録する。
3.「ユーザ情報を入力して下さい。」というメッセージが表示され、/user/newが再表示される。

退会する

1.ログイン状態で退会ボタンを押す。
2.ユーザの情報が削除され、/loginを表示する。
3.退会したユーザの情報でログインが失敗する。

体重履歴を登録する

1.ログイン状態でユーザトップ画面から計測日と体重を入力してPOST
2.ユーザトップ画面に計測日の履歴が登録されていることを確認

※計測日は現段階は日付にパース可能な文字列入力にする。それ以降でカレンダーの形にエンハンスする。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.