Giter VIP home page Giter VIP logo

prebill_react's People

Contributors

sanfrecce-osaka avatar shoynoi avatar tomoyaikarashi0023 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

prebill_react's Issues

パスワードリセット機能を追加

  • パスワードリセット用のテンプレートファイルを作成
  • パスワードリセット用のコンポーネントを作成
  • パスワードのリセットが要求されたらリセット用のフォームへのリンクを含んだメールを送信
  • パスワードリセットフォームから新しいパスワードを設定し、ユーザー情報を更新
  • Flashメッセージを表示し、ログイン状態にする

ユーザーがアカウントを作成したらログインした状態にしたい

現在、アカウントを作成したらログインせずにトップページにリダイレクトされる。
そこからログインする必要があるため、アカウントを作成したら自動的にログイン状態となるようにしたい。

元の実装では、メールアドレスを確認するフェーズがある。アカウント作成直後にはログイン状態にはならないものの、メールアドレスの確認後は自動的にログイン状態となるようになっている。

今回の実装ではメールアドレス確認の優先度は低いため、ひとまずアカウントを作成したらログイン状態となるようにしておく。

利用金額をトップページに表示させる

  • 年間合計利用額を算出する処理を追加し、トップページ(サービス一覧ページ)に表示
  • 月平均利用額を算出する処理を追加し、トップページ(サービス一覧ページ)に表示

ユーザー登録機能のAPIを作成

  • ユーザー認証gemを用いてUserモデルを追加
    • PreBillと同じsorceryを利用する予定
  • ユーザー登録用のテンプレートファイルを作成
  • サーバー側でユーザー登録処理を実装

ログイン/ログアウト機能を追加

  • ログイン用のテンプレートファイルを作成
  • ログイン用のコンポーネントを作成
  • ヘッダーにアカウント作成・ログインページのリンクを追加
  • 仮のランディングページを作成(デザイン等は書かない)
  • ログインする処理を実装
    • ログイン後はトップページ(サービス一覧ページ)にリダイレクト
  • ログアウトする処理を実装
    • ログアウト後はトップページ(ランディングページ)にリダイレクト
  • Flashメッセージを表示

サービスを登録するAPIを作成

  • Serviceモデルを作成
  • バリデーションを追加
  • サービスを登録するためのテンプレートファイルを作成
  • DBへの登録処理を実装

設定された通知日を迎えたらメールで通知する機能を追加

  • ActionMailerのセットアップ
  • 登録されているサービスの通知日を迎えたらメールで通知する機能を追加
    • 通知日が今日であるサービスを抽出する処理を追加
    • メール送信機能の実装
    • 該当するユーザーに対してメールを送信するRakeタスクを実装

ヘッダー/フッターの作成

  • トップページにヘッダーを作成
  • 未ログイン時に表示するフッターを作成
  • ヘッダーにユーザー設定やログアウト処理を行うリンクのリストを表示するドロップダウンを設置

サービス一覧ページを作成

  • サービス一覧ページを作成
    • サービス一覧を取得する処理を実装
    • 個々のサービスの情報をページ上に表示させる

ユーザーの更新機能を作成

  • ユーザー登録で作成したフォームコンポーネントを表示してユーザー情報の更新ができるようにする
  • サーバー側でユーザーの更新処理を実装
  • 正常に更新されたらトップページ(サービス一覧ページ)リダイレクト
  • 検証エラーの場合は再度更新フォームをrender
  • Flashメッセージを表示

ユーザー退会機能を追加

  • ユーザー退会用のテンプレートファイルを作成
  • コンポーネントを作成
  • ユーザー設定ページの下部にユーザー退会ページへのリンクを追加
  • ユーザーの削除処理を実装
  • 正常に削除されたらトップページ(ランディングページ)にリダイレクト
  • Flashメッセージを表示

サービス一覧ページに表示されているデータを整形して表示したい

  • 金額をフォーマットする
    • ¥1,000のように表示させる
  • メモ欄のフォーマット
    • 改行を反映させる
    • URLが含まれていたときはリンクとして表示させる
  • 日付(更新日、通知日)のフォーマット
    • 2020年6月29日のように整形
      • 日付が今年の場合は年は省略させる
      • 日付が今年より先の場合は年数も含めて表示
  • プランの表示を日本語で表示させる

メールアドレスの確認機能を追加

  • アカウント作成時に入力されたメールアドレス先にメールを送信
  • 添付されたリンクにアクセスするとサービスが利用可能になるようにする(この時点でログイン状態となる)
  • トークンの有効期限を設定(1週間)
  • Flashメッセージを表示

サービスが更新されたことをアプリ内で通知する機能を追加

  • Notificationモデルを作成
  • 更新日を通知するRakeタスクにNotificationを作成する処理を追加
  • ヘッダーに通知アイコンを配置
  • 通知用のコンポーネントを作成
    • 通知アイコンをクリックしたときにドロップダウンで通知が表示されるようにする
    • 通知があるときには通知アイコンにマークを表示
    • 通知内容をクリックしたときに既読状態になるようにする

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.